Please enable JavaScript.
Coggle requires JavaScript to display documents.
k8s (應用部署 (Pod 動態調節 (水平擴展, 垂直擴展), 部署策略 (藍綠, 金絲雀), 狀態管理 (Stateful, PV &…
k8s
應用部署
Pod 動態調節
水平擴展
垂直擴展
部署策略
藍綠
金絲雀
狀態管理
Stateful
PV & PVC
路由
ingress
資源限制
敏感資料保護
負載平衡
憑證
動態域名
Helm
用途
作為應用程式樣板
控制應用程式版本
應用程式打包
Tiller
接收Helm命愣
根據Chart產生配置給k8s執行
提供Release升級,回滾,刪除
架構
Client
Server
Release
運行的Chart實體
每次安裝都會產生一個Release
Chart
ˊ族成元件
Char
Template
Value
Repository
發布和儲存Chart
YAML配置格式
kind
組件(kind)
Ingress
外部入口 gateway
Namespace
提供邏輯上的群組分割
原則
避免為了建立 namespace而建立
避免過大的namespace
ConfigMap
用途
實際配置參數從部署中抽離
避免調整參數重新部署
yaml 指令
valueFrom
configMapKeyRef
建立指令
kubectl create configmap logger --from-literal=log_level=debug
secret
用途
儲存敏感資料
指令
kubectl create secret .generic ..
kubectl get secrets
yaml
Kind=Secret
Job
用途
排定時間執行任務
指令
kubectl get jobs
kubectl describe jobs/xxx
yaml
Kind=Job
Kind=CronJob
Volume
用途
永久性儲存資料
設定 Pod 間共享資料
分類
Persistent Volume
Volume
PVC(Persistent Volume Claim)
Access Mode
ReadWriteOne
單一node讀寫
ReadOnlyMany
多個node可以唯讀
ReadWriteMany
多個node可同時讀寫
Pod
用途
描述一個或多個容器
Service
用途
描述Pod/Node間網路架構
Deployment
ReplicaSet
DaemonSet
StatefulSet
Deployment
描述使用的組件
apiVersion
版本資訊
metadata
描述組件相關資訊
spec
描述組件內容
5W1H
WHY
可靠性
如果出现故障,Kubernetes 会创建必要数量的应用镜像,并分配到健康的 pod 或节点中,直到系统恢复。
使 CI/CD 更加简单
应用打包在容器中使其可以安全的运行在任何地
对 CI 服务写个简单的脚本然后运行它
开箱即用的自动缩放能力
高效的利用资源
自動重新分配 pod,帮助我们节省开销,高效的利用内存、处理器等资源
如果一个节点宕机了,Kubernetes 会自动重新创建之前运行在此节点上的 pod,在其他节点上运行。
云环境无缝迁移
一个平台搞定所有
What
Kubernetes的簡稱
CNCF維護
最初由Google貢獻
開發語言 Go
How
雲平台
GKE(Google Cloud k8s Engine)
Azure
ACR(Azure Container Registry)
儲存 Image
ACI(Azure Container Instance)
AKS(Azure K8s Service)
EKS(Amazon Elastic Container Service for k8s
Openshift
本地開發環境
Linux
OKD
minikube
Docker+k3s
Windows
Docker for Desktop
Rancher Desktop
Podman Desktop
叢集架構
Master Node
組成元件
api server
對外提供控制接口
controller manager
Node Controller
Replication Controller
End-point controller
Service Account & Token controller
用途
確保k8s運作正常
scheduler
監控, 建立節點
pod調度在 node上執行
收集,統計,分析節點資源狀態
etcd
儲存 k8s 資料
用途
叢集管理
Worker Node
組成元件
pod
k8s基本單位
可以包含多個容器
應用程式邏輯主機
Kubelet
Node Agent
接受 API Server 命令
起始 Pod
回報狀態給 Master Node
對外公開端點 Port
Kube-Proxy
Docker
容器執行平台
Container
容器執行環境
用途
提供 k8s 的執行環境
k8s control
資源分類
運算
標準 CRI
儲存
標準CSI
網路
標準 CNI
監控
探測Container
Liveness
狀態是否進入deadlock或沒有繼續執行
Readlines
偵測Container是否可以接受ㄏㄛ
Prometheus
概念
Label
Key/Value 標籤
用來描述物件屬性或分類
Selector
格式
Equality based
=
!=
==
Set based
in
notin
exists
knative
lstio
Operator