Azure Kubernetes Service (AKS)のクラスターやノードを起動停止してみた
Azure Kubernetes Service (AKS)でクラスタやノードの起動、停止、状態確認のコマンド(PowerShell、Azure CLI)について確認してみました。
Azure Kubernetes Service (AKS)クラスター起動停止
Azure Kubernetes Service (AKS) クラスターの停止と起動を参考に確認を進めます。
AKSクラスター起動、停止
AKSのクラスター起動、停止です。MS社のサイトにも記載がありますが、クラスターの起動停止に対応しているのは仮想マシンスケールセット(Virtual Machine Scale Sets) で構成されている場合のみです。2021年9月上旬にAzure Portalでも操作できるようになりましたので操作手順を追加しました。
AKSクラスター起動停止 | ||
AKSクラスター起動(PowerShell) |
|
|
AKSクラスター起動(Azure CLI) |
|
|
AKSクラスター起動(Azure Portal) | ||
AKSクラスター停止(PowerShell) |
|
|
AKSクラスター停止(Azure CLI) |
|
|
AKSクラスター停止(Azure Portal) |
The command requires the extension aks-preview. Do you want to install it now? The command will continue to run after the extension is installed. (Y/n):と表示されるケースがありますがこの場合はYを選択してインストールして進めます。
またAzure PowerShellのバージョンが低い場合はコマンドがないと表示されるケースがあります。Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force で再インストールして下さい。詳細はこちら。
AKSクラスター設定状態確認
AKSのクラスター設定状態確認になります。Azure PowerShellで出力される内容とAzure CLIで出力される内容が異なります。PowerStateはAzure CLIでしか表示されなかったりします。
AKSクラスター設定状態確認 | ||||||||
AKSクラスター設定確認(PowerShell) |
※fcですべての情報を表示しています。fcの詳細はこちら。 |
|||||||
AKSクラスター設定状態確認(Azure CLI) |
|
|||||||
AKSのクラスターが停止している場合はノードが存在しない為に、kubectl get nodeコマンドを実行してもUnable to connect to the server:・・・(もしくはNo resources found)となります。 |
|
AKSクラスター起動停止を行うとノード名が変わる
AKSのクラスター起動、停止を行うとノード名が変わります。kubectl get nodeコマンドで確認すると末尾がカウントアップされている事が分かります。kubectlコマンドについてはkubectlチートシートを参照ください。
AKSノード確認 | ||
【クラスター停止前】 ノード状態確認(kubectl get node) |
|
|
【クラスター再起動後】 ノード状態確認(kubectl get node) |
|
Azure Kubernetes Service (AKS)ノード起動停止
AKSのノード起動停止についてはJapan Azure IaaS Core Support Blogに記載があります。今回は仮想マシンスケールセットで構成した場合について記載しています。
AKSノード起動
AKSのノード停止(再起動含む)については、kubectlコマンドでノードを切り離してから実施します。
AKSノード停止 | ||
AKSノード切り離し作業前にkubectl drainコマンドでノード退避します。Ready,SchedulingDisabledになっている事を確認します。 |
|
|
AKSノード停止(Azure PowerShell) |
※instance idは末尾の数字(vmss00000X)になります。なお9を超えるとabcdとカウントアップされます。不明な場合はAzure Portalでスケール セット インスタンスのプロパティを確認します。名前に数字の記載がありこれがinstance idになります。Get-AzVmssVM コマンドでも確認可能です。 |
|
AKSノード停止(Azure CLI) |
|
|
kubectl get nodeコマンドでノード状態を確認するとNotReadyになっている事が確認出来ます。 |
|
Get-AzVmssVM -ResourceGroupName “リソースグループ名" -VMScaleSetName “仮想マシンのスケール セット名" -InstanceId id数 -InstanceViewコマンドに表示されるステータスでも以下のように電源状況が確認出来ます。
Statuses[1] :
Code : PowerState/running
Level : Info
DisplayStatus : VM running
AKSノード起動
AKSのノード起動後、kubectlコマンドでノードを切り戻しを実施します。
AKSノード起動 | ||
AKSノード起動(Azure PowerShell) |
|
|
AKSノード停止(Azure CLI) |
|
|
AKSノード起動後に確認するとReadyになっている事は確認出来ました。 |
|
|
AKSノード起動後にkubectl uncordon(Cordonの状態を解除)コマンドを実行し復帰させます。 ※Cordonは指定したNodeにスケジュールさせないようにするための処理 |
|