はじめに
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)が必要との記載がありました。
マネージド ID について細かい説明は省きますが、マイクロソフト社の 参考URL を掲載します。
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 で引き続き管理アクセス可能な要件がある時は、本記事を参考に設定頂ければと思います。