Skip to main content

Overview

Overview​

Kubernetes 包含下面兩種內容。

  1. 叢集 (cluster)
  2. 協調器 (orchestrator)

Cluster​

由單個或是多個節點 (Nodes) 組成,提供 CPU、記憶體、和其他運算資源給應用程式使用。

Nodes​

  • Control plane
    每個 Cluster 至少需要一個,建議設置多個來達到 HA 的效果。
info

相當於大腦,負責控制所有的核心服務執行和容器調度。

  • Worker:
    執行容器化應用的地方

Control Plane​

API Server​

Kubernetes 的前端,所有的請求,不管是更改/查詢叢集狀態,或是內部服務溝通,┬都會透過API Server處理。

API Server提供 RESTful API 和 Https,所有的請求都會要通過驗證 + 授權。

Cluster Store​

儲存所有應用和叢集元件的期望狀態,是Control Plane中唯一有狀態的部分。

Controllers & Controller Manager​

Scheduler​

  1. 監控API Server確認是否有新任務。
  2. 確認可以指派的節點。
  3. 指派任務到結點上。

Worker Nodes​

Kubelet​

Kubernetes agent,負責與叢集的所有溝通。

  • 監控API Server確認是否有新任務。
  • 回報API Server任務執行結果。

Runtime​

每一個工作節點 (Worker) 都可以有單個或是多個Runtime來執行任務。

Kube-proxy​

每一個工作節點 (Worker) 都有一個Kube-proxy來處理叢集網路和節點內的任務負載平衡。

Packaging For K8s​

Pods​

Pod 是 K8s 的最小單位,一個 Pod 可以有多個 Container,同一個 Pod 內的容器,彼此共享執行環境 (execution environment)。

Pod Lifecycle​

Pods 是有生命週期的,它們被建立、使用,然後回收。每當一個 Pod 回收,Kubernetes 會用一個新的替代它。

Pod immutability​

應該始終使用新的 Pod 來替換舊 Pod,而不是透過登錄到 Pod 上面做更改。

Declarative Model​

Kubernetes 使用聲明式模型來管理應用程式,意味著只需描述好的應用程式狀態,而 Kubernetes 會負責實現它。

Reference​

https://leanpub.com/thekubernetesbook