標(biāo)桿徐Kubernetes入門(mén)與進(jìn)階《助力CKA與CKS》 學(xué)習(xí)總結(jié)
什么是 Kubernetes
Kubernetes 致力于提供跨主機(jī)集群的自動(dòng)部署、擴(kuò)展、高可用以及運(yùn)行應(yīng)用程序容器的平臺(tái),其遵循主從式架構(gòu)設(shè)計(jì),其組件可以分為管理單個(gè)節(jié)點(diǎn)(Node)組件和控制平面組件,可對(duì)集群進(jìn)行的操作包括部署,調(diào)度和集群節(jié)點(diǎn)擴(kuò)展。
Kubernetes Master是集群的主要控制單元,用于管理其工作負(fù)載并指導(dǎo)整個(gè)系統(tǒng)的通信。
Kubernetes 核心組件
etcd :分布式鍵值存儲(chǔ)系統(tǒng)。用于保存集群狀態(tài),比如Pod、Service等對(duì)象信息。
apiserver :?提供了資源操作的唯一入口,各組件協(xié)調(diào)者,并提供認(rèn)證、授權(quán)、訪問(wèn)控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制;以 HTTPAPI 提供接口服務(wù),所有對(duì)象資源的增刪改查和監(jiān)聽(tīng)操作都交給 APIServer 處理后再提交給 Etcd 存儲(chǔ)
controller manager :?負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)、自動(dòng)擴(kuò)展、滾動(dòng)更新等;處理集群中常規(guī)后臺(tái)任務(wù),一個(gè)資源對(duì)應(yīng)一個(gè)控制器,而 ControllerManager 就是負(fù)責(zé)管理這些控制器的。
scheduler? :?負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上;
kubelet? :?kubelet 是 Master 在 Node 節(jié)點(diǎn)上的 Agent,管理本機(jī)運(yùn)行容器的生命周期,比如創(chuàng)建容器、Pod掛載數(shù)據(jù)卷、下載secret、獲取容器和節(jié)點(diǎn)狀態(tài)等工作。kubelet 將每個(gè)Pod 轉(zhuǎn)換成一組容器。負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理;
Container runtime :?負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行(CRI);
kube-proxy :?負(fù)責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡;在 Node 節(jié)點(diǎn)上實(shí)現(xiàn) Pod 網(wǎng)絡(luò)代理,維護(hù)網(wǎng)絡(luò)規(guī)則和四層負(fù)載均衡工作。
