當前位置:
首頁 > 最新 > Kubernetes組件

Kubernetes組件

Kubernetes組件

本文檔概述了交付正常運行的Kubernetes集群所需的各種二進位組件。


Master組件

Master組件提供了集群的control plane。Master組件對集群進行全局決策(如調度),並檢測和響應集群事件(當replicationcontroller的「replicas」欄位未滿足時啟動新的Pod)。

Master組件可以運行在集群中的任意機器上。但是,為簡單起見,配置腳本通常會在同一台計算機上啟動所有Master組件,並且不會在此計算機上運行用戶容器。有關multi-master-VM設置的示例,請參閱Building High-Availability Clusters。

Master上暴露Kubernetes API的組件。這是Kubernetes control plane的前端(front-end)。

它用來水平擴展——也就是說,它通過部署更多實例來擴展。參閱Building High-Availability Clusters。


一致且高可用的鍵值存儲。用於Kubernetes所有集群數據的存儲。

始終為你的Kubernetes集群提供etcd數據的備份計劃。有關etcd的更深入的信息,請參閱etcd documentation。

監控新創建的沒有分配節點的Pod,並選擇一個節點供此類Pod運行。

調度決策考慮的因素包括個人和集體資源需求,硬體/軟體/策略約束,親和力和反親和力規範,數據位置,工作負載間干擾和期限。


運行controller。

從邏輯上講,每個controller都是單獨的進程,但為了降低複雜性,它們都被編譯成單個二進位文件並在單個進程中運行。

這些controller包括:

Node Controller:負責節點停機時的通知和響應。

Replication Controller:負責維護系統中每個replicationcontroller對象的正確數量的Pod。

Endpoints Controller:填充Endpoints對象(即,連接服務和Pod)。

Service Account & Token Controller:為新命名空間創建默認賬戶和API訪問許可權。


cloud-controller-manager運行和底層雲提供商交互的controller。cloud-controller-manager二進位文件時Kubernetes 1.6版中引入的一個alpha特性。

cloud-controller-manager僅運行雲提供商特定的controllerloops。你必須在cloud-controller-manager中禁用這些controller loops。啟動cloud-controller-manager時,可以通過--cloud-provider標誌設置為external來禁用controller loops。

cloud-controller-manager允許雲供應商代碼和Kubernetes核心相互獨立發展。在之前的版本中,核心Kubernetes代碼依賴於雲提供商特定的代碼功能。在未來的版本中,雲供應商特有的代碼應由雲供應商自己維護,並運行Kubernetes時和cloud-controller-manager相關聯。

以下controller有雲提供者依賴:

Node Controller:用於檢查雲提供商以確定雲中的節點是否在停止響應後被刪除。

Route Controller:用於在底層雲基礎架構中設置路由。

Service Controller:用於創建,更新和刪除雲提供商負載均衡器。

Volume Controller:用於創建,附加和安裝volume,並和雲提供商交互以編排volume。


Node組件運行在每個節點上,維護運行中的pod以及提供Kubernetes運行時環境。


運行在集群中每個節點上的代理。它確保pod在一個容器中運行。

kubelet採用通過各種機制提供一組PodSpec,並確保這些PodSpec中描述的容器運行正常。kubelet不管理不是由Kubernetes創建的容器。


kube-proxy通過維護節點上的網路規則並執行連接轉發來啟用Kubenetes服務抽象。


容器運行時是負責運行容器的軟體。Kubernetes支持兩種運行時:Docker和rkt。


Addons是實現集群功能的Pod和Service。pod可以由Deployments,ReplicationControllers等來管理。Namespaced addon對象是在kube-system命名空間中創建的。

下面介紹了選定的Addons,有關可用Addons的擴展列表,請參閱Addons。


雖然其他Addons並非嚴格要求,但所有Kubernetes集群都應具有cluster DNS,因為許多示例依賴於它。

Cluster DNS除了環境中的其他DNS伺服器之外,還是一個DNS伺服器,它為Kubernetes服務提供DNS記錄。

Kubernetes啟動的容器自動在DNS搜索中包含此DNS伺服器。


是Kubernetes集群通用的基於Web的UI。它允許用戶管理和解決集群中應用程序以及集群本身。


Container Resource Monitoring記錄有關中心資料庫中容器通用事件序列度量標準,並提供用於瀏覽該數據的UI。


Cluster-level logging機制負責將容器日誌保存到具有搜索/瀏覽介面的中央日誌存儲中。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小魚Aha 的精彩文章:

TAG:小魚Aha |