Azure Kubernetes Service (AKS) クラスターの停止と起動
Azure Kubernetes Service (AKS) ワークロードを継続的に実行する必要がない場合があります。 たとえば、営業時間中にのみ使用する開発クラスターがあるとします。 これは、クラスターがアイドル状態で、システム コンポーネント以外は何も実行されていない場合があることを意味します。 すべての User
ノード プールを 0 にスケーリングすることで、クラスターの占有領域を削減できますが、クラスターの実行中にシステム コンポーネントを実行するには System
プールが必要です。
これらの期間中にコストをさらに最適化するために、クラスターをオフにするか停止することができます。 このアクションによって、コントロール プレーンとエージェント ノードが停止され、スタンドアロン ポッドを除くすべてのオブジェクトを保持しつつ、すべてのコンピューティング コストを節約できます。 クラスターの状態は次回の起動に備えて保存されるため、中断したところから再開できます。
注意事項
クラスターを停止すると、コントロール プレーンの割り当てが解除され、容量が解放されます。 容量の制約が発生しているリージョンでは、お客様は、停止したクラスターを起動できない可能性があります。 このため、ミッション クリティカルなワークロードを停止することはお勧めしません。
開始する前に
この記事は、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 クラスターを起動する
注意事項
クラスターの停止と起動を繰り返さないでください。 エラーが発生する場合があります。 クラスターが停止したら、少なくとも 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 のサポート ポリシーに関するページを参照してください。