Kubernetes 是一個功能強大的容器編排平台,擁有複雜且靈活的架構。理解其核心架構和組件,對於有效管理和操作 Kubernetes Cluster 至關重要。在本文中,我們將深入介紹 Kubernetes 的控制平面(Control Plane)和節點(Node)的詳細內容。
下圖來自官方網站,展示了 Kubernetes 的架構:
Kubernetes 的架構主要分為兩個部分:控制平面(Control Plane)和節點(Node)。控制平面負責 Cluster 的整體管理與控制,而節點則負責運行應用容器。
控制平面是 Kubernetes 的核心,負責管理 Cluster 的所有活動,包括調度、維護和監控。控制平面由以下主要組件組成:
API 伺服器(API Server)
API 伺服器是 Kubernetes 的核心組件,負責處理 Cluster 的所有 RESTful API 請求。它作為所有操作的入口,協調其他組件的工作。
etcd
etcd 是一個高可用的分佈式鍵值儲存,用於保存 Kubernetes Cluster 的所有狀態資料。
控制器管理器(Controller Manager)
控制器管理器運行各種控制迴圈,監控 Cluster 狀態並進行自動化調整,以達到預期狀態。
調度器(Scheduler)
調度器根據資源需求和調度策略,將 Pod 分配至合適的節點。
節點是 Kubernetes Cluster 中的工作負載單位,負責運行實際的應用容器。每個節點上運行以下主要組件:
Kubelet
Kubelet 是每個節點上的主要代理,負責與控制平面進行通訊並管理 Pod 的生命周期。
Kube-proxy
Kube-proxy 是網路代理,負責實現 Kubernetes Service 的網路功能,包括負載平衡和網路轉發。
Container Runtimes
Container Runtimes(如 Docker 或 containerd)負責運行和管理容器。
Kubernetes 的架構由控制平面和節點組成,控制平面負責 Cluster 的管理與控制,而節點則負責運行應用容器。通過理解這些核心組件及其功能,我們可以更好地管理與優化 Kubernetes Cluster。這些知識將為後續的學習與實踐奠定堅實的基礎。