VMware NSX Advanced Load Balancer on Azure その2 ~コントローラクラスタの構成~

はじめに

VMware NSX Advanced Load Balancer(以降、NSX ALBと表記)は VMware vSphere、AWS や Azure などのパブリッククラウド、コンテナ、Linux 等の複数環境へ展開な可能なロードバランサです。

前回記事では、ARM テンプレートでコントローラの展開を行いました。本記事では、Azure 上に 展開したコントローラの初期設定、クラスタ構成を実施します。

コントローラ初期設定

コントローラを起動して、コントローラの IP アドレスに HTTPS でアクセスします。adminユーザのパスワードを設定して[CREATE ACCOUNT]をクリックします。

バックアップパスワードを設定して[NEXT]をクリックします。

SMTP サーバ設定を行わない場合は[None]を選択して[NEXT]をクリックします。

テナントごとにルートドメインや Service Engine(データプレーンVM)管理を分ける場合、設定を行います。今回はそのままで[SAVE]をクリックします。

以上で初期設定は完了です。2台目、3台目のコントローラも同様の操作で初期設定を実施します。

コントローラクラスタ構成

コントローラクラスタとは

初期設定を終えたコントローラ3台にてクラスタ構成を組みます。クラスタを組むことで自動で設定同期を行い、1台のコントローラに障害発生しても管理機能を引き続き提供可能です。コントローラクラスタ IP を設定すると1台障害発生しても同じIPアドレスで UI や API アクセス可能です。

構成手順

1台目のコントローラ UI 画面で[Administration]-[Controller]-[Nodes]-[EDIT]をクリックします。

[Controller Cluster IP]にコントローラクラスタ IP を入力、[ADD]ボタンをクリックします。

[Node IP]に2台目のコントローラ IP を入力、[Password]にコントローラのパスワードを入力して[SAVE]をクリックします。

同様の手順で3台目のコントローラ IP を入力します。3台のコントローラ IP が正しいことを確認して[SAVE]をクリックします。

数分待つと、Controller Cluster の状態が[Processing]になります。

更に数分待つと、以下の画面になります。この間、UI の操作は行えません。

更に数分待つと、ログイン画面になります。ログインします。

1台目の状態が[Active]、2台目、3台目の状態が[Starting]になります。

更に数分待つと、すべてのコントローラの状態が[Active]になります。Role は設定を行った1台目のコントローラが[Leader]、2台目、3台目が[Follower]になります。
クラスタ構成は以上で完了です。

動作確認

コントローラクラスタ IP に HTTPS でアクセスを試みましたが、接続できません。

ドキュメントによると、Azure との統合には MSI 認証(マネージド ID)が必要との記載がありました。

docs.vmware.com

マネージド ID について細かい説明は省きますが、マイクロソフト社の 参考URL を掲載します。

learn.microsoft.com

3台のコントローラ仮想マシンにてマネージド IDを有効になっているか確認し、ロールを割り当てます。

マネージド ID にロールを割り当てる

Azure Portal にて1台目のコントローラ仮想マシンメニューから[ID]を選択します。マネージドIDは有効になっていました。ロール割り当てを行うため[Azure ロールの割り当て]をクリックします。

[ロールの割り当ての追加(プレビュー)]をクリックします。

[スコープ]をリソースグループ、コントローラが属している[サブスクリプション][リソースグループ]を選択、[役割]にて共同作成者を選択して[保存]をクリックします。

共同作成者ロールが割り当てられました。2台目と3台目のコントローラ仮想マシンのマネージド ID にも同様に共同作成者ロールを割り当てます。

コントローラクラスタの再構成

コントローラ UI 画面に戻って[EDIT]をクリックします。

何も変更せずに[SAVE]をクリックします。

再び動作確認

コントローラクラスタ IP に HTTPS で接続してログイン画面表示、ログインできました。

Azure Portal に戻ると、新たに Azure Load Balancer がデプロイされていました。[フロントエンド IP 構成]をクリックします。

フロントエンド IP としてコントローラクラスタ IPが設定されていました。赤枠をクリックします。 

インバウンド NAT 規則が設定されています。赤枠をクリックします。

ターゲット仮想マシンとして、Leader ノードである1台目のコントローラ仮想マシンが設定されていました。

上記設定により、フロントエンド IP アドレス(コントローラクラスタ IP)に到達した HTTPS パケットは Leader ノードのコントローラ仮想マシンへ転送されます。 

まとめ

  • コントローラ3台でクラスタ構成を組んで冗長構成をとれる
  • コントローラクラスタ IP へアクセス可能にするには下記構成が必要
    • コントローラ仮想マシンのマネージド ID に共同作成者ロールを割り当てる
  • Azure Load Balancer が自動デプロイされてコントローラクラスタ IP へアクセス可能となる

コントローラクラスタ IP は必須設定ではありませんが、1台障害発生した場合でも同じ IP で引き続き管理アクセス可能な要件がある時は、本記事を参考に設定頂ければと思います。

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

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

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

担当記事一覧