VMware NSX Advanced Load Balancer on Azure その1 ~コントローラの展開~

はじめに

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.

docs.vmware.com

元々 NSX ALB は VMware 社が旧 Avi Networks 社から買収した製品です。Avi Networks のドキュメントにて同様の説明文に ARM テンプレートのリンクがありましたのでダウンロードしました。

avinetworks.com

github.com

この 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台同時展開は可能
  • クラスタ構成は自動で行われず、手動で実施する必要がある

次回はコントローラの初期設定、クラスタ構成について触れたいと思います。

執筆担当者プロフィール
菅原 丈晴

菅原 丈晴(日本ビジネスシステムズ株式会社)

ネットワーク機器の設計/構築エンジニア。最近は仮想基盤・クラウドを触っています。

担当記事一覧