溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes的Scheduler是什么

發(fā)布時間:2021-12-20 14:43:07 來源:億速云 閱讀:106 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Kubernetes的Scheduler是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Kubernetes的Scheduler是什么”吧!

調度流程

kube-scheduler 是 kubernetes 的調度器,它的主要作用就是根據(jù)特定的調度算法和調度策略將Pod調度到合適的Node 節(jié)點上去,是一個獨立的二進制程序,啟動之后會一直監(jiān)聽APIServer,獲取到PodSpec.NodeName 為空的 Pod,對每個 Pod 都會創(chuàng)建一個 binding。

Predicates

Predicates 階段首先遍歷全部節(jié)點,過濾掉不滿足條件的節(jié)點,屬于強制性規(guī)則,這一階段輸出的所有滿足要求的 Node 將被記錄并作為第二階段的輸入,如果所有的節(jié)點都不滿 足條件,那么Pod將會一直處于Pending狀態(tài),直到有節(jié)點滿足條件,在這期間調度器會不斷的重試。

Priorities

Priorities 階段即再次對節(jié)點進行篩選,如果有多個節(jié)點都滿足條件的話,那么系統(tǒng)會按 照節(jié)點的優(yōu)先級(priorites)大小對節(jié)點進行排序,最后選擇優(yōu)先級最高的節(jié)點來部署 Pod 應用。

LeastRequestedPriority:通過計算 CPU 和內存的使用率來決定權重,使用率越低權重越 高,當然正常肯定也是資源是使用率越低權重越高,能給別的 Pod 運行的可能性就越大

SelectorSpreadPriority:為了更好的高可用,對同屬于一個 Deployment 或者 RC 下面 的多個 Pod 副本,盡量調度到多個不同的節(jié)點上,當一個 Pod 被調度的時候,會先去查 找該 Pod 對應的 controller,然后查看該 controller 下面的已存在的 Pod,運行 Pod 越少的節(jié)點權重越高

ImageLocalityPriority:就是如果在某個節(jié)點上已經有要使用的鏡像節(jié)點了,鏡像總大小 值越大,權重就越高

NodeAffinityPriority:這個就是根據(jù)節(jié)點的親和性來計算一個權重值,后面我們會詳細 講解親和性的使用方法

節(jié)點調度親和性

節(jié)點硬親和性

requiredDuringSchedulingIgnoredDuringExecution

方式一:Pod 使用 spec.nodeSelector (基于等值關系)

方式二:Pod 使用 spec.affinity 支持 matchExpressions 屬性 (復雜標簽選擇機制)

節(jié)點軟親和性

柔性控制邏輯,當條件不滿足時,能接受被編排于其他不符合條件的節(jié)點之上 權重 weight 定義優(yōu)先級,1-100 值越大優(yōu)先級越高

污點和容忍度

污點 taints 是定義在節(jié)點上的鍵值型屬性數(shù)據(jù),用于讓節(jié)點拒絕將 Pod 調度運行于其上,

除非 Pod 有接納節(jié)點污點的容忍度容忍度 tolerations 是定義在 Pod 上的鍵值屬性數(shù)據(jù),

用于配置可容忍的污點,且調度器將 Pod 調度至其能容忍該節(jié)點污點的節(jié)點上或沒有污點

的節(jié)點上

使用 PodToleratesNodeTaints 預選策略和 TaintTolerationPriority 優(yōu)選函數(shù)完成該機

節(jié)點親和性使得 Pod 對象被吸引到一類特定的節(jié)點 (nodeSelector 和 affinity)

污點提供讓節(jié)點排斥特定 Pod 對象的能力

(1)定義污點和容忍度

污點定義于 nodes.spec.taints 容忍度定義于 pods.spec.tolerations

語法: key=value:effect

(2)effect 定義排斥等級:

NoSchedule,不能容忍,但僅影響調度過程,已調度上去的 pod 不受影響,僅對新增加的

pod 生效。

PreferNoSchedule,柔性約束,節(jié)點現(xiàn)存 Pod 不受影響,如果實在是沒有符合的節(jié)點,也

可以調度上來

NoExecute,不能容忍,當污點變動時,Pod 對象會被驅逐

(3)在 Pod 上定義容忍度時:等值比較 容忍度與污點在 key、value、effect 三者完全匹配

存在性判斷 key、effect 完全匹配,value 使用空值

一個節(jié)點可配置多個污點,一個 Pod 也可有多個容忍度

感謝各位的閱讀,以上就是“Kubernetes的Scheduler是什么”的內容了,經過本文的學習后,相信大家對Kubernetes的Scheduler是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI