iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Kubernetes

關於新手會想知道Kubernetes的幾件事情系列 第 12

[Day 12] More about Kube-Scheduler

  • 分享至 

  • xImage
  •  

在 Kubernetes 叢集中,Kube-Scheduler 扮演著至關重要的角色,其主要職責是將 Pod 正確地分配到叢集中的節點上。

在上一篇文章中,我們簡要介紹了 Kube-Scheduler 的基本功能和運作原理。

今天,我們將深入探討 Kube-Scheduler

  • Filtering
  • Scoring
  • 調度策略

Kube-Scheduler 的調度過程

Kube-Scheduler 的調度過程可以分為以下三個主要階段:

  1. Filtering
  2. Scoring
  3. Selection

1. Filtering

第一步是過濾階段,目的是從所有節點中選擇出符合 Pod 要求的候選節點。

主要過濾條件包括:

  • 資源需求
    Pod 需要的資源(如 CPU、內存)必須小於或等於節點的可用資源。Kube-Scheduler 會檢查每個節點的資源使用狀況,以確保 Pod 能夠在節點上順利運行。

  • 親和性和反親和性
    根據 Pod 的親和性(Affinity)和反親和性(Anti-Affinity)要求,Kube-Scheduler 會篩選出符合要求的節點。例如,如果 Pod 要求與某些特定的 Pod 在同一節點上運行,Scheduler 會選擇滿足這一要求的節點。

  • 污點和容忍度
    節點上的污點(Taints)會影響 Pod 的調度。Kube-Scheduler 會檢查 Pod 的容忍度(Tolerations),確保它能夠接受節點上的污點,從而避免不適合的節點。

  • 其他條件
    包括節點的標籤(Labels)、Pod 的優先級(Priority)、節點的健康狀況等,Kube-Scheduler 會綜合考慮這些條件來過濾節點。

2. Scoring

在過濾階段完成後,Kube-Scheduler 會進入評分階段,對於每個符合條件的節點,Kube-Scheduler 會根據一定的評分策略為其分配分數。

主要的評分因素包括:

  • 資源利用率
    Kube-Scheduler 會根據節點的資源利用率(如 CPU 和內存的使用情況)來評分。節點的資源利用率越低,其評分可能越高,以確保 Pod 能夠得到充分的資源。

  • 親和性和反親和性
    根據 Pod 的親和性和反親和性策略,Kube-Scheduler 會為符合要求的節點評分。例如,Pod 與指定節點的親和性越強,該節點的得分可能越高。

  • 自定義評分策略
    用戶可以根據具體需求設置自定義的評分策略。這些策略可以基於特定的業務需求或環境條件進行調整,以實現更靈活的調度。

3. Selection

在完成評分後,Kube-Scheduler 會根據評分結果選擇得分最高的節點來調度 Pod,確保 Pod 能夠在最佳的節點上運行,以實現資源的最佳利用和應用程式的最佳性能。

高級調度策略

除了基本的過濾和評分,Kube-Scheduler 還支援一些高級的調度策略,以應對更複雜的調度需求:

  • 延遲調度(Delay Scheduling)
    延遲調度策略允許 Pod 在特定條件下等待一定時間再進行調度。這可以幫助調整叢集中的資源使用,避免瞬間的資源短缺。

  • 預留資源(Resource Reservation)
    某些應用程式需要保證一定量的資源。Kube-Scheduler 支援預留資源策略,以確保關鍵應用程式可以獲得所需的資源。

  • 調度擴展(Scheduling Extensions)
    Kube-Scheduler 支援插件機制,允許用戶根據實際需求擴展調度功能。例如,通過自定義調度插件,可以實現更靈活的調度策略。


上一篇
[Day 11] Kube-Scheduler
下一篇
[Day 13] Kube Controller Manager
系列文
關於新手會想知道Kubernetes的幾件事情30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言