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

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


咨詢
建站咨詢
