Kubernetes進(jìn)階實(shí)戰(zhàn)》">《 Kubernetes進(jìn)階實(shí)戰(zhàn)》
897
2025-04-01
Kubernetes集群的設(shè)計(jì)中,Pod是有生命周期的對象。用戶通過手工創(chuàng)建或由Controller(控制器)直接創(chuàng)建的Pod對象會(huì)被“調(diào)度器”(Scheduler)調(diào)度至集群中的某工作節(jié)點(diǎn)運(yùn)行,待到容器應(yīng)用進(jìn)程運(yùn)行結(jié)束之后正常終止,隨后就會(huì)被刪除。另外,節(jié)點(diǎn)資源耗盡或故障也會(huì)導(dǎo)致Pod對象被回收。
但Pod對象本身并不具有“自愈”功能,若是因?yàn)楣ぷ鞴?jié)點(diǎn)甚至是調(diào)度器自身導(dǎo)致了運(yùn)行失敗,那么它將會(huì)被刪除;同樣,資源耗盡或節(jié)點(diǎn)故障導(dǎo)致的回收操作也會(huì)刪除相關(guān)的Pod對象。在設(shè)計(jì)上,Kubernetes使用“控制器”實(shí)現(xiàn)對一次性的(用后即棄)Pod對象的管理操作,例如,要確保部署的應(yīng)用程序的Pod副本數(shù)量嚴(yán)格反映用戶期望的數(shù)目,以及基于Pod模板來重建Pod對象等,從而實(shí)現(xiàn)Pod對象的擴(kuò)縮容、滾動(dòng)更新和自愈能力等。例如,某節(jié)點(diǎn)發(fā)生故障時(shí),相關(guān)的控制器會(huì)將此節(jié)點(diǎn)上運(yùn)行的Pod對象重新調(diào)度到其他節(jié)點(diǎn)進(jìn)行重建。
控制器本身也是一種資源類型,它有著多種實(shí)現(xiàn),其中與工作負(fù)載相關(guān)的實(shí)現(xiàn)如Replication Controller、Deployment、StatefulSet、DaemonSet、DaemonSet和Jobs等,也可統(tǒng)稱它們?yōu)镻od控制器。如圖2-2中的Deployment就是這類控制器的代表實(shí)現(xiàn),是目前最常用的管理無狀態(tài)應(yīng)用的Pod控制器。
Pod控制器的定義通常由期望的副本數(shù)量、Pod模板和標(biāo)簽選擇器(Label Selector)組成。Pod控制器會(huì)根據(jù)標(biāo)簽選擇器對Pod對象的標(biāo)簽進(jìn)行匹配檢查,所有滿足選擇條件的Pod對象都將受控于當(dāng)前控制器并計(jì)入其副本總數(shù),并確保此數(shù)目能夠精確反映期望的副本數(shù)。
需要注意的是,在實(shí)際的應(yīng)用場景中,在接收到的請求流量負(fù)載顯著低于或接近于已有Pod副本的整體承載能力時(shí),用戶需要手動(dòng)修改Pod控制器中的期望副本數(shù)量以實(shí)現(xiàn)應(yīng)用規(guī)模的擴(kuò)容或縮容。不過,若集群中部署了HeapSter或Prometheus一類的資源指標(biāo)監(jiān)控附件時(shí),用戶還可以使用“HorizontalPodAutoscaler”(HPA)計(jì)算出合適的Pod副本數(shù)量,并自動(dòng)修改Pod控制器中期望的副本數(shù)以實(shí)現(xiàn)應(yīng)用規(guī)模的動(dòng)態(tài)伸縮,提高集群資源利用率,如圖2-3所示。
Kubernetes集群中的每個(gè)節(jié)點(diǎn)都運(yùn)行著cAdvisor以收集容器及節(jié)點(diǎn)的CPU、內(nèi)存及磁盤資源的利用率指標(biāo)數(shù)據(jù),這些統(tǒng)計(jì)數(shù)據(jù)由Heapster聚合后可通過API Server訪問。HorizontalPodAutoscaler基于這些統(tǒng)計(jì)數(shù)據(jù)監(jiān)控容器健康狀態(tài)并做出擴(kuò)展決策。
Kubernetes
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。