在 AKS Arc 叢集上使用叢集自動調整程式
適用於:Azure 本機版本 23H2
若要跟上 Kubernetes 中的應用程式需求,您可能需要調整執行工作負載的節點數目。 叢集自動調整程式元件可以監看叢集中由於資源限制而無法調度的 Pod。 當叢集自動調整程式偵測到問題時,它會相應增加節點集區中的節點數目,以符合應用程式需求。 也會定期檢查節點是否缺少執行的 Pod,然後視需要減少節點的數目。 本文說明如何在 AKS Arc 中啟用和管理叢集自動調整程式。
在新叢集上啟用叢集自動調整器
使用 az aksarc create
命令建立 AKS Arc 叢集,並使用 參數和指定 --min-count
--max-count
和節點,在叢集的節點集區上啟用和設定叢集--enable-cluster-autoscaler
自動調整程式。 下列範例命令會建立具有單一節點的叢集、啟用叢集自動調整程式,並設定最少一個和最多三個節點:
az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--custom-location $customLocationId
--vnet-ids $vnetId
--generate-ssh-keys
--aad-admin-group-object-ids $entraIds
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
建立叢集並設定叢集自動調整器設定需要幾分鐘的時間。
在現有節點中啟用叢集自動調整程式
使用 az aksarc update
指令更新現有的叢集,並使用 參數啟用和設定叢集自動調整程式 --enable-cluster-autoscaler
,並為節點指定 --min-count
和 --max-count
。 下列範例命令會更新現有的 AKS Arc 叢集,以在叢集上啟用叢集自動調整程式,並設定最少一個節點和最多三個節點:
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
更新叢集並設定叢集自動調整器設定需要幾分鐘的時間。
在叢集上停用叢集自動調整器
使用 az aksarc update
命令與 --disable-cluster-autoscaler
參數停用叢集自動調整程式:
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--disable-cluster-autoscaler
停用叢集自動調整器時,不會移除節點。
更新叢集自動調整程式設定
隨著應用程式需求的變化,您可能需要調整叢集自動調整程式的節點計數來有效縮放。 使用 命令變更節點計數, az aksarc update
並使用 參數更新叢集自動調整程式 --update-cluster-autoscaler
,並指定您更新 --min-count
的節點和 --max-count
節點。
az aksarc update \
--resource-group myResourceGroup \
--name myAKSCluster \
--update-cluster-autoscaler \
--min-count 1 \
--max-count 5
使用叢集自動調整程式設定檔
您可以變更整個叢集的自動調整程式設定檔的預設值,以此方式設定叢集自動調整程式的細部詳細資料。 例如,在節點使用率過低 10 分鐘後之後,就會發生縮小事件。 如果有每隔 15 分鐘執行一次的工作負載,建議您變更自動調整程式設定檔,以便在節點使用量過低 15 或 20 分鐘後將之縮小。 啟用叢集自動調整程式時,除非指定不同的設定,否則會使用預設設定檔。
叢集自動調整程式設定檔設定
下表列出叢集自動調整程式設定檔的可用設定:
設定 | 描述: | 預設值 |
---|---|---|
scan-interval |
重新評估叢集以進行擴大或縮小的頻率。 | 10 秒 |
scale-down-delay-after-add |
擴大後再繼續進行縮小評估的時間長度。 | 10 分鐘 |
scale-down-delay-after-delete |
節點刪除後再繼續進行縮小評估的時間長度。 | scan-interval |
scale-down-delay-after-failure |
縮小失敗後再繼續進行縮小評估的時間長度。 | 三分鐘 |
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 。 |
|
skip-nodes-with-local-storage |
如果 true 為 ,叢集自動調整程式不會刪除具有本機記憶體之 Pod 的節點,例如 EmptyDir 或 HostPath。 |
true |
skip-nodes-with-system-pods |
如果 true ,叢集自動調整程式不會從 kube 系統刪除具有 Pod 的節點 (但 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 分鐘 |
在新叢集上設定叢集自動調整程式設定檔
使用 az aksarc create
命令建立 AKS Arc 叢集,並使用 參數設定叢集自動調整程式設定檔 cluster-autoscaler-profile
:
az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3 \
--cluster-autoscaler-profile scan-interval=30s
在現有叢集上設定叢集自動調整程式設定檔
使用 az aksarc update
命令和 cluster-autoscaler-profile
參數在現有叢集上設定叢集自動調整程式。 下列範例將掃描間隔設為 30 秒:
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--cluster-autoscaler-profile scan-interval=30s
將叢集自動調整程式設定檔重設定為預設值
使用 az aksarc update
命令重設叢集自動調整程式設定檔:
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--cluster-autoscaler-profile ""
下一步
本文說明如何自動調整 AKS Arc 節點的數目。 若要手動調整節點集區,請參閱 管理 AKS Arc 叢集中的節點集區。