VMware Cloud Foundation(VCF)5.2.1 の SDDC Manager からデプロイした Avi Load Balancer で、NSX オーバーレイ セグメントを利用した仮想サービス(Virtual Service)を作成してみます。
前回はこちら。
今回の内容です。
NSX VLAN セグメントのみを利用する場合は、こちらの投稿をどうぞ。
今回の環境
仮想サービス作成の準備として、Avi Controller での設定は前回の投稿で実施してあります。
0. プール メンバーの用意
アクセス確認用の Web サーバーは、下記のように作成しておきます。
それぞれの Web サーバーは、下記のように構築しておきます。
- Web サーバー #1
- 仮想マシン名 / ホスト名:demo-web-01
- 接続するポートグループ:seg-overlay-01
- IP アドレス/サブネット マスク:10.0.1.11/24
- index.html の内容:<h1>demo-web-01</h1>
- Web サーバー #2
- 仮想マシン名 / ホスト名:demo-web-02
- 接続するポートグループ:seg-overlay-01
- IP アドレス/サブネット マスク:10.0.1.12/24
- index.html の内容:<h1>demo-web-02</h1>
下記のように、2台の Web サーバー仮想マシンを用意しておきます。
1. サーバー プールの作成
Avi Load Balancer の Web UI で「アプリケーション」タブ →「プール」を開き、「プールの作成」をクリックします。
「プールの作成」画面が開くので、プールの名前を入力して「クラウドと VRF の設定」をクリックします。
- 名前:Web-Pool-01
クラウドと VRF コンテキストを選択して、「設定」をクリックします。
- クラウド:VCF-NSX-Cloud
- VRF コンテキスト:vcf-m01-t1(NSX Tier-1 ゲートウェイと同名)
「プールの作成」画面に戻るので、パラメータを入力して下にスクロールします。
- ロード バランシング アルゴリズム:Round Robin
※仮想サービスへのアクセス確認時にわかりやすいため。 - リアルタイム メトリックの有効化:ON
- Tier-1 論理ルーター: vcf-m01-t1
プール メンバーのサーバを追加するため、IP アドレス範囲を入力して「追加」をクリックします。
- サーバの選択基準:IP アドレス、範囲、または DNS 名
- アドレス範囲:10.0.1.11-10.0.1.12
2台のサーバーが追加されたことを確認し、さらに下にスクロールします。
- 10.0.1.11
- 10.0.1.12
「健全性モニター」の下にある「追加」をクリックし、モニターを選択して「保存」をクリックします。
- 名前:System-HTTP
これで、プールが作成されました。まだ仮想サービスに割り当てられていないので、健全性の表示は灰色のまま、次に進みます。
2. VIP の作成
仮想サービスに割り当てる VIP アドレスを設定します。
「アプリケーション」タブ →「VS VIPs」→「作成」をクリックします。
「VS VIP の作成」画面が表示されるので、名前を入力して「クラウドと VRF の設定」をクリックします。
- 名前:Web-VIP-01
クラウドと VRF コンテキストを選択して、「設定」をクリックします。
- クラウド:VCF-NSX-Cloud
- VRF コンテキスト:vcf-m01-t1
「VS VIP の作成」画面に戻るので、Tier-1 論理ルーター(Tier-1 ゲートウェイ)を選択します。
- Tier-1 論理ルーター:vcf-m01-t1
VIP の下にある「追加」をクリックします。
「VIP の編集」画面が開くので、パラメータを入力して「保存」をクリックします。
- プライベート IP:自動割り当て
- IP プロトコル:V4 のみ
- VIP アドレス割り当てネットワーク:seg-overlay-avi-data - 10.0.11.0/24
- IPv4 サブネット:10.0.11.0/24
「VIP の編集」画面に戻るので、VIP の配置ネットワークが選択されたことを確認して、「保存」をクリックします。
これで VIP のオブジェクトが作成され、IP アドレスが自動採番されました。
3. 仮想サービスの作成
「アプリケーション」タブ→「仮想サービス」を開き、「仮想サービスの作成」→「詳細設定」をクリックします。
クラウドを選択して、「次へ」をクリックします。
- クラウド:VCF-NSX-Cloud
VRF コンテキストを選択して、「次へ」をクリックします。
- vcf-m01-t1
仮想サービスの設定を入力して、「次へ」をクリックします。
- 名前:Web-VS-01
- VS VIP:Web-VIP-01
- プール:Web-Pool-01
「ポリシー」は、デフォルトのまま「次へ」をクリックします。
「分析」では、下記の設定を変更して「次へ」をクリックします。
- メトリックの更新頻度:0 分
- 重要でないログ間隔:0 min(0 分)
「詳細」では、サービス エンジン グループを選択して、「保存」をクリックします。
- サービス エンジン グループ:VCF-Avi-SE-Group
作成された仮想サービスの画面が開きます。サービス エンジン仮想マシン(2台)の自動デプロイが開始されるので、しばらく待ちます。
仮想サービス名(Web-VS-01)にマウス オーバーすると、詳細な情報が確認できます。この画面で、VIP アドレスや、サービス エンジン仮想マシンの名前などを確認できます。
「アプリケーション」タブ →「ダッシュボード」を開き、「表示 VS ツリー」を選択すると、オブジェクトの関係がツリー形式で表示できます。
vSphere Client で、サービス エンジン仮想マシンが自動デプロイされたことが確認できます。
4. 仮想サービスへのアクセス確認
Avi Load Balancer の Web UI で、「アプリケーション」タブ →「仮想サービス」を開くと、仮想サービスと、割り当てられた VIP アドレスが確認できます。
Web ブラウザから、仮想サービスの VIP アドレス(10.0.11.200)にアクセスすると、Web サーバー #1 / #2 のページが、ラウンド ロビンで順番に表示されるはずです。
仮想サービスのアクセス ログを確認するため、「アプリケーション」タブ →「仮想サービス」で、仮想サービス名のリンクを開きます。
- Web-VS-01
「ログ」タブを開き、「重要でないログ」をクリックして有効(緑)にすると、詳細なアクセス ログを確認できます。
下記のように、クライアント → 仮想サービス、仮想サービス → メンバー サーバーのアクセスが可視化されます。
Client IP: 192.168.70.2:51770
↓↑
Virtual Service IP: 10.0.11.200:80 ※Service Engine VM の VIP
Server Conn IP: 10.0.11.3:25280 ※Service Engine VM の vNIC IP
↓↑
Client IP: 10.0.11.1:80(Web サーバー #1)
今回の通信のイメージです。(実際のアクセス元は「作業用 Windows」です)
以上、VCF の Avi Load Balancer で NSX オーバーレイ セグメントを利用してみる話でした。
この投稿の Terraform 版はこちら。