※この投稿は古いバージョンの NSX ALB 利用しています。
少し新しいバージョン(Ver. 22.1.2)を利用した下記をどうぞ。
NSX Advanced Load Balancer(Avi)の検証環境を構築してみます。
ドキュメントでは、まずこのあたりが参考になります。ただし、バージョン 20.1.4 → 20.1.5 で、初回 Avi UI アクセス時のウィザードが大きく変更されました。
今回の内容です。
- 今回の環境
- 前提環境の準備
- Avi Controller VM のデプロイ
- Avi Vantage Controller(Avi UI)での設定
- 検証用 Web サーバの用意
- Virtual Service の作成(Avi Service Engine の展開)
今回の環境
今回のラボでの使用ソフトウェアと、ラボ構成のイメージ図です。
使用するソフトウェア
このラボで利用したソフトウェアです。NSX ALB は、20.1.4 → 20.1.5 で初回 Avi UI アクセス時のウィザードが大きく変更されました。vCenter / ESXi については、別バージョンでも手順にあまり影響しないはずです。
- NSX ALB 20.1.5(Avi Vantage Version: 20.1.5)
- vCenter Server 7.0 U2
- ESXi 7.0 U1
NSX ALB は、Controller VM にデフォルトで投入されている Eval ライセンス(30日間) で、Enterprise Edition として利用できます。
ラボの構成イメージ
NSX ALB 関連の VM は、次の2つです。
- Avi Controller: Avi UI、コントロール プレーンを担当する VM。構築では、OVA を手動デプロイする。Avi Controller Cluster として冗長構成可能だが、今回は1台のみ。
- Avi Service Engine: ロードバランサのデータ プレーンを担当する VM。Virtual Service を作成すると、必要に応じて自動デプロイされる。
今回のラボ構成のイメージ図です。
なお、IP Address Pool と DHCP を利用しているため、実際には構築のたびに若干アドレスが変わります。
このラボでは限られたリソースで Virtual Service 作成 / 削除などの入門的な機能を動作確認したいので、リソースを節約した構成にしています。
- NSX ALB のコントローラ(Avi Controller)は非冗長構成です。
- Avi Controller は、vCPU / メモリ割り当てを削減しています。(非サポートのはず)
前提環境の準備
物理ネットワーク
以下のネットワークを用意しておきます。それぞれ、vSphere や NSX ALB とは関係しない外部ルータでルーティングされています。
- 管理ネットワーク: 192.168.10.0/24
- Avi SE の VIP ネットワーク: 192.168.61.0/24
- ロードバランス先のサーバを接続するネットワーク: 192.168.62.0/24
また、NSX ALB とは直接関係しませんが、ロードバランス先として利用する検証用 Web サーバのために、DHCP サーバを用意しています。
vSphere ネットワーク
事前にポートグループを作成しておきます。今回は分散ポートグループです。
- 管理ネットワーク: dvpg-0010-mgmt
- Avi SE の VIP ネットワーク: dvpg-0061-avi-01
- ロードバランス先のサーバを接続するネットワーク: dvpg-0062-avi-02
Avi Controller VM のデプロイ
Avi Controller の OVA ファイルを入手して、手動デプロイします。
OVA のダウンロード
Avi Controller の OVA は、下記のサイトからダウンロードします。VMware Customer Connect(旧 My VMware)へのログインが必要です。
AVI Vantage 20.1.5 にある、VMware → Controller OVA からダウンロードします。今回利用した OVA のファイル名は下記です。
- controller-20.1.5-9148.ova
OVA のデプロイ
Avi Controller のデプロイ先は、NSX ALB でロードバランサ機能を利用する vCenter 配下でも、それ以外の vCenter 配下でも構いません。このラボでは、NSX ALB を利用する vCenter 配下にデプロイします。
Avi Controller は、一般的な OVA ファイルと同様に、vSphere Client の「OVF テンプレートのデプロイ」から、ウィザードにしたがってデプロイします。
いくつかポイントを絞って紹介します。
ストレージ フォーマットは、シン プロビジョニングで問題ありませんが、50GB くらいは見込んでおくとよいと思います。ちなみにシック プロビジョニングの場合は、128GB (+ VM に割り当てたメモリ容量)が必要になります。
ネットワーク選択では、事前に作成しておいた、管理ネットワークのポートグループを指定します。
Avi Controller のならではの OVF 設定は下記のみ(ほぼネットワーク設定のみ)です。
- Management Interface IP Address
- Management Interface Subnet Mask
- Default Gateway
- Sysadmin login authentication key(今回は空欄)
Avi Controller VM の設定調整(ラボむけ)
デフォルトでは、Avi Controller VM には 8 vCPU / 24 GB メモリが割り当てられます。
うちのラボ環境のハードウェア リソース都合上、下記のようにリソース 割り当てを削減してあります。
- vCPU: 2
- メモリ: 12GB
Avi Controller VM をパワーオンしてしばらく待つと、Web ブラウザから Avi UI にアクセスできるようになります。
ちなみに Web ブラウザでのアクセスが早すぎると、「Controller is not yet ready. ~」や、「502 Bad Gateway」のようなエラー メッセージが表示されるので再び待ちます。
また、この時点での証明書エラーは無視します。
Avi Vantage Controller(Avi UI)での設定
デプロイした Avi Controller VM で起動される Avi UI に、Web ブラウザでアクセスして初期設定します。
Avi UI での初期設定
Avi UI への初回アクセス時に、まず admin ユーザのパスワードを設定します。「CREATE ACCOUNT」をクリックすると、そのまま Welcome admin というウィザードが開始されます。
System Settings では、次のパラメータを入力します。
- Passphrase: configuration エクスポートと定期バックアップのパスフレーズを設定する。
- DNS Resolver(s): Avi Controller が参照する DNS サーバ。カンマ(,)区切り。
- DNS Search Domain
Email/SMTP は None にしています。
Multi-Tenant では、次のようにパラメータを選択しています。今回は、マルチテナントとしては利用しない想定です。
- IP Route Domain: Shared IP route domain across tenants
- Service Engine are managed within the: Provider (Shared across tenants)
選択したら、「SAVE」をクリックします。
これで Avi UI が表示されます。
Default-Cloud の設定
Avi Controller を vCenter Server と連携させるため、「Default-Cloud」の設定を変更します。
「Infrastructure」 →「Clouds」→「Default-Cloud」で、Edit をクリックします。
「Select Cloud」で、「VMware vCenter/vSphere ESX」を選択して、「Next」で進みます。
「Infrastructure」では次のパラメータを入力して Next で進みます。
- Username: Avi Controller が vCenter にログインするためのユーザ名を入力。
- Pasword: パスワードを入力。
- vCenter Address: vCenter の FQDN または IP アドレスを入力。
- Access Permission: 「Write」を選択。
「Data Center」では、Avi SE をデプロイ先になる、vCenter インベントリのデータセンタを選択して「Next」で進みます。
「Network」では、Avi SE をデプロイするネットワークのパラメータを入力して、「Save」で保存します。
- Management Network: 管理ネットワークのポート グループを選択。
- IP Subnet: 管理ネットワークのネットワーク アドレスを入力。例では 192.168.10.0/24
- Add Static IP Address Pool: Avi SE に設定される、管理ネットワークの IP アドレス プールを追加。例では 192.168.10.62-192.168.10.68
- Default Gateway: 管理ネットワークのデフォルト ゲートウェイ。
これで、Default-Cloud に設定が保存されます。
Service Engine Group の設定変更
デフォルトの Avi SE グループである、「Default-Group」で、Avi SE のデプロイ先になるクラスタとデータストアを設定しておきます。
「Infrastructure」 →「Service Engine Group」→「Default-Group」で、Edit をクリックします。
「Advanced」タブを開き、「Cluster」で vSphere クラスタ、「Data Store」 でデータストアを選択して、「Save」で保存します。
Avi SE の接続されるネットワークの準備
このあとで Virtual Service を作成するための準備として、ネットワークとポートグループを紐づける設定をしておきます。
事前に vSphere 側で作成しておいたポートグループに対して、Avi Controller 側でもネットワーク設定が必要です。このラボでは、次の3つのポートグループを利用しています。
- dvpg-0010-mgmt: Default-Cloud での設定が反映されるので、ここでは作業不要です。
- dvpg-0061-avi-01: Avi SE に設定する VIP と同じネットワークの、IP プールを追加しておきます。この IP アドレスは VIP と通信するために Avi SE に設定されますが、VIP を手動で設定する際には、このプール外から採番することになります。
- dvpg-0062-avi-02: Pool メンバーが接続されるネットワークの IP プールを追加しておきます。この IP も Avi SE に設定され、Pool メンバーとの通信で使用されます。
Avi UI での(Avi Controller の)ネットワーク設定は、「Infrastructure」 →「Networks」で実施します。
dvpg-0010-mgmt は、Default-Cloud での設定が反映されるので、ここでは作業不要です。ちなみに下記のスクリーンショットは、Avi SE が 2台デプロイされた後の状態なので、IP アドレスが 2つ消費され「5/7」と表示されています。
dvpg-0061-avi-01 ポート グループのネットワークを構成します。
ポート グループ数が多いため、検索で表示対象を絞ったうえで dvpg-0061-avi-01 の Edit をクリックします。
「Add Subnet」をクリックします。
「IP Subnet」でネットワーク アドレス(例では 192.168.61.0/24)を入力して、「Add Static IP Address Pool」をクリックします。
IP Address Pool の範囲(例では 192.168.61.201-192.168.61.219)を入力し、「Save」で保存します。
IP Address Pool が保存されました。もう一度「Save」をクリックして、Edit 画面を閉じます。
ネットワークの設定が保存されました。
同様に、Pool メンバー サーバが接続される、dvpg-0062-avi-02 ポート グループのネットワークも構成しておきます。
検証用 Web サーバの用意
Virtual Service を作成する準備として、ロードバランス先となる Web サーバを何台か用意しておきます。
テスト用の Web サーバは、dvpg-0062-avi-02 ポートグループに接続してあります。
Web サーバの IP アドレスは、下記のようになっています。
複数台あった方が好ましいですが、とりあえず Virtual Service のアクセス先を用意するということであれば、1台でもよいと思います。
Virtual Service の作成(Avi Service Engine の展開)
Virtual Service を作成してみます。
次のパラメータを入力します。
- Name: Virtual Service の名前。
- FQDN or IPv4 Address: Virtual Service に設定する VIP。ここで入力する VIP は、dvpg-0061-avi-01 ポート グループに設定した「Static IP Address Pool」の範囲外のもの(例では 192.168.61.101)を指定します。
パラメータを入力したら、今回は IP アドレスの入力ではなく、「Select Servers by Network」からサーバを選択してみます。
「Select Servers by Network」で(検索で表示対象を絞って)、サーバが接続されているネットワーク(例では dvpg-0062-avi-02)を選択します。
ポート グループに接続されている VM の一覧が表示されるので、Pool に含める対象を選択して、「ADD SERVERS」をクリックします。
サーバが選択されたことを確認して、「Save」をクリックします。ちなみに、IP Address は自動入力されたものです。
Virtual Service が作成されました。
最初の Virtual Service 作成では、まだ Avi SE が存在しないため自動的に OVF がデプロイされます。
Avi SE は、デフォルトで 2台デプロイされます。ネットワーク アダプタ 1 は、必ず管理ネットワークのポート グループに接続され、IP Address Pool から IP アドレスが付与されます。
Avi SE には ネットワーク アダプタが10本作成されますが、2番目以降のネットワーク アダプタは、Virtual Service を作成するたびにポート グループが自動変更されます。ちなみに未使用のネットワーク アダプタは「Avi Internal」ポート グループに接続されます。
Avi SE の状態は、Avi UI の「Infrastructure」→「Service Engine」でも確認できます。
Avi SE のデプロイが完了すると、Virtual Service の VIP にアクセスできるようになるはずです。
以上、NSX ALB の検証環境を構築してみる話でした。