在本文中,您將瞭解 Azure Kubernetes Service (AKS) 中的節點資源保留。
資源保留
AKS 會使用節點資源來協助節點作為叢集的一部分運作。 此使用方式可能會導致節點的總資源與 AKS 中可指派的資源不一致。
AKS 會在每個節點上保留兩種類型的資源,CPU 和 記憶體,以維護節點效能和功能。 隨著節點資源增加,資源保留也會因為管理使用者部署的 Pod 需要更高而增加。 請記住,您無法變更節點上的資源保留。
CPU 保留
保留的 CPU 取決於節點類型和叢集組態,這可能會導致因執行額外功能而減少可配置 CPU。 下表顯示 CPU 保留項目,以 millicores 為單位:
| 主機上的 CPU 核心 | 單核心 | 2 個核心 | 4 個核心 | 8 核心 | 16 核心 | 32 個核心 | 64 個核心 |
|---|---|---|---|---|---|---|---|
| Kube 保留的 CPU (毫核心) | 60 | 100 | 140 | 180 | 260 | 420 | 740 |
記憶體保留
在 AKS 中,保留的記憶體是由兩個值的總和所組成:
AKS 1.29 和更新版本
預設情況下,
kubeletdaemon 設有 memory.available < 100 Mi 驅逐規則。 此規則可確保節點隨時至少有 100 Mi 可配置。 當主機低於該可用記憶體閾值時,kubelet會觸發其中一個執行中 Pod 的終止,並釋放主機電腦上的記憶體。記憶體保留率,依據 20 MB * 節點支持的最大 Pod 數 + 50 MB 或 總系統記憶體資源的 25% 兩者之間較小的值來設定。
範例:
- 如果虛擬機器 (VM) 提供 8 GB 的記憶體,且節點最多支援 30 個 Pod,則 AKS 會保留 20 MB * 30 個 Pod 上限 + 50 MB = 650 MB 給 kube-reserved。
Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable. - 如果 VM 提供 4 GB 的記憶體,且節點支援最多 70 個 Pod,AKS 會保留 25% * 4 GB = 1000 MB 供 kube 保留使用,因為其小於 20 MB * 70 Max Pods + 50 MB = 1450 MB。
如需詳細資訊,請參閱在 AKS 叢集中設定每個節點的最大 Pod 數。
- 如果虛擬機器 (VM) 提供 8 GB 的記憶體,且節點最多支援 30 個 Pod,則 AKS 會保留 20 MB * 30 個 Pod 上限 + 50 MB = 650 MB 給 kube-reserved。
注意
若要自訂 kubeReserved CPU 與記憶體值,或 hardEvictionThreshold 在 Linux 節點池上,請使用預覽自訂節點設定並註冊 AKSNodeCustomizationPreview 功能標誌。 欲了解更多資訊,請參閱 自訂 Azure Kubernetes Service (AKS) 節點集區的節點組態。
1.29 之前的 AKS 版本
-
kubelet精靈預設具有 memory.available < 750 Mi 收回規則。 此規則可確保節點隨時至少有 750 Mi 可配置。 當主機低於該可用的記憶體閾值時,kubelet會觸發其中一個執行中的 Pod 終止,並在主電腦上釋放記憶體。 -
kubelet 精靈正常運作 (kube-reserved) 所需的記憶體保留遞減率。
- 前 4 GB 記憶體的 25%
- 後續 4 GB 記憶體 (最多 8 GB) 的 20%
- 後續 8 GB 記憶體 (最多 16 GB) 的 10%
- 後續 112 GB 記憶體 (最多 128 GB) 的 6%
- 超過 128 GB 的任何記憶體的 2%
注意
AKS 會為不屬於計算記憶體之 Windows 節點中的系統進程保留額外的 2 GB。
記憶體和 CPU 配置規則的設計目的是:
- 讓 Agent 節點保持良好狀態,包括部分裝載對叢集健全狀態至關重要之系統 Pod 的節點。
- 使節點回報的可配置記憶體和 CPU 少於其未加入 Kubernetes 叢集時會回報的數量。
例如,如果節點提供 7 GB,則會回報包含 750 Mi 硬性收回閾值在內的 34% 記憶體不可配置。
0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved
除了 Kubernetes 本身的保留,基礎節點作業系統也會保留大量 CPU 和記憶體資源來維護作業系統功能。
如需相關聯的最佳做法,請參閱 AKS 中基本排程器功能的最佳做法。
下一步
- 了解更多關於 AKS 自訂節點配置的資訊。