Kubernetes 調(diào)度器打分算法詳解:LeastAllocated 與 NodeAffinity
1?? NodeResourcesLeastAllocated(資源最少分配)
?? 目標(biāo)
優(yōu)先將 Pod 調(diào)度到資源使用率最低的節(jié)點(diǎn),防止熱點(diǎn)節(jié)點(diǎn),盡量實(shí)現(xiàn)負(fù)載均衡。
?? 打分算法原理
對(duì)每個(gè)節(jié)點(diǎn)計(jì)算 CPU 和內(nèi)存的使用率,然后反向打分:
score = (1 - (cpuRequested / cpuCapacity)) * 50 +
(1 - (memRequested / memCapacity)) * 50
-
分?jǐn)?shù)范圍:0 ~ 100
-
使用率越低,得分越高
-
CPU 和內(nèi)存權(quán)重各 50%
?? 每個(gè)部分含義
| 部分 | 說明 | 意義 |
|---|---|---|
cpuRequested |
已被調(diào)度的 Pod 請(qǐng)求的 CPU 總和 | 單位為 millicore |
cpuCapacity |
節(jié)點(diǎn)的 CPU 總?cè)萘浚╝llocatable) | 單位為 millicore |
memRequested |
已被調(diào)度的 Pod 請(qǐng)求的內(nèi)存總和 | 單位為 MiB/GiB |
memCapacity |
節(jié)點(diǎn)的內(nèi)存總?cè)萘?/td> | 單位為 MiB/GiB |
cpuRequested / cpuCapacity |
CPU 使用率 | 越高表示節(jié)點(diǎn)越繁忙 |
1 - (...) |
空閑度(反向) | 越高表示越適合調(diào)度 |
* 50 |
權(quán)重 | CPU 和內(nèi)存各占一半 |
?? 示例
| 節(jié)點(diǎn) | CPU已用/總 | Mem已用/總 | 計(jì)算得分 |
|---|---|---|---|
| node-1 | 200m / 1000m | 500Mi / 2Gi | (1-0.2)*50 + (1-0.25)*50 = 40 + 37.5 = 77.5 |
| node-2 | 500m / 1000m | 1Gi / 2Gi | (1-0.5)*50 + (1-0.5)*50 = 25 + 25 = 50 |
| node-3 | 800m / 1000m | 1.5Gi / 2Gi | (1-0.8)*50 + (1-0.75)*50 = 10 + 12.5 = 22.5 |
? 適用場景
-
高并發(fā)場景需要負(fù)載均衡
-
多租戶系統(tǒng),防止資源競爭
2?? NodeAffinity(節(jié)點(diǎn)親和性)
?? 目標(biāo)
根據(jù)用戶在 Pod 中定義的 nodeAffinity 條件打分,優(yōu)先調(diào)度到匹配度高的節(jié)點(diǎn)。
?? 用法示例
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: zone
operator: In
values:
- us-west1
-
節(jié)點(diǎn)
zone=us-west1→ 得 100 分 -
節(jié)點(diǎn)
zone=us-east1→ 得 0 分
?? 打分原理
調(diào)度器檢查 Pod 的 preferredDuringScheduling... 規(guī)則:
-
匹配 → 加上對(duì)應(yīng)權(quán)重
-
不匹配 → 不加分
-
最終得分范圍:0 ~ 100
? 適用場景
-
有部署位置偏好(如某個(gè)可用區(qū))
-
使用節(jié)點(diǎn)標(biāo)簽(如高性能/SSD 節(jié)點(diǎn))
?? 兩者對(duì)比
| 維度 | LeastAllocated | NodeAffinity |
|---|---|---|
| 目的 | 資源均衡使用 | 匹配節(jié)點(diǎn)偏好 |
| 核心依據(jù) | 當(dāng)前節(jié)點(diǎn)資源使用率 | Pod 的親和性配置 |
| 控制權(quán) | 系統(tǒng)自動(dòng)評(píng)估 | 用戶指定策略 |
| 打分方式 | 越空閑分?jǐn)?shù)越高 | 匹配越多分越高 |
| 自定義性 | 可以調(diào)整權(quán)重 | 可以自定義表達(dá)式 + 權(quán)重 |

浙公網(wǎng)安備 33010602011771號(hào)