Azure Kubernetes Service (AKS) クラスターの停止と起動
Azure Kubernetes Service (AKS) ワークロードを継続的に実行する必要がない場合があります。 たとえば、営業時間中にのみ使用する開発クラスターがあるとします。 これは、クラスターがアイドル状態で、システム コンポーネント以外は何も実行されていない場合があることを意味します。 すべての User
ノード プールを 0 にスケーリングすることで、クラスターの占有領域を削減できますが、クラスターの実行中にシステム コンポーネントを実行するには System
プールが必要です。
これらの期間中にコストをさらに最適化するために、クラスターをオフにするか停止することができます。 このアクションによって、コントロール プレーンとエージェント ノードが停止され、スタンドアロン ポッドを除くすべてのオブジェクトを保持しつつ、すべてのコンピューティング コストを節約できます。 クラスターの状態は次回の起動に備えて保存されるため、中断したところから再開できます。
注意事項
クラスターを停止すると、コントロール プレーンの割り当てが解除され、容量が解放されます。 容量の制約が発生しているリージョンでは、お客様は、停止したクラスターを起動できない可能性があります。 このため、ミッション クリティカルなワークロードを停止することはお勧めしません。
Note
AKS の開始操作では、名前と有効期間が同じスタンドアロン ポッドを除き、ETCD からすべてのオブジェクトが復元されます。 は、ポッドの有効期間が元の作成時刻から引き続き計算されることを意味します。 クラスターが停止状態であるかどうかに関係なく、この数は時間の経過と共に増加し続けます。
開始する前に
この記事は、AKS クラスターがすでに存在していることを前提としています。 AKS クラスターが必要な場合は、Azure CLI、Azure PowerShell、または Azure portal を使用して作成できます。
クラスターの停止/起動機能について
クラスターの停止/起動機能を使用する場合、次の条件が適用されます:
- この機能は、仮想マシン スケール セットでサポートされているクラスターでのみサポートされています。
- ノード自動プロビジョニング (NAP) 機能を使用するクラスターを停止することはできません。
- 停止した AKS クラスターのクラスターの状態は、最大 12 か月間保持されます。 クラスターが 12 か月間を超えて停止している場合、状態を復旧することはできません。 詳細については、「AKS のサポート ポリシー」をご覧ください。
- 停止した AKS クラスターでは、操作の開始か削除のみ実行できます。 スケーリングやアップグレードなど他の操作を実行するには、まずクラスターを起動する必要があります。
- プライベート クラスターにリンクされた PrivateEndpoint をプロビジョニングした場合は、停止した AKS クラスターを起動する際に、PrivateEndpoint を削除して再作成する必要があります。
- 停止プロセスはすべてのノードをドレインするため、スタンドアロン ポッド (Deployment、StatefulSet、DaemonSet、Job などによって管理されていないポッド) はすべて削除されます。
- クラスター バックアップを開始する場合、次の動作が想定されます:
- API サーバーの IP アドレスは異なっている場合があります。
- クラスターの自動スケーリングを使用している場合は、クラスターを起動する際、現在のノード数が、設定した最小値と最大値の範囲に収まらない場合があります。 クラスターは、ワークロードを実行するために必要なノード数で開始します。これは、オートスケーラー設定の影響を受けません。 クラスターでスケーリング操作が実行されるときに、この最小値と最大値は現在のノード数に反映され、やがて、クラスターのノード数は設定した範囲内に収まります。その後、クラスターを停止するまでこの範囲内にあります。
AKS クラスターを停止する
az aks stop
コマンドを使用して、ノードとコントロール プレーンも含めて、実行中の AKS クラスターを停止します。 次の例では、myAKSCluster という名前のクラスターを停止します。az aks stop --name myAKSCluster --resource-group myResourceGroup
クラスターが停止したことを確認するために
az aks show
コマンドを使用して、powerState
がStopped
と表示されていることを確認します。az aks show --name myAKSCluster --resource-group myResourceGroup
出力は、次の要約された出力例のようになります:
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Stopped" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }
provisioningState
にStopping
と表示されている場合、クラスターはまだ完全に停止していません。
重要
ポッド中断バジェットを使用している場合、ドレイン プロセスの完了に時間がかかるため、停止操作に時間がかかることがあります。
AKS クラスターを起動する
注意事項
AKS で起動/停止機能を使用した後は、AKS クラスターを再起動するまで 15 から 30 分待つ必要があります。 この待機期間が必要となるのは、関連するサービスが完全に停止するまでに数分かかるためです。 このプロセス中にクラスターを再起動しようとすると、シャットダウン プロセスが中断され、クラスターまたはそのワークロードに問題が発生する可能性があります。
az aks start
コマンドを使用して、停止した AKS クラスターを起動します。 クラスターは、以前のコントロール プレーンの状態とエージェント ノード数で再起動されます。 次の例では、myAKSCluster という名前のクラスターを起動します。az aks start --name myAKSCluster --resource-group myResourceGroup
クラスターが起動したことを確認するために
az aks show
コマンドを使用して、powerState
がRunning
と表示されていることを確認します。az aks show --name myAKSCluster --resource-group myResourceGroup
出力は、次の要約された出力例のようになります:
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Running" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }
provisioningState
にStarting
と表示されている場合は、クラスターがまだ完全に起動していません。
次の手順
User
プールを 0 にスケーリングする方法については、User
プールの 0 へのスケーリングに関する記事を参照してください。- スポット インスタンスを使用してコストを節約する方法については、スポット ノード プールを AKS に追加する方法に関するページを参照してください。
- AKS サポート ポリシーの詳細については、AKS のサポート ポリシーに関するページを参照してください。
Azure Kubernetes Service