K8S 的 Master 組件有哪些?每個組件的作用?
K8s 大腦的 4 大核心模塊,掌控全局!
Kubernetes 集群的 Master(主節點) 就像一座 指揮中心,負責整個集群的調度、管理和控制。它由 4 大核心組件組成,每個組件都有 獨特的職責,確保容器服務穩定運行!
🎯 Master 組件有哪些?
Master 主要由以下 4 個組件組成:
🔹 API Server(kube-apiserver)
🔹 Scheduler(kube-scheduler)
🔹 Controller Manager(kube-controller-manager)
🔹 ETCD(數據存儲)
下面我們逐一解析它們的作用👇
💡 1?? API Server(kube-apiserver)—— K8s 的 “大門”
作用:
📌 作為 Kubernetes 的 入口,負責接收和處理所有的 RESTful API 請求(如創建 Pod、刪除 Deployment)。
📌 認證 & 授權(誰能訪問?誰有權限?)。
📌 數據驗證 & 負載均衡,保證請求高效處理。
舉個例子:
🔸 當你用 kubectl apply -f xxx.yaml
部署應用時,API Server 就會接收這個請求,并將任務分配給合適的組件執行。
💡 2?? Scheduler(kube-scheduler)—— K8s 的 “調度員”
作用:
📌 決定 Pod 該運行在哪個節點上,確保資源利用率最大化!
📌 考慮 CPU、內存、節點健康狀態等因素,智能分配 Pod。
舉個例子:
🔸 如果有 3 臺服務器,A 負載 90%、B 負載 10%、C 負載 50%,K8s 會優先選擇 B 服務器 部署新 Pod。
💡 3?? Controller Manager(kube-controller-manager)—— K8s 的 “管理者”
作用:
📌 負責 監控集群狀態,確保所有對象(Pod、Service、Node)始終符合期望狀態!
📌 由多個控制器組成,每個控制器負責不同的任務👇
🔹 Node Controller 👉 監控節點狀態,宕機時自動剔除!
🔹 Replication Controller 👉 負責 Pod 副本數量,確保高可用!
🔹 Endpoint Controller 👉 處理 Service 與 Pod 之間的綁定關系!
🔹 Job Controller 👉 管理任務(Job),如定時任務執行!
舉個例子:
🔸 你希望某個應用始終保持 3 個副本,如果有 1 個 Pod 掛了,Replication Controller 發現后會 自動創建新 Pod 來補上!
💡 4?? ETCD —— K8s 的 “數據庫”
作用:
📌 Kubernetes 最核心的數據存儲,保存所有集群狀態信息!
📌 采用 分布式 Key-Value 存儲,保證高可用。
舉個例子:
🔸 你部署的所有 Pod、Service、ConfigMap 等信息,都會存儲在 ETCD 里,一旦某個組件宕機,K8s 還能快速恢復!
總結:K8s Master 組件如何協同工作?
1?? API Server 👉 接收請求,轉發到相關組件。
2?? Scheduler 👉 負責 Pod 調度,決定在哪臺機器運行。
3?? Controller Manager 👉 負責 監控狀態,確保集群符合預期。
4?? ETCD 👉 作為數據庫,存儲所有 Kubernetes 資源信息。
Master 組件 各司其職、協同作戰,共同保證 K8s 集群的穩定運行!