Azure Kubernetes Service (AKS) クラスターの停止と起動

Azure Kubernetes Service (AKS) ワークロードを継続的に実行する必要がない場合があります。 たとえば、営業時間中にのみ使用する開発クラスターがあるとします。 これは、クラスターがアイドル状態で、システム コンポーネント以外は何も実行されていない場合があることを意味します。 すべての User ノード プールを 0 にスケーリングすることで、クラスターの占有領域を削減できますが、クラスターの実行中にシステム コンポーネントを実行するには System プールが必要です。

これらの期間中にコストをさらに最適化するために、クラスターをオフにするか停止することができます。 このアクションによって、コントロール プレーンとエージェント ノードが停止され、スタンドアロン ポッドを除くすべてのオブジェクトを保持しつつ、すべてのコンピューティング コストを節約できます。 クラスターの状態は次回の起動に備えて保存されるため、中断したところから再開できます。

注意事項

クラスターを停止すると、コントロール プレーンの割り当てが解除され、容量が解放されます。 容量の制約が発生しているリージョンでは、お客様は、停止したクラスターを起動できない可能性があります。 このため、ミッション クリティカルなワークロードを停止することはお勧めしません。

開始する前に

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

クラスターの停止/起動機能について

クラスターの停止/起動機能を使用する場合、次の条件が適用されます:

  • この機能は、仮想マシン スケール セットでサポートされているクラスターでのみサポートされています。
  • ノード自動プロビジョニング (NAP) 機能を使用するクラスターを停止することはできません。
  • 停止した AKS クラスターのクラスターの状態は、最大 12 か月間保持されます。 クラスターが 12 か月間を超えて停止している場合、状態を復旧することはできません。 詳細については、「AKS のサポート ポリシー」をご覧ください。
  • 停止した AKS クラスターでは、操作の開始か削除のみ実行できます。 スケーリングやアップグレードなど他の操作を実行するには、まずクラスターを起動する必要があります。
  • プライベート クラスターにリンクされた PrivateEndpoint をプロビジョニングした場合は、停止した AKS クラスターを起動する際に、PrivateEndpoint を削除して再作成する必要があります。
  • 停止プロセスはすべてのノードをドレインするため、スタンドアロン ポッド (Deployment、StatefulSet、DaemonSet、Job などによって管理されていないポッド) はすべて削除されます。
  • クラスター バックアップを開始する場合、次の動作が想定されます:
    • API サーバーの IP アドレスは異なっている場合があります。
    • クラスターの自動スケーリングを使用している場合は、クラスターを起動する際、現在のノード数が、設定した最小値と最大値の範囲に収まらない場合があります。 クラスターは、ワークロードを実行するために必要なノード数で開始します。これは、オートスケーラー設定の影響を受けません。 クラスターでスケーリング操作が実行されるときに、この最小値と最大値は現在のノード数に反映され、やがて、クラスターのノード数は設定した範囲内に収まります。その後、クラスターを停止するまでこの範囲内にあります。

AKS クラスターを停止する

  1. az aks stop コマンドを使用して、ノードとコントロール プレーンも含めて、実行中の AKS クラスターを停止します。 次の例では、myAKSCluster という名前のクラスターを停止します。

    az aks stop --name myAKSCluster --resource-group myResourceGroup
    
  2. クラスターが停止したことを確認するために az aks show コマンドを使用して、powerStateStopped と表示されていることを確認します。

    az aks show --name myAKSCluster --resource-group myResourceGroup
    

    出力は、次の要約された出力例のようになります:

    {
    [...]
      "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2",
      "powerState":{
        "code":"Stopped"
      },
      "privateFqdn": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
    [...]
    }
    

    provisioningStateStopping と表示されている場合、クラスターはまだ完全に停止していません。

重要

ポッド中断バジェットを使用している場合、ドレイン プロセスの完了に時間がかかるため、停止操作に時間がかかることがあります。

AKS クラスターを起動する

注意事項

クラスターの停止と起動を繰り返さないでください。 エラーが発生する場合があります。 クラスターが停止したら、少なくとも 15 - 30 分待ってから、もう一度起動する必要があります。

  1. az aks start コマンドを使用して、停止した AKS クラスターを起動します。 クラスターは、以前のコントロール プレーンの状態とエージェント ノード数で再起動されます。 次の例では、myAKSCluster という名前のクラスターを起動します。

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. クラスターが起動したことを確認するために az aks show コマンドを使用して、powerStateRunning と表示されていることを確認します。

    az aks show --name myAKSCluster --resource-group myResourceGroup
    

    出力は、次の要約された出力例のようになります:

    {
    [...]
      "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2",
      "powerState":{
        "code":"Running"
     },
     "privateFqdn": null,
     "provisioningState": "Succeeded",
     "resourceGroup": "myResourceGroup",
    [...]
    }
    

    provisioningStateStarting と表示されている場合は、クラスターがまだ完全に起動していません。

次の手順