kube-scheduler 是Kubernetes的預設調度程式,每個新建立的Pod,kube-scheduler需要幫他選擇一個最佳的節點,讓節點上的Kubelet可以把Pod執行起來。
但是,每個Pod對資源的要求都不同,因此,需要根據特定的調度演算法對現有的節點進行過濾。
kube-scheduler通過兩步操作為Pod選擇節點:
- 篩選
- 篩選步驟中,scheduler根據篩選規則,保留符合規則的節點,例如某些節點被打上taint的標記,Pod無法容忍這些被污染過(taint)的節點,scheduler根據篩選規則將合適的節點留下。
- 計分
- 計分步驟中,scheduler根據計分規則為每個對篩選完的節點打分數接著為每一個節點進行得分排名,藉以選擇最合適擺放的Pod節點。
- 如果存在多個得分相等的節點,則 scheduler 會隨機選擇其中之一。
了解上述的大方向後,後續的文章將source code來了解整個scheduler的架構與運作流程。