スケールダウン モードを使用して、Azure Kubernetes Service (AKS) のノードの削除および割り当て解除を行う

既定では、手動またはクラスター オートスケーラーによって実行されるスケールアップ操作では、新しいノードの割り当てとプロビジョニングを行う必要があり、スケールダウン操作ではノードが削除されます。 スケールダウン モードを使用すると、スケールダウン時に Azure Kubernetes Service (AKS) クラスター内のノードを削除するか、割り当てを解除するかを決めることができます。

Azure VM が Stopped (割り当て解除) 状態の間は、VM のコンピューティング リソースに対する課金は行われません。 ただし、VM に接続されている OS やデータ ストレージ ディスクに対しては、変わらず課金されます。 これは、コンテナー イメージがそれらのノードで保持されることも意味します。 詳細については、「Azure Virtual Machines の状態と課金」を参照してください。 この動作により、デプロイにはキャッシュされたイメージが利用されるので、操作速度が速くなります。 スケールダウン モードを使用すると、ノードを事前にプロビジョニングしたり、コンテナー イメージを事前にプルしたりする必要がなくなるため、コンピューティング コストを削減できます。

始める前に

警告

割り当て解除された VM を保持するには、スケールダウン モードを Deallocate に設定する必要があります。 これには、IaaS API (Virtual Machine Scale Set API) を使用して割り当てが解除された VM が含まれます。 スケールダウン モードを Delete に設定すると、割り当て解除された VM が削除されます。 割り当て解除モードが適用され、スケール ダウン操作が発生すると、それらのノードは APIserver に登録されたままになり、準備不完了状態として表示されます。

この記事は、AKS クラスターがすでに存在していることを前提としています。 AKS クラスターがない場合、エンタープライズ規模の AKS 実装の設計に関するガイダンスについては、AKS 設計の計画に関する記事を参照してください。

制限事項

  • エフェメラル OS ディスクはサポートされていません。 クラスターまたはノード プールを作成する場合は、引数 --node-osdisk-type Managed を含めることでマネージド OS ディスクを指定するようにしてください。

Note

以前は、スケールダウン モードはプレビュー段階でしたが、スポット ノード プールはサポートされていませんでした。 スケールダウン モードが一般公開されたので、この制限はもはや適用されません。

スケールダウン モードを使用してスケールダウン時にノードを割り当て解除する

--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

以前に割り当て解除されたノードを削除する

割り当て解除したノードを削除するには、--scale-down-mode Delete を設定してスケールダウン モードを Delete に変更します。 これで、15 個のノードが削除されます。

az aks nodepool update --scale-down-mode Delete --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

Note

スケールダウン モードを 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

次のステップ