根據預設,手動或由叢集自動調整程式執行的擴大作業需要配置和佈建新的節點,而縮小作業則需刪除節點。 縮小模式可讓您決定縮小規模時,是否要在 Azure Kubernetes Service (AKS) 叢集中刪除或解除配置節點。
當 Azure VM 處於 Stopped (解除配置) 狀態時,您將無需支付 VM 計算資源的費用。 不過,您仍然需要支付連結至 VM 的任何 OS 和資料儲存體磁碟的費用。 這也表示容器映像將會保留在這些節點上。 如需詳細資訊,請參閱 Azure 虛擬機器的狀態和計費。 此行為可加快作業速度,因為您的部署使用快取的映像。 縮小模式無需預先佈建節點和預先提取容器映像,因此可以節省計算成本。
開始之前
警告
若要保留任何已解除配置的 VM,您必須將 [縮小模式] 設定為 [解除配置]。 這包括已使用 IaaS API (虛擬機器擴展集 API) 解除配置的 VM。 將 [縮小模式] 設定為 [刪除],將會移除任何解除配置的 VM。 套用已解除配置模式並發生相應減少作業之後,這些節點在 APIserver 中會保持已註冊的狀態,並顯示為 NotReady 的狀態。
此文章假設您目前具有 AKS 叢集。 如果您沒有 AKS 叢集,請參閱規劃 AKS 設計取得設計 AKS 企業級實作的指導。
限制
- 不支援暫時性 OS 磁碟。 請務必在建立叢集或節點集區時,透過包含
--node-osdisk-type Managed引數來指定受控 OS 磁碟。
注意
先前,雖然縮小模式處於預覽版,但不支援現成節點集區。 現在縮小模式已正式推出,此限制已不再適用。
使用縮小模式在縮小規模時解除配置節點
藉由設定 --scale-down-mode Deallocate,節點會在叢集/節點集區規模縮小期間解除配置。 所有已解除配置的節點都會停止。 當您的叢集/節點集區需要擴大規模時,會在佈建任何新的節點之前先啟動解除配置的節點。
在此範例中,我們會建立具有 20 個節點的新節點集區,並指定在縮小規模時使用 --scale-down-mode Deallocate 引數來解除配置節點。
az aks nodepool add --node-count 20 --scale-down-mode Deallocate --node-osdisk-type Managed --max-pods 10 --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup
藉由調整節點集區規模並將節點計數變更為 5,我們將解除配置 15 個節點。
az aks nodepool scale --node-count 5 --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup
若要在縮小規模期間相應地解除配置 Windows 節點,請執行下列命令。 預設行為與 Linux 節點一致,其中 節點會在縮小規模期間相應地刪除 。
az aks nodepool add --node-count 20 --scale-down-mode Deallocate --os-type Windows --node-osdisk-type Managed --max-pods 10 --name npwin2 --cluster-name myAKSCluster --resource-group myResourceGroup
刪除先前已解除配置的節點
若要刪除已解除配置的節點,您可以藉由設定 Delete,將縮小模式變更為 --scale-down-mode Delete。 現在將會刪除 15 個已解除配置的節點。
az aks nodepool update --scale-down-mode Delete --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup
注意
將縮小模式從 Deallocate 變更為 Delete,然後再變回 Deallocate,將刪除所有已解除配置的節點,同時讓您的節點集區保持在 Deallocate 縮小模式。
使用縮小模式在縮小規模時刪除節點
不使用縮小模式的 AKS 預設行為是當您縮小叢集規模時刪除節點。 使用縮小模式,您可以藉由設定 --scale-down-mode Delete 來明確達成此行為。
在此範例中,我們會建立新的節點集區,並使用 --scale-down-mode Delete 引數指定在縮小規模時刪除節點。 調整作業將會使用叢集自動調整程式來處理。
az aks nodepool add --enable-cluster-autoscaler --min-count 1 --max-count 10 --max-pods 10 --node-osdisk-type Managed --scale-down-mode Delete --name nodepool3 --cluster-name myAKSCluster --resource-group myResourceGroup
下一步
- 若要深入了解 AKS 叢集升級,請參閱升級 AKS 叢集
- 若要深入了解叢集自動調整程式,請參閱自動調整叢集以符合 AKS 上的應用程式需求