從本段中總結Kubernetes叢集控制層的主要元件
Context:Kubernetes定義了一組構建塊 ("原始") 集體提供了基於CPU,記憶體或自定義指標的部署,維護和擴充套件應用程式的機制. 庫伯內特是鬆散的並聯和可擴充套件,以滿足不同的工作負載. 在Kubernetes上執行的內部元件以及擴充套件和容器依賴於Kubernetes API. 該平臺通過將資源定義為物件來對計算和儲存資源進行控制,然後可以作為物件進行管理.  庫伯內特遵循主/複製架構. 庫伯內特的元件可以分為管理單個節點的元件和控制平面的一部分元件.  控制平面 庫伯內特主節點處理叢集的庫伯內特控制平面,管理其工作負載並指導整個系統的通訊. 庫貝內特控制層由各種元件組成,每個元件都有自己的程序,可以在單個主節點上或支援高可用性叢集的多個主節點上執行. 庫伯內特控制層的各個元件如下:  etcd 是一個持久,輕量級,分散式的,CoreOS開發的鍵值資料儲存器. 它可靠地儲存叢集的配置資料,代表叢集在任何給定的時間點的整體狀態.在網路分割槽的情況下,etcd優先考慮一致性而不是可用性 (參見CAP定理). 這一一致性對於正確的排程和運營服務至關重要. API 伺服器使用 JSON 通過 HTTP 提供 Kubernetes API,它為 Kubernetes 提供了內部和外部介面. API伺服器處理和驗證REST請求,並更新etcd中的API物件的狀態,從而允許客戶端在工作節點上配置工作負載和容器. API 伺服器使用 etcd 的 watch API 來監控叢集,推出關鍵的配置更改,或將叢集狀態的任何差異恢復到部署者宣告的狀態. 例如,部署者可以指定特定"<unk>"的三個例項 (見下文) 需要執行. etcd儲存了這一事實. 如果部署控制器發現只有兩個例項正在執行 (與etcd宣告相沖突),它會計劃建立該<unk>的另一個例項. 排程器是可擴充套件的元件,根據資源可用性選擇在哪個節點上執行非排程<unk> (排程器管理的基本實體). 排程器跟蹤每個節點的資源使用,以確保工作負載不會超過可用資源. 為此目的,排程者必須瞭解資源需求,資源可用性以及使用者提供的其他約束或政策指令,如服務質量,親和性與反親和性要求以及資料本地化. 排程者的作用是將資源"供應"與工作負載"需求"相匹配. 控制器是一個調和迴圈,驅動實際叢集狀態向所需狀態,與API伺服器通訊以建立,更新和刪除它管理的資源 (例如,<unk>或服務端點). 一種控制器是複製控制器,它通過在叢集中執行特定數量的<unk>的副本來處理複製和擴充套件. 如果底層節點故障,它還可以建立替代<unk>. 其他控制器是庫伯內特核心系統的一部分,包括一個DaemonSet控制器,用於在每個機器 (或某些機器子集) 上執行一個 pods,以及一個Job控制器,用於執行到完成的 pods (例如,作為批量工作的一部分). 作為控制器定義的一部分的標籤選擇器指定了控制器管理的<unk>集. 控制器管理器是一個管理一組核心 Kubernetes 控制器的程序.
網路叢集控制層執行在一個主節點上. 這些元件是: 1. etcd - 包含叢集配置資料的關鍵值資料儲存器. 2. 沒有 API伺服器是服務並更新網路叢集狀態的伺服器. 它監視著等等,並保持叢集的實際狀態與其所需狀態的同步. 3. 沒有. 排程器是一個元件,它根據每個<unk>的需求和叢集中的節點可以支援的需求,選擇一個非排程<unk>應該在哪個節點上執行. 4. 沒有 控制器管理器管理多個控制器,使叢集與所需狀態保持同步.