AKS ワークロードを継続的に実行する必要がない場合があります。 たとえば、特定のワークロードを実行するノード プールを持つ開発クラスターがあるとします。 コンピューティング コストを最適化するために、AKS クラスター内のノード プールを完全に停止できます。 ワークロードをもう一度実行する必要がある場合は、ノード プールを再起動できます。 この記事では、Azure CLIを使用して AKS クラスター内のノード プールを停止および開始する方法について説明します。
機能および制限事項
- システム プールは停止できません。
- スポット ノード プールはサポートされていません。
- 停止したノード プールをアップグレードできます。
- ノード プールを停止するには、クラスターとユーザー ノード プールが実行されていて、ノード プール
provisioningStateがSucceededされている必要があります。 - ノード プールを開始するには、クラスターが実行されていて、ユーザー ノード プールを停止する必要があります。
- ノード 自動プロビジョニング (NAP) を使用するクラスターからノード プールを停止することはできません。
ヒント
Azure Copilot を使用して、Azure portal でノード プールを停止および開始できます。 詳細については、「 Azure Copilot を使用して AKS クラスターを効率的に操作する」を参照してください。
開始する前に
この記事は、AKS クラスターがすでに存在していることを前提としています。 AKS クラスターが必要な場合は、 Azure CLI、 Azure PowerShell、または Azure portal を使用して作成します。
この記事では、Azure CLI バージョン 2.38.0 以降が必要です。
az --version を実行して、インストールされているバージョンを見つけます。 Azure CLIのインストールまたはアップグレードの詳細については、「Azure CLIのインストール」を参照してください。
Azure CLIを使用して実行中の AKS ノード プールを停止する
ノード プールを停止する前に、クラスターとユーザー ノード プールが実行されていること、ノード プール provisioningState が Succeededされていること、およびクラスターでノードの自動プロビジョニングが使用されていないことを確認します。
Warning
ノード プールを停止すると、プール内のすべての仮想マシンが停止します。 プールを停止する前に、ワークロードが中断を許容できるか、別のノード プールで実行できることを確認します。
az aks nodepool stopコマンドを使用して、実行中の AKS ノード プールを停止します。az aks nodepool stop --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepoolaz aks nodepool showコマンドを使用して、ノード プールが停止したことを確認します。az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool次の要約された出力例は、
powerStateとしてのStoppedを示しています。{ [...] "osType": "Linux", "podSubnetId": null, "powerState": { "code": "Stopped" }, "provisioningState": "Succeeded", "proximityPlacementGroupId": null, [...] }注
provisioningStateにStoppingが表示されている場合、ノード プールはまだ停止中です。注
ノード プールを停止すると、そのノード プールの クラスター オートスケーラー も停止します。 ノード プールを開始すると、クラスター オートスケーラーが再起動されます。 プールの停止中に、プール内の仮想マシン スケール セット インスタンスの数を手動で変更しないでください。 AKS で管理されるインフラストラクチャ リソースを直接変更することはサポートされておらず、クラスター オートスケーラーの不整合や操作エラーが発生する可能性があります。 詳細については、「ユーザーによる エージェント ノードのカスタマイズ」を参照してください。
Azure CLIを使用して AKS ノード プールを再起動する
ノード プールを開始する前に、クラスターが実行されていて、ユーザー ノード プールが停止していることを確認します。
az aks nodepool startコマンドを使用して、停止したノード プールを再起動します。az aks nodepool start --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepoolaz aks nodepool showコマンドを使用してノード プールが開始されたことを確認します。az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool次の要約された出力例は、
powerStateとしてのRunningを示しています。{ [...] "osType": "Linux", "podSubnetId": null, "powerState": { "code": "Running" }, "provisioningState": "Succeeded", "proximityPlacementGroupId": null, [...] }注
provisioningStateにStartingが表示されている場合、ノード プールはまだ開始中です。
次のステップ
-
Userプールを 0 にスケーリングする方法については、「Userプールを 0 にスケーリングする」を参照してください。 - クラスターを停止する方法については、クラスターの 開始/停止に関するページを参照してください。
- スポット インスタンスを使用してコストを節約する方法については、 スポット ノード プールを AKS に追加する方法に関するページを参照してください。
- AKS サポート ポリシーの詳細については、 AKS サポート ポリシーに関するページを参照してください。