← 返回上一頁
Kubernetes

圖解 Kubernetes 架構全貌:控制平面、工作節點、網路與儲存一次搞懂

本頁目錄

前言

Kubernetes 是當今最主流的容器編排平台,由 Google 開發並交由 CNCF 維護。本文以圖解方式,從控制平面到工作節點、從網路模型到儲存架構,帶你完整理解 Kubernetes 的核心架構。

控制平面(Control Plane)組件

Kube-APIServer

控制平面的核心入口,負責處理所有 REST 操作、身份驗證與授權。所有元件和節點都透過它來存取和更新叢集狀態。

Etcd

分散式鍵值儲存系統,儲存叢集所有狀態資料(Pod、Service、ConfigMap、Secret 等),透過分散式架構確保高可用與一致性。

Kube-Scheduler

負責將新建立的 Pod 調度到適當的工作節點,支援資源優先、親和性、反親和性等多種調度策略。

Kube-Controller-Manager

管理各種控制器(Node Controller、Replication Controller、Endpoint Controller 等),透過監聽叢集狀態變化自動執行操作。

Cloud-Controller-Manager

整合底層雲端平台(AWS、GCP、Azure),抽象化差異使 Kubernetes 可在多雲環境無縫運作。

工作節點(Worker Node)組件

Kubelet

運行在每個節點上的代理程式,負責啟動/停止 Pod、監控狀態,並定期向 APIServer 回報心跳和狀態。

Kube-Proxy

網路代理服務,透過 iptables 或 IPVS 維護網路規則,實現 Service 的服務發現與負載平衡。

Container Runtime

容器執行環境(Docker、containerd、CRI-O),透過 CRI 介面與 Kubelet 互動,負責容器的啟動、停止和映像管理。

Kubernetes 網路模型

Pod 網路

  • 每個 Pod 擁有唯一 IP,叢集內可直接通訊
  • Pod 間不需 NAT
  • 透過 CNI 外掛(Flannel、Calico、Weave)實現

Service 網路

  • Service 提供虛擬 IP(ClusterIP)暴露一組 Pod
  • 透過 DNS 解析實現服務發現
  • 自動負載平衡分發請求

NetworkPolicy

基於標籤的網路策略,可定義允許/拒絕的 Pod 通訊規則,實現網路層級的存取控制與隔離。

Kubernetes 儲存架構

Volume(卷)

與 Pod 生命週期相關的儲存,常見類型:

  • emptyDir:暫存資料,Pod 刪除即消失
  • hostPath:掛載宿主機目錄
  • nfs:多 Pod 共享的網路檔案系統
  • configMap / secret:注入設定與敏感資料

PersistentVolume(PV)與 PVC

PV 是叢集層級的儲存資源,獨立於 Pod 生命週期。PVC 是使用者請求儲存的方式:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

StorageClass

動態供應 PV 的機制,根據 PVC 請求自動建立儲存資源,支援不同儲存後端(SSD、HDD、雲端儲存等)。

安全機制

  • 身份認證:X.509 憑證、靜態 Token、Service Account、外部認證(OAuth/LDAP)
  • 授權:RBAC(最常用)、ABAC、節點授權
  • 網路安全:NetworkPolicy、TLS 加密
  • 密鑰管理:Secret 物件 + etcd 加密

調度策略

  • 資源請求與限制:CPU/記憶體
  • Node Selector:標籤選擇節點
  • Affinity/Anti-Affinity:親和/反親和關係
  • Taints/Tolerations:污點與容忍度

應用管理

  • Deployment:無狀態應用,支援滾動更新與回滾
  • StatefulSet:有狀態應用,穩定網路標識與持久儲存
  • DaemonSet:每節點一個 Pod(日誌、監控)
  • Job / CronJob:一次性任務與定時任務

總結

Kubernetes 架構涵蓋了控制平面、工作節點、網路模型、儲存系統、安全機制、調度策略與應用管理等核心面向。理解這些組件之間的協作關係,是高效運維 Kubernetes 叢集的基礎。無論你是初學者還是有經驗的工程師,定期回顧架構全貌都有助於更好地排查問題和優化叢集。

分享這篇
X LinkedIn Facebook Hacker News Reddit

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料