透過 Minikube 官網的實踐教學,往往不足夠有基礎對於 Kubernetes 操作,還是需要把 K8s 的內功學好,把底打穩才有辦法操作後續的高難度應用。
本文介紹以下– 圖片參考
Worker-Node
worker 主要運行應用程式與服務,其為了提供服務 Kubernetes 每個 Node 都會包含三組件
- Kubelet
- kube-proxy
- container-runtime

Container Runtime
容器運行時是 Kubernetes 叢集的核心元件,負責管理和運作。理解容器運行時的工作原理之一對於 Kubernetes 叢集的運維和故障排查至關重要。
基本功能
- 容器生命週期管理:建立、啟動、停止和刪除容器
- 鏡像管理:拉取、儲存和管理容器
- 資源隔離:提供CPU、記憶體、IO等資源的隔離
- 運作環境:提供容器運行環境
Kubelet
Kubelet 是 Kubernetes 叢集中運行在每個工作節點(Node)上的元件核心,負責管理 Pod 和容器的生命週期,是 Kubernetes 節點代理程式。
基本功能
- Pod管理:接收並執行PodSpecs,確保所描述的容器正常運作
- 貨櫃健康檢查:執行 liveness 和 readiness 標誌
- 資源監控:報告節點和Pod的資源使用情況
- 容器運行時互動:透過CRI(容器運行時介面)與容器運行時通訊
- 磁碟區管理:掛載和卸載Pod所需的儲存卷
- 節點狀態報告:定期向API Server 節點狀態報告
Kube-proxy
kube-proxy 是 Kubernetes 叢集中實作服務(Service)網路功能的元件核心,運行在每個節點(Node)上,維護負責節點上的網路規則,實現服務抽象化和負載平衡。
基本功能
- 服務抽象:將服務的虛擬IP(ClusterIP)對應到Pod
- 負載平衡:在多個Pod端點(Endpoint)間流量分配
- 網路規則管理:設定 iptables/IPVS 規則實現流量轉發
- 服務發現:監聽API Server變化,即時更新轉送規則
Master-Node
Master是叢集的“CPU”,負責全域決策和叢集管理。

API Server
- 集群的唯一入口
- 提供集群的 API 接口服務 ( 所有組件都會通過這個接口來進行通信)
- 處理所有資源作業的認證、授權和驗證

- 可以透過 kubectl 進行通信
- 比如一些 CRUD Pod 的 request 都會先經過 API server 再轉發到各個 Pod 中

Scheduler
- 負責 Pod 的調度決策
- 根據資源需求、策略等選擇合適節點

- 觀察 Pod 使用的資源狀況 決定 新建立的 Pod 會被建立到哪裡去
- 這個例子會在 20 % 這邊
- 更加合理的利用集群中的各種資源

Controller Manager
- 負責管理集群中各種資源對象的狀態
- 集群中假設有任何一個 Node 發生故障的時候,有一個機制可以監控和檢測這個故障
- 盡可能快速地對這個故障進行處理 如: 重新啟動、用其他 Pod 進行代替
- 運行各種控制器
- 包括節點控制器、副本控制器、端點控制器等
- 確保集群狀態與期望狀態一致

etcd
- 用來存集群豬所有物件資源的狀態資訊
- 分散式鍵值存儲
- 保存整個集群的狀態數據
- 唯一有狀態的控制平面組件
- 如新增一個 Pod 刪除一個 Pod 都會被存在 etcd 中
