vm.gowatana.jp

NEOにほんごVMware(仮)

NSX ALB(Avi)の検証環境を構築してみる。(20.1.5)

※この投稿は古いバージョンの NSX ALB 利用しています。
少し新しいバージョン(Ver. 22.1.2)を利用した下記をどうぞ。

 

NSX Advanced Load Balancer(Avi)の検証環境を構築してみます。

 

ドキュメントでは、まずこのあたりが参考になります。ただし、バージョン 20.1.4 → 20.1.5 で、初回 Avi UI アクセス時のウィザードが大きく変更されました。

 

今回の内容です。

 

今回の環境

今回のラボでの使用ソフトウェアと、ラボ構成のイメージ図です。

 

使用するソフトウェア

このラボで利用したソフトウェアです。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 を利用しているため、実際には構築のたびに若干アドレスが変わります。

f:id:gowatana:20210613214029p:plain

 

このラボでは限られたリソースで 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 に割り当てたメモリ容量)が必要になります。

f:id:gowatana:20210613113010p:plain

 

ネットワーク選択では、事前に作成しておいた、管理ネットワークのポートグループを指定します。

f:id:gowatana:20210613113540p:plain

 

Avi Controller のならではの OVF 設定は下記のみ(ほぼネットワーク設定のみ)です。

  • Management Interface IP Address
  • Management Interface Subnet Mask
  • Default Gateway
  • Sysadmin login authentication key(今回は空欄)

f:id:gowatana:20210613113629p:plain

 

Avi Controller VM の設定調整(ラボむけ)

デフォルトでは、Avi Controller VM には 8 vCPU / 24 GB メモリが割り当てられます。

f:id:gowatana:20210613114140p:plain

 

うちのラボ環境のハードウェア リソース都合上、下記のようにリソース 割り当てを削減してあります。

  • vCPU: 2
  • メモリ: 12GB

f:id:gowatana:20210613114446p:plain

 

Avi Controller VM をパワーオンしてしばらく待つと、Web ブラウザから Avi UI にアクセスできるようになります。

ちなみに Web ブラウザでのアクセスが早すぎると、「Controller is not yet ready. ~」や、「502 Bad Gateway」のようなエラー メッセージが表示されるので再び待ちます。

また、この時点での証明書エラーは無視します。

f:id:gowatana:20210613114728p:plain

 

Avi Vantage Controller(Avi UI)での設定

デプロイした Avi Controller VM で起動される Avi UI に、Web ブラウザでアクセスして初期設定します。

 

Avi UI での初期設定

Avi UI への初回アクセス時に、まず admin ユーザのパスワードを設定します。「CREATE ACCOUNT」をクリックすると、そのまま Welcome admin というウィザードが開始されます。

f:id:gowatana:20210613115203p:plain

 

System Settings では、次のパラメータを入力します。

  • Passphrase: configuration エクスポートと定期バックアップのパスフレーズを設定する。
  • DNS Resolver(s): Avi Controller が参照する DNS サーバ。カンマ(,)区切り。
  • DNS Search Domain

f:id:gowatana:20210613115727p:plain

 

Email/SMTP は None にしています。

f:id:gowatana:20210613120037p:plain

 

Multi-Tenant では、次のようにパラメータを選択しています。今回は、マルチテナントとしては利用しない想定です。

  • IP Route Domain: Shared IP route domain across tenants
  • Service Engine are managed within the: Provider (Shared across tenants)

 

選択したら、「SAVE」をクリックします。

f:id:gowatana:20210613120230p:plain

 

これで Avi UI が表示されます。

f:id:gowatana:20210613120854p:plain

 

Default-Cloud の設定

 Avi Controller を vCenter Server と連携させるため、「Default-Cloud」の設定を変更します。

 

「Infrastructure」 →「Clouds」→「Default-Cloud」で、Edit をクリックします。

f:id:gowatana:20210613170704p:plain

 

「Select Cloud」で、「VMware vCenter/vSphere ESX」を選択して、「Next」で進みます。

f:id:gowatana:20210613171452p:plain

 

「Infrastructure」では次のパラメータを入力して Next で進みます。

  • Username: Avi Controller が vCenter にログインするためのユーザ名を入力。
  • Pasword: パスワードを入力。
  • vCenter Address: vCenter の FQDN または IP アドレスを入力。
  • Access Permission: 「Write」を選択。

f:id:gowatana:20210613172040p:plain

 

「Data Center」では、Avi SE をデプロイ先になる、vCenter インベントリのデータセンタを選択して「Next」で進みます。

f:id:gowatana:20210613172237p:plain

 

「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: 管理ネットワークのデフォルト ゲートウェイ。

f:id:gowatana:20210613174223p:plain

 

これで、Default-Cloud に設定が保存されます。

f:id:gowatana:20210613173020p:plain

 

Service Engine Group の設定変更

デフォルトの Avi SE グループである、「Default-Group」で、Avi SE のデプロイ先になるクラスタとデータストアを設定しておきます。

 

「Infrastructure」 →「Service Engine Group」→「Default-Group」で、Edit をクリックします。

f:id:gowatana:20210613173250p:plain

 

「Advanced」タブを開き、「Cluster」で vSphere クラスタ、「Data Store」 でデータストアを選択して、「Save」で保存します。

f:id:gowatana:20210613173631p:plain

 

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」と表示されています。

f:id:gowatana:20210613181513p:plain


dvpg-0061-avi-01 ポート グループのネットワークを構成します。

ポート グループ数が多いため、検索で表示対象を絞ったうえで dvpg-0061-avi-01 の Edit をクリックします。

f:id:gowatana:20210613182013p:plain

 

「Add Subnet」をクリックします。

f:id:gowatana:20210613182707p:plain

 

「IP Subnet」でネットワーク アドレス(例では 192.168.61.0/24)を入力して、「Add Static IP Address Pool」をクリックします。

f:id:gowatana:20210613182718p:plain

 

IP Address Pool の範囲(例では 192.168.61.201-192.168.61.219)を入力し、「Save」で保存します。

f:id:gowatana:20210613182730p:plain

 

IP Address Pool が保存されました。もう一度「Save」をクリックして、Edit 画面を閉じます。

f:id:gowatana:20210613182742p:plain

 

ネットワークの設定が保存されました。

f:id:gowatana:20210613182753p:plain

 

同様に、Pool メンバー サーバが接続される、dvpg-0062-avi-02 ポート グループのネットワークも構成しておきます。

f:id:gowatana:20210613183110p:plain

 

検証用 Web サーバの用意

Virtual Service を作成する準備として、ロードバランス先となる Web サーバを何台か用意しておきます。

テスト用の Web サーバは、dvpg-0062-avi-02 ポートグループに接続してあります。

f:id:gowatana:20210613184137p:plain

 

Web サーバの IP アドレスは、下記のようになっています。

複数台あった方が好ましいですが、とりあえず Virtual Service のアクセス先を用意するということであれば、1台でもよいと思います。

f:id:gowatana:20210613184150p:plain

 

Virtual Service の作成(Avi Service Engine の展開)

Virtual Service を作成してみます。

f:id:gowatana:20210613185604p:plain

 

次のパラメータを入力します。

  • 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」からサーバを選択してみます。

f:id:gowatana:20210613185656p:plain

 

「Select Servers by Network」で(検索で表示対象を絞って)、サーバが接続されているネットワーク(例では dvpg-0062-avi-02)を選択します。

f:id:gowatana:20210613185839p:plain

 

ポート グループに接続されている VM の一覧が表示されるので、Pool に含める対象を選択して、「ADD SERVERS」をクリックします。

f:id:gowatana:20210613185854p:plain

 

サーバが選択されたことを確認して、「Save」をクリックします。ちなみに、IP Address は自動入力されたものです。

f:id:gowatana:20210613185934p:plain

 

Virtual Service が作成されました。

f:id:gowatana:20210613190103p:plain

 

最初の Virtual Service 作成では、まだ Avi SE が存在しないため自動的に OVF がデプロイされます。

f:id:gowatana:20210613190407p:plain

 

Avi SE は、デフォルトで 2台デプロイされます。ネットワーク アダプタ 1 は、必ず管理ネットワークのポート グループに接続され、IP Address Pool から IP アドレスが付与されます。

f:id:gowatana:20210613190733p:plain

 

Avi SE には ネットワーク アダプタが10本作成されますが、2番目以降のネットワーク アダプタは、Virtual Service を作成するたびにポート グループが自動変更されます。ちなみに未使用のネットワーク アダプタは「Avi Internal」ポート グループに接続されます。

f:id:gowatana:20210613191233p:plain

 

Avi SE の状態は、Avi UI の「Infrastructure」→「Service Engine」でも確認できます。

f:id:gowatana:20210613191456p:plain

 

Avi SE のデプロイが完了すると、Virtual Service の VIP にアクセスできるようになるはずです。

f:id:gowatana:20210613191342p:plain

 

以上、NSX ALB の検証環境を構築してみる話でした。