共用方式為


在 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-podsrandomleast-wastepriority
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 叢集中的節點集區