Azure Kubernetes Service (AKS)でノード プールを停止および開始する

AKS ワークロードを継続的に実行する必要がない場合があります。 たとえば、特定のワークロードを実行するノード プールを持つ開発クラスターがあるとします。 コンピューティング コストを最適化するために、AKS クラスター内のノード プールを完全に停止できます。 ワークロードをもう一度実行する必要がある場合は、ノード プールを再起動できます。 この記事では、Azure CLIを使用して AKS クラスター内のノード プールを停止および開始する方法について説明します。

機能および制限事項

  • システム プールは停止できません。
  • スポット ノード プールはサポートされていません。
  • 停止したノード プールをアップグレードできます。
  • ノード プールを停止するには、クラスターとユーザー ノード プールが実行されていて、ノード プール provisioningStateSucceededされている必要があります。
  • ノード プールを開始するには、クラスターが実行されていて、ユーザー ノード プールを停止する必要があります。
  • ノード 自動プロビジョニング (NAP) を使用するクラスターからノード プールを停止することはできません。

ヒント

Azure Copilot を使用して、Azure portal でノード プールを停止および開始できます。 詳細については、「 Azure Copilot を使用して AKS クラスターを効率的に操作する」を参照してください。

開始する前に

この記事は、AKS クラスターがすでに存在していることを前提としています。 AKS クラスターが必要な場合は、 Azure CLIAzure PowerShell、または Azure portal を使用して作成します。

この記事では、Azure CLI バージョン 2.38.0 以降が必要です。 az --version を実行して、インストールされているバージョンを見つけます。 Azure CLIのインストールまたはアップグレードの詳細については、「Azure CLIのインストール」を参照してください。

Azure CLIを使用して実行中の AKS ノード プールを停止する

ノード プールを停止する前に、クラスターとユーザー ノード プールが実行されていること、ノード プール provisioningStateSucceededされていること、およびクラスターでノードの自動プロビジョニングが使用されていないことを確認します。

Warning

ノード プールを停止すると、プール内のすべての仮想マシンが停止します。 プールを停止する前に、ワークロードが中断を許容できるか、別のノード プールで実行できることを確認します。

  1. az aks nodepool stop コマンドを使用して、実行中の AKS ノード プールを停止します。

    az aks nodepool stop --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool 
    
  2. az 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,
    [...]
    }
    

    provisioningStateStoppingが表示されている場合、ノード プールはまだ停止中です。

    ノード プールを停止すると、そのノード プールの クラスター オートスケーラー も停止します。 ノード プールを開始すると、クラスター オートスケーラーが再起動されます。 プールの停止中に、プール内の仮想マシン スケール セット インスタンスの数を手動で変更しないでください。 AKS で管理されるインフラストラクチャ リソースを直接変更することはサポートされておらず、クラスター オートスケーラーの不整合や操作エラーが発生する可能性があります。 詳細については、「ユーザーによる エージェント ノードのカスタマイズ」を参照してください。


Azure CLIを使用して AKS ノード プールを再起動する

ノード プールを開始する前に、クラスターが実行されていて、ユーザー ノード プールが停止していることを確認します。

  1. az aks nodepool start コマンドを使用して、停止したノード プールを再起動します。

    az aks nodepool start --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool 
    
  2. az 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,
    [...]
    }
    

    provisioningStateStartingが表示されている場合、ノード プールはまだ開始中です。


次のステップ