Kubernetes 的運作方式——由目標狀態到執行中的工作負載 · 心智圖

Kubernetes 的運作方式——由目標狀態到執行中的工作負載. 可編輯嘅心智圖,以彩色分支、子題目同曲線連結呈現概念。 曲線表示關聯;只有方向重要時先用箭嘴。

Kubernetes 靠不斷調和來執行容器化的應用程式:你宣告目標狀態,然後由控制平面與工作節點合力令整個叢集與它相符。

Kubernetes 的運作方式——由目標狀態到執行中的工作負載 · 心智圖

The interactive MindMap canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.

點樣閱讀呢張心智圖

  • 由中央主題開始,沿住彩色分支探索相關概念。
  • 曲線表示關聯;只有方向重要時先用箭嘴。

Desired state

呢個分支匯集 “The manifest describes the TARGET, not the steps: “3 replicas of the API, image v2.1, port 8080”. Kubernetes figures out how to get there.”, “The control plane's API server is the front door. etcd is the cluster's source of truth — it holds the desired state everything else reconciles against.”.

Scheduling

呢個分支匯集 “Scheduler watches and picks nodes for the pods”, “Scheduler assigns each pod to a healthy node”.

Worker nodes

呢個分支匯集 “The kubelet is the worker's agent. It talks to the container runtime (usually containerd) to start the pods the scheduler assigns, and reports health back to the control plane.”, “A Service routes traffic to the running pods”.

Reconciliation

呢個分支匯集 “Reconciliation is the core loop: compare current state to desired state, apply the difference, repeat. A crashed pod is replaced without human action.”, “Liveness and readiness probes decide health. A failing liveness probe restarts the pod; a failing readiness probe stops traffic to it.”, “Deployment stays at the desired state”.

跨分支關聯

Kubernetes 是宣告式的:你說出目標,而不是步驟,其餘由系統負責。

控制平面負責決定,kubelet 負責執行——沒有 etcd 裡那份目標狀態,甚麼都不會執行。

調和就是那個迴圈:比較、把差異套用上去、重複,永遠如此。

探測決定健康與否,而健康與否決定是否替換——一個失敗的 Pod 不需要人手介入就會被重啟。

Kubernetes 編排的正是 Docker 打包出來的容器,這也是兩張圖解互相連得上的原因。

Key relationships and takeaways

  • Kubernetes 是宣告式的:你說出目標,而不是步驟,其餘由系統負責。
  • 控制平面負責決定,kubelet 負責執行——沒有 etcd 裡那份目標狀態,甚麼都不會執行。
  • 調和就是那個迴圈:比較、把差異套用上去、重複,永遠如此。
  • 探測決定健康與否,而健康與否決定是否替換——一個失敗的 Pod 不需要人手介入就會被重啟。
  • Kubernetes 編排的正是 Docker 打包出來的容器,這也是兩張圖解互相連得上的原因。

When to use this visual

  • 向一支剛接觸 Kubernetes 的團隊,講解控制平面與工作節點的分別。
  • 在有人動手寫第一份 Deployment 與 Service 宣告檔之前,先教會他們宣告式這個模型。
  • 為一場關於自動修復的討論定下基礎——哪些問題 Kubernetes 會自動修好,哪些仍然要靠維運的人。

運作方式

  1. 調整中央主題

    按項目或課堂修改中央主題名稱。

  2. 擴展分支

    編輯概念並加入例子或註解。

  3. 連結相關概念

    畫出跨分支連結;只有方向重要時先用箭嘴。

常見問題

簡單來說,Kubernetes 是甚麼?

Kubernetes 是一套系統,它在一個由多部機器組成的叢集上執行容器化的應用程式,並令它們一直執行下去。你告訴它你想要甚麼——每個應用程式要幾多份、用哪個映像檔、開哪些連接埠——然後它把工作排程到機器上、重啟失敗的部分、按需要增減規模,並把流量導向正確的地方。這張圖解把這件事拆成宣告、排程、執行與維持。

Kubernetes 裡的控制平面是甚麼?

控制平面是一組為叢集作決定的組件:接收你的宣告檔的 API 伺服器、儲存目標狀態的 etcd、負責安放 Pod 的排程器,以及把現實調和向目標狀態的各個控制器。它是腦。工作節點則是肌肉——每一個節點都執行一個 kubelet,負責啟動並監察指派給它的 Pod。

在 Kubernetes 裡,「宣告式」是甚麼意思?

意思是你描述目標狀態,而不是發出一連串指令去達成它。你套用一份寫著「執行三個副本」的宣告檔;至於步驟,由 Kubernetes 自己想出來,而且只要現實一有偏移,它就會再做一次。如果一個 Pod 死掉,控制器會建立一個替代品,回到三個——不需要任何人重跑一次指令。宣告檔是真實來源,而調和就是那個機制。

Kubernetes 怎樣令應用程式保持健康?

靠探測與調和迴圈。存活探測告訴 Kubernetes 一個容器是否還活著——存活探測失敗就會重啟它。就緒探測告訴它一個 Pod 是否可以服務流量——就緒探測失敗就會把它由 Service 移走。控制器持續把執行中的狀態與目標狀態比較,並把差異套用上去,而這正是圖解裡「Pod 是否健康?」這個決策所代表的迴圈。

喺 QueryChart 編輯呢張心智圖

喺可編輯畫布開啟心智圖。移動概念、加入分支同畫連結。

喺 QueryChart 編輯呢張心智圖

心智圖的更多內容