k8s核心組件
3. k8s 集群架構組件
- Master(主控節點)和 Node(工作節點)
(1) Master 組件
- apiserver
集群統一入口,以 RESTful 方式,交給 etcd 存儲 - scheduler
節點調度,選擇 Node 節點應用部署 - controller-manager
處理集群中常規的後台任務,一個資源對應一個控制器 - etcd
存儲系統,用於保存集群相關的數據
(2) Node 組件
-
kubelet
- Master 排到 Node 節點代表,管理本機容器。
-
kube-proxy
- 提供網絡代理,負載均衡等操作。
K8S 核心概念
-
Pod
- 最小部署單元
- 一組容器的集合
- 共享網絡
- 生命週期是短暫的
-
Controller
- 確保預期的 Pod 副本數量
- 無狀態應用部署
- 有狀態應用部署
- 確保所有的 Node 運行同一個 Pod
- 一次性任務和定時任務
-
Service
- 定義一組 Pod 的訪問規則
如有其他需求,請隨時告訴我!
kubectl run podtest --image=nginx
1. kubectl向apiserver發送一個創建pod的請求,apiserver會將數據放到etcd存儲。
2. Scheduler通過list-watch的方式,收到未綁定pod資源,通過自身調度算法選擇一個合適的node進行綁定,然後響應給apiserver,把信息更新到etcd中。
3. Kubelet同樣通過list-watch的方式,收到分配到自己節點上pod,調用docker api創建容器,然後將容器狀態響應給apiserver,同時,把容器的信息、事件及狀態也通過apiserver寫入到etcd中。