新聞中心
組件
當(dāng)你部署完 Kubernetes, 即擁有了一個完整的集群。

創(chuàng)新互聯(lián)提供高防服務(wù)器租用、云服務(wù)器、香港服務(wù)器、服務(wù)器托管等
一個 Kubernetes 集群由一組被稱作節(jié)點的機(jī)器組成。這些節(jié)點上運行 Kubernetes 所管理的容器化應(yīng)用。集群具有至少一個工作節(jié)點。
工作節(jié)點托管作為應(yīng)用負(fù)載的組件的 Pod 。控制平面管理集群中的工作節(jié)點和 Pod 。 為集群提供故障轉(zhuǎn)移和高可用性,這些控制平面一般跨多主機(jī)運行,集群跨多個節(jié)點運行。
本文檔概述了交付正常運行的 Kubernetes 集群所需的各種組件。
控制平面組件(Control Plane Components)
控制平面的組件對集群做出全局決策(比如調(diào)度),以及檢測和響應(yīng)集群事件(例如,當(dāng)不滿足部署的 ?replicas ?字段時,啟動新的 pod)。
控制平面組件可以在集群中的任何節(jié)點上運行。 然而,為了簡單起見,設(shè)置腳本通常會在同一個計算機(jī)上啟動所有控制平面組件, 并且不會在此計算機(jī)上運行用戶容器。
kube-apiserver
API 服務(wù)器是 Kubernetes 控制面的組件, 該組件公開了 Kubernetes API。 API 服務(wù)器是 Kubernetes 控制面的前端。
Kubernetes API 服務(wù)器的主要實現(xiàn)是 kube-apiserver。 kube-apiserver 設(shè)計上考慮了水平伸縮,也就是說,它可通過部署多個實例進(jìn)行伸縮。 你可以運行 kube-apiserver 的多個實例,并在這些實例之間平衡流量。
etcd
etcd 是兼具一致性和高可用性的鍵值數(shù)據(jù)庫,可以作為保存 Kubernetes 所有集群數(shù)據(jù)的后臺數(shù)據(jù)庫。
您的 Kubernetes 集群的 etcd 數(shù)據(jù)庫通常需要有個備份計劃。
kube-scheduler
控制平面組件,負(fù)責(zé)監(jiān)視新創(chuàng)建的、未指定運行節(jié)點(node)的 Pods,選擇節(jié)點讓 Pod 在上面運行。
調(diào)度決策考慮的因素包括單個 Pod 和 Pod 集合的資源需求、硬件/軟件/策略約束、親和性和反親和性規(guī)范、數(shù)據(jù)位置、工作負(fù)載間的干擾和最后時限。
kube-controller-manager
運行控制器進(jìn)程的控制平面組件。
從邏輯上講,每個控制器都是一個單獨的進(jìn)程, 但是為了降低復(fù)雜性,它們都被編譯到同一個可執(zhí)行文件,并在一個進(jìn)程中運行。
這些控制器包括:
- 節(jié)點控制器(Node Controller): 負(fù)責(zé)在節(jié)點出現(xiàn)故障時進(jìn)行通知和響應(yīng)
- 任務(wù)控制器(Job controller): 監(jiān)測代表一次性任務(wù)的 Job 對象,然后創(chuàng)建 Pods 來運行這些任務(wù)直至完成
- 端點控制器(Endpoints Controller): 填充端點(Endpoints)對象(即加入 Service 與 Pod)
- 服務(wù)帳戶和令牌控制器(Service Account & Token Controllers): 為新的命名空間創(chuàng)建默認(rèn)帳戶和 API 訪問令牌
cloud-controller-manager
云控制器管理器是指嵌入特定云的控制邏輯的 控制平面組件。 云控制器管理器使得你可以將你的集群連接到云提供商的 API 之上, 并將與該云平臺交互的組件同與你的集群交互的組件分離開來。
?cloud-controller-manager? 僅運行特定于云平臺的控制回路。 如果你在自己的環(huán)境中運行 Kubernetes,或者在本地計算機(jī)中運行學(xué)習(xí)環(huán)境, 所部署的環(huán)境中不需要云控制器管理器。
與 ?kube-controller-manager? 類似,?cloud-controller-manager? 將若干邏輯上獨立的 控制回路組合到同一個可執(zhí)行文件中,供你以同一進(jìn)程的方式運行。 你可以對其執(zhí)行水平擴(kuò)容(運行不止一個副本)以提升性能或者增強容錯能力。
下面的控制器都包含對云平臺驅(qū)動的依賴:
- 節(jié)點控制器(Node Controller): 用于在節(jié)點終止響應(yīng)后檢查云提供商以確定節(jié)點是否已被刪除
- 路由控制器(Route Controller): 用于在底層云基礎(chǔ)架構(gòu)中設(shè)置路由
- 服務(wù)控制器(Service Controller): 用于創(chuàng)建、更新和刪除云提供商負(fù)載均衡器
Node 組件
節(jié)點組件在每個節(jié)點上運行,維護(hù)運行的 Pod 并提供 Kubernetes 運行環(huán)境。
kubelet
一個在集群中每個節(jié)點(node)上運行的代理。 它保證容器(containers)都 運行在 Pod 中。
kubelet 接收一組通過各類機(jī)制提供給它的 PodSpecs,確保這些 PodSpecs 中描述的容器處于運行狀態(tài)且健康。 kubelet 不會管理不是由 Kubernetes 創(chuàng)建的容器。
kube-proxy
kube-proxy 是集群中每個節(jié)點上運行的網(wǎng)絡(luò)代理, 實現(xiàn) Kubernetes 服務(wù)(Service) 概念的一部分。
kube-proxy 維護(hù)節(jié)點上的網(wǎng)絡(luò)規(guī)則。這些網(wǎng)絡(luò)規(guī)則允許從集群內(nèi)部或外部的網(wǎng)絡(luò)會話與 Pod 進(jìn)行網(wǎng)絡(luò)通信。
如果操作系統(tǒng)提供了數(shù)據(jù)包過濾層并可用的話,kube-proxy 會通過它來實現(xiàn)網(wǎng)絡(luò)規(guī)則。否則, kube-proxy 僅轉(zhuǎn)發(fā)流量本身。
容器運行時(Container Runtime)
容器運行環(huán)境是負(fù)責(zé)運行容器的軟件。
Kubernetes 支持容器運行時,例如 Docker、 containerd、CRI-O 以及 Kubernetes CRI (容器運行環(huán)境接口) 的其他任何實現(xiàn)。
插件(Addons)
插件使用 Kubernetes 資源(DaemonSet、 Deployment等)實現(xiàn)集群功能。 因為這些插件提供集群級別的功能,插件中命名空間域的資源屬于 ?kube-system? 命名空間。
下面描述眾多插件中的幾種。
DNS
盡管其他插件都并非嚴(yán)格意義上的必需組件,但幾乎所有 Kubernetes 集群都應(yīng)該 有集群 DNS, 因為很多示例都需要 DNS 服務(wù)。
集群 DNS 是一個 DNS 服務(wù)器,和環(huán)境中的其他 DNS 服務(wù)器一起工作,它為 Kubernetes 服務(wù)提供 DNS 記錄。
Kubernetes 啟動的容器自動將此 DNS 服務(wù)器包含在其 DNS 搜索列表中。
Web 界面(儀表盤)
Dashboard 是 Kubernetes 集群的通用的、基于 Web 的用戶界面。 它使用戶可以管理集群中運行的應(yīng)用程序以及集群本身并進(jìn)行故障排除。
容器資源監(jiān)控
容器資源監(jiān)控 將關(guān)于容器的一些常見的時間序列度量值保存到一個集中的數(shù)據(jù)庫中,并提供用于瀏覽這些數(shù)據(jù)的界面。
集群層面日志
集群層面日志 機(jī)制負(fù)責(zé)將容器的日志數(shù)據(jù) 保存到一個集中的日志存儲中,該存儲能夠提供搜索和瀏覽接口。
當(dāng)前題目:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes 組件
URL鏈接:http://m.fisionsoft.com.cn/article/dpdocph.html


咨詢
建站咨詢
