使用自動調整程式設定檔在 Arc 啟用的 AKS 中設定叢集自動調整
適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
您可以使用自動調整程式設定檔物件中的參數,在 Arc 啟用的 AKS 中定義縮放事件。叢集自動調整程式配置檔會影響使用叢集自動調整程式的所有節點集區;您無法為每個節點集區設定自動調整程式設定檔。 本文說明自動調整程序的運作方式、描述預設自動調整程式配置檔值,以及描述如何設定和使用配置檔定義。
使用配置檔
叢集自動調整程式設定檔具有下列屬性:
- 自動調整程式配置檔會套用至叢集中的所有節點集區。
- 配置檔是全域部署層級物件。
- AKS Arc 中提供多個配置檔。
- 只有一個配置檔會指派給指定的叢集。 配置檔用於叢集中的所有節點集區。
- 配置文件的變更會套用至已啟用自動調整程式函式的所有節點集區。
設定檔設定
預設配置檔包含下列預設值。 您可以更新下列設定。
設定 | 描述: | 預設值 |
---|---|---|
min-node-count |
指派此配置檔之節點集區的最小節點計數可以相應減少。 | 0 |
max-node-count |
指派此配置檔的節點集區可以相應增加的節點計數上限。 | 1 |
scan-interval |
重新評估叢集以相應增加或減少的頻率。 | 10 秒 |
scale-down-delay-after-add |
擴大後再繼續進行縮小評估的時間長度。 | 10 分鐘 |
scale-down-delay-after-delete |
節點刪除後再繼續進行縮小評估的時間長度。 | scan-interval |
scale-down-delay-after-failure |
相應減少失敗之後,相應減少評估會繼續多久。 | 3 分鐘 |
scale-down-unneeded-time |
節點在符合縮小條件前,處於不需要狀態的時間長度。 | 10 分鐘 |
scale-down-unready-time |
未就緒節點在符合縮小條件前,處於不需要狀態的時間長度。 | 20 分鐘 |
scale-down-utilization-threshold |
節點使用率層級,定義為所要求資源的總和除以容量,因此節點可考慮相應減少。 | 0.5 |
max-graceful-termination-sec |
嘗試縮小節點時,叢集自動調整程式等待 Pod 終止的秒數上限。 | 600 秒 |
balance-similar-node-groups |
偵測相似的節點集區,並平衡其間的節點數目。 | false |
expander |
要用於相應增加的節點集 區擴充器 類型。 可能的值:most-pods 、、、random least-waste 。priority |
random |
skip-nodes-with-local-storage |
如果 為 true,叢集自動調整程式永遠不會刪除具有本機記憶體之 Pod 的節點,例如 EmptyDir 或 HostPath。 | true |
skip-nodes-with-system-pods |
如果 為 true,叢集自動調整程式永遠不會從 中刪除具有 Pod kube-system 的節點(除了 DaemonSet 或鏡像 Pod 除外)。 |
true |
max-empty-bulk-delete |
可以同時刪除的空白節點數目上限。 | 10 |
new-pod-scale-up-delay |
在 Kubernetes 排程器可以排程所有 Pod 之前,例如高載/批次規模,您不希望 CA 在排程所有 Pod 之前採取行動,您可以告訴 CA 在某個年齡之前忽略未排程的 Pod。 | 0 秒 |
max-total-unready-percentage |
叢集中未讀取節點的最大百分比。 超過此百分比之後,CA 會停止作業。 | 45% |
max-node-provision-time |
自動調整程式等候佈建節點的時間上限。 | 15 分鐘 |
自動調整程式設定注意事項
您可以使用 Set-AksHciAutoScalerConfig PowerShell Cmdlet 來變更叢集自動調整程式設定檔中的設定。
叢集自動調整程式會根據每個節點集區上設定的最小和最大計數來做出調整決策,但在更新最小或最大計數之後不會強制執行。 例如,當目前的節點計數為 3 時,將最小計數設定為 5,將不會立即將集區調整為 5。
如果節點集區上的最小計數值高於目前的節點數目,當有足夠的未排程 Pod 存在需要兩個新的額外節點並觸發自動調整程式事件時,就會遵守新的最小或最大設定。 調整事件之後,會遵守新的計數限制。
您也可以變更整個叢集自動調整程式設定檔中的預設值,以設定叢集自動調整程式更細微的詳細數據。 例如,在節點使用量過低 10 分鐘之後,就會發生相應減少事件。 如果您有每 15 分鐘執行的工作負載,您可能會想要變更自動調整程式配置檔,以在 15 或 20 分鐘後相應減少使用量過低的節點。 啟用叢集自動調整程式時,除非指定不同的設定,否則會使用預設設定檔。
儲存並載入自動調整程式配置檔
您可以將自動調整程式設定檔儲存並儲存在設定檔案定義中做為 YAML 檔案。 您可以從文字編輯器手動編輯 YAML 檔案,並載入已儲存的定義。
儲存配置檔定義
您可以使用 將設定檔的複本儲存為 YAML 檔案 kvactl
。 定義設定檔之後,請執行下列命令:
kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml
編輯配置檔定義
您可以在 YAML 檔案中編輯設定檔定義。 例如,您可以在記事本、Visual Studio Code 或其他文字編輯器中開啟 def.yaml 。
載入配置檔定義
您可以從儲存的 YAML 檔案載入設定檔案定義 kvactl
。 執行以下命令:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig