Azure kubernetes Serviceのノードプールに仮想マシンスケールセットを使ってみる - 準備編 -
2019-08-22
azblob://2022/11/11/eyecatch/2019-08-22-azure-kubernetes-service-virtual-machine-scale-set-1-000.jpg

こんにちは。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サービスのノードプールに仮想マシンスケールセットを使っていこうと思います。それでは。