新聞中心
Kubernetes的scheduler是如何工作的
作者:浩仔浩仔 2023-03-06 00:27:02
云計(jì)算
云原生 Scheduler不會(huì)立即將Pod調(diào)度到一個(gè)節(jié)點(diǎn)上,而是會(huì)將Pod調(diào)度到一個(gè)未綁定(unbound)狀態(tài)(如果一個(gè)Pod是unbound狀態(tài),那么它的狀態(tài)將被列為"Pending")。這樣,kubelet就可以在后續(xù)的時(shí)間里為該P(yáng)od綁定一個(gè)節(jié)點(diǎn)。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),費(fèi)縣企業(yè)網(wǎng)站建設(shè),費(fèi)縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,費(fèi)縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,費(fèi)縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
Kubernetes的scheduler是一個(gè)獨(dú)立的組件,它負(fù)責(zé)監(jiān)視集群中新建的未調(diào)度的Pod,根據(jù)預(yù)定義的調(diào)度策略和集群資源的可用性,選擇最佳的節(jié)點(diǎn)進(jìn)行調(diào)度。
Scheduler不會(huì)立即將Pod調(diào)度到一個(gè)節(jié)點(diǎn)上,而是會(huì)將Pod調(diào)度到一個(gè)未綁定(unbound)狀態(tài)(如果一個(gè)Pod是unbound狀態(tài),那么它的狀態(tài)將被列為"Pending")。這樣,kubelet就可以在后續(xù)的時(shí)間里為該P(yáng)od綁定一個(gè)節(jié)點(diǎn)。
下面是Kubernetes Scheduler的工作流程:
- 監(jiān)聽API Server:Kubernetes Scheduler監(jiān)聽API Server的調(diào)度事件,包括新建的未調(diào)度的Pod以及已調(diào)度但未運(yùn)行的Pod。
- 獲取調(diào)度信息:Scheduler通過API Server獲取未調(diào)度的Pod的調(diào)度信息,包括Pod的資源需求和節(jié)點(diǎn)親和性/反親和性約束等信息。
- 選擇節(jié)點(diǎn):Scheduler使用調(diào)度算法根據(jù)節(jié)點(diǎn)資源的可用性和約束條件,選擇最佳的節(jié)點(diǎn)進(jìn)行調(diào)度。調(diào)度算法通常考慮節(jié)點(diǎn)資源的負(fù)載情況、節(jié)點(diǎn)和Pod的親和性/反親和性約束等因素。具體如下:
Scheduler的工作可以分為三個(gè)階段:預(yù)選(preemption)、優(yōu)選(prioritization)和選擇(selection)。
- 預(yù)選階段
在預(yù)選階段,Scheduler會(huì)對(duì)當(dāng)前集群中所有的節(jié)點(diǎn)進(jìn)行評(píng)分,計(jì)算每個(gè)節(jié)點(diǎn)可以分配給待調(diào)度的Pod的資源是否足夠。如果某個(gè)節(jié)點(diǎn)的資源不足以滿足Pod的需求,那么Scheduler會(huì)嘗試從該節(jié)點(diǎn)上遷移一些低優(yōu)先級(jí)的Pod,以便為高優(yōu)先級(jí)的Pod騰出足夠的資源。
- 優(yōu)選階段
在預(yù)選階段完成之后,Scheduler會(huì)對(duì)所有可用的節(jié)點(diǎn)進(jìn)行優(yōu)選,選出最適合待調(diào)度的Pod的節(jié)點(diǎn)。在這個(gè)階段,Scheduler會(huì)為每個(gè)節(jié)點(diǎn)計(jì)算一個(gè)優(yōu)先級(jí)值,優(yōu)先級(jí)值越高的節(jié)點(diǎn)越有可能被選中。優(yōu)選的算法可以由用戶自定義,Kubernetes提供了一些默認(rèn)的算法。
- 選擇階段
在優(yōu)選階段完成之后,Scheduler會(huì)將Pod綁定到被選中的節(jié)點(diǎn)上,完成Pod的調(diào)度工作。如果調(diào)度失敗,Scheduler會(huì)繼續(xù)嘗試調(diào)度,直到成功為止。
總體來說,Scheduler的工作流程可以用以下幾個(gè)步驟概括:
- 獲取所有待調(diào)度的Pod
- 針對(duì)每個(gè)Pod進(jìn)行預(yù)選操作,以確定是否需要遷移其他Pod來釋放資源
- 針對(duì)每個(gè)Pod進(jìn)行優(yōu)選操作,以確定最適合的節(jié)點(diǎn)
- 將Pod綁定到被選中的節(jié)點(diǎn)上
4.更新Pod狀態(tài):Scheduler將調(diào)度好的Pod的信息更新到API Server中,同時(shí)將Pod的調(diào)度信息發(fā)送到kubelet,讓kubelet啟動(dòng)Pod所在的容器。
Kubernetes的Scheduler是一個(gè)高度可擴(kuò)展的系統(tǒng),用戶可以自定義調(diào)度算法和插件來滿足自己的需求。
分享題目:Kubernetes的Scheduler是如何工作的
網(wǎng)頁URL:http://www.fisionsoft.com.cn/article/codcdpp.html


咨詢
建站咨詢
