はじめに
VMware NSX Advanced Load Balancer(以降、NSX ALBと表記)は VMware vSphere、AWS や Azure などのパブリッククラウド、コンテナ、Linux 等の複数環境へ展開な可能なロードバランサです。本記事では、Azure 上に NSX ALB のコントロールプレーンであるコントローラを ARMテンプレートで展開してみました。
コントローラとは
NSX ALB は管理機能を司るコントロールプレーンとパケット転送を行うデータプレーンが分離されています。コントロールプレーンに障害が発生しても、ロードバランス機能には影響しません。
コントローラは1台でも構成可能ですが、本番環境では3台クラスタ構成がベストプラクティスです。
「コントローラクラスタ IP」を設定すると1台障害発生しても同じIPアドレスで UI や API アクセスを提供可能です。
コントローラ展開方法
コントローラは Azure Marketplace から展開可能です。
メーカのドキュメントには JSON 形式の ARM テンプレートでクラスタ構成可能な記載がありますが、テンプレートのリンク先がありません。
To create a Controller cluster,
If deploying from the Microsoft Azure Marketplace, use the JSON template found here.
元々 NSX ALB は VMware 社が旧 Avi Networks 社から買収した製品です。Avi Networks のドキュメントにて同様の説明文に ARM テンプレートのリンクがありましたのでダウンロードしました。
この ARM テンプレートの最終更新日付は2018年でした。果たしてそのまま利用できるのか気になります。Azure Marketplace から1台ごとに展開も可能ですが、今回は ARM テンプレートを利用した展開を試してみました。
ARM テンプレートのアップロード
Azure Portalの[テンプレート]にて ARM テンプレートをコピーして保存します。
任意の名前を入力します。
メーカのドキュメントからダウンロードした ARM テンプレートをペーストして追加します。
以上で保存完了です
SSH キーの作成
Azure Portalの[SSH キー]にて SSH キーを作成します。ARM テンプレートで展開する時の必須入力項目になりますので予め作成します。
公開キーが表示されます。公開キーを ARM テンプレート展開時に入力します。ローカルにダウンロードされる秘密キーは SSH 接続テストに利用します。
Avi SKU の確認
ARM テンプレートの[Avi SKU]のデフォルト値は[avi-vantage-adc-byol]です。この値を変更しなければエラーで展開できません。
Marketplace にて、展開する NSX ALB バージョンの SKU を確認します。今回は[nsx-alb-controller-2201]を展開します。
ARM テンプレートでカスタムデプロイ
Azure Portalの[テンプレート]にて先ほどコピーした ARM テンプレートを選択してデプロイを実行します。以下の操作はリソースグループに対して共同作成者ロールを割り当てられたユーザで実施しました。デフォルトのパラメータ値は以下の通りです。
今回は以下画面のようにパラメータを入力しました。
- サブスクリプション:展開先のサブスクリプションを選択
- リソースグループ:展開先のリソースグループを選択
- Vm Name:展開されるコントローラの名前
- Controller Count:展開するコントローラ数
- Custom Data:ユーザーカスタムデータ。任意の文字列(hoge)を入力
- Controller1_IP,Controller2_IP,Controller3_IP:コントローラのIPアドレス
- Ssh Key Data:作成した SSH 公開キーを入力
- Existing Vnet Name:展開先のVNet名
- Existing Vnet Resource Group:展開先VNetのリソースグループ
- Subnet Name:展開先のサブネット名
- Avi SKU:確認した SKU を入力
3台のコントローラを含む以下のリソースがデプロイされました。
確認
クラスタ設定確認
コントローラの IP アドレスに HTTPS でアクセスします。
初期設定を行います。詳細な手順については次回紹介予定です。
初期セットアップ後、クラスタ構成画面を確認しましたがノードは1台のみ、自動的に3台クラスタ構成とはならなかったです。
作成した SSH キーで SSH 接続テスト
SSH 接続を試みましたが、結果としてログインできませんでした。ドキュメントによると SSH キーを利用したログインはコントローラの「User Credentials」で設定する必要がありますが、未設定の状態でした。
Custom Data について
デプロイ時に指定したパラメータの[Custom Data]について、この値はどこで使われているか気になり調べました。コントローラのコンフィグバックアップを実行します。GUI で有効にする場合、最短10分毎の自動バックアップが可能です。
バックアップファイルはコントローラのローカルディレクトリに JSON 形式で保存されます。値として入力した「hoge」を grep してみましたがヒットしません。少なくともコントローラの設定値として「Custom Data」の値は利用されてないようです。
まとめ
- メーカが公開している ARM テンプレートでコントローラの3台同時展開は可能
- クラスタ構成は自動で行われず、手動で実施する必要がある
次回はコントローラの初期設定、クラスタ構成について触れたいと思います。