こんにちは。Azure kubernetes Service(AKS)と戯れてる石川です。8月22日時点ではプレビュー版ですがAKSのノードプールに仮想マシンスケールセット(Virtual Machine Scale Sets / VMSS)を使うことができるので試してみます。
仮想マシンスケールセット is ……?
そもそも仮想マシンスケールセットとは何なのでしょう……
Microsoft公式サイトによると
負荷分散が行われる同一の VM のグループを作成して管理できます。 需要または定義されたスケジュールに応じて、VM インスタンスの数を自動的に増減させることができます。 スケール セットは、アプリケーションの高可用性を実現します。 - Azure 仮想マシンスケールセットの概要
簡単にまとめると
- 定義に応じてVM数を自動で増減
- 個々のVMへの負荷を自動で分散してくれる
- 可用性が高い
という便利なやつみたいですね。
これをkubernetesのノードプールとして使うとノードのオートスケールができるようになるようです。すごそう。
触ってみる - 準備編 -
いざ触ってみようとなってもこの機能はプレビュー版なので機能を使う前準備をしなければいけません。デフォルトでは以下のようグレーアウトしているので有効化してあげましょう。
Azure CLIで以下のコマンドを叩いてプレビュー機能を有効化しましょう。
az feature register --name VMSSPreview --namespace Microsoft.ContainerService
有効化されるまで少し時間がかかります。
Azure CLIで以下のコマンドを叩いて確認が可能です。
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/VMSSPreview')].{Name:name,State:properties.state}"
上記コマンドを叩くと以下の結果が返ってきます。まだRegisteringなので使えないですね……。待ちましょう。
Name State
-------------------------------------- -----------
Microsoft.ContainerService/VMSSPreview Registering
待ちました。
10分くらい経ったでしょうか……もう一度同じコマンドを叩いて確認しましょう。
Name State
-------------------------------------- ----------
Microsoft.ContainerService/VMSSPreview Registered
Registeredになってるので無事使えるようになりました。
Azure CLIのリソースプロバイダーにVMSSを対応させるために次のコマンドを叩いて終了です。
az provider register --namespace Microsoft.ContainerService
終わりに
プレビュー機能の有効化は他の機能でも同じような手順だと思うので応用が利くかもしれないですね。次回は実際にkubernetesサービスのノードプールに仮想マシンスケールセットを使っていこうと思います。それでは。