vSphere with Tanzu では、ロードバランサとして VMware NSX Advanced Load Balancer(NSX ALB、旧 Avi)が利用できます。そして、Tanzu Basic または Standard には、NSX ALB Essentials エディションが含まれています。
今回は、NSX ALB Essentials エディションを、vSphere with Tanzu のスーパーバイザー クラスタで利用するためにセットアップしてみます。
これは、以前の投稿(下記)のうち Part-03 の内容を置き換える手順になります。
- vSphere with Tanzu NSX-ALB(Avi)版ラボ環境構築。Part-01 事前準備編 - vm.gowatana.jp
- vSphere with Tanzu NSX-ALB(Avi)版ラボ環境構築。Part-02 NSX-ALB コントローラのデプロイ - vm.gowatana.jp
- vSphere with Tanzu NSX-ALB(Avi)版ラボ環境構築。Part-03 NSX-ALB コントローラでの準備 - vm.gowatana.jp
- vSphere with Tanzu NSX-ALB(Avi)版ラボ環境構築。Part-04 スーパーバイザー クラスタの構成 - vm.gowatana.jp
今回の内容です。
- 今回の環境
- Avi Controller の証明書の置き換え
- Avi Controller の Essentials エディションへの変更
- Avi Controller での設定
- ワークロード管理の有効化
- 参考情報
今回の環境
今回利用するソフトウェアです。
- NSX ALB 20.1.5(Avi Vantage Version: 20.1.5)
そして、すでに Avi Controller の OVA はデプロイしてあり、Avi UI で admin ユーザのパスワードを設定してある状態から手順を開始します。
OVA の入手とデプロイ、Avi UI へのアクセス手順については省略するので、下記の投稿も参考にしてください。
Avi Controller の証明書の置き換え
Avi Controller をデフォルトの証明書のままにしておくと、vSphere with Tanzu のワークロード管理の有効化の際に、Avi Controller と連携するコンテナ(AKO)で下記のようなエラーになってしまいます。すくなくとも、証明書には IP SAN(Subject Alternate Name)の設定が必要なようです。
E0616 23:15:48.030827 1 avisession.go:534] Client error for URI: login. Error: Post https://192.168.10.97:443/login: x509: cannot validate certificate for 192.168.10.97 because it doesn't contain any IP SANs
NSX ALB を Essentials エディションに切り替えると、NSX ALB 20.1.5 時点の Avi UI では、SSL 証明書が作成できなくなってしまいます。そこで、Enterprise Edition のモードの時点で Avi Controller の証明書を作成し、置き換えておきます。
証明書の作成と置き換えの手順は、以前の投稿(下記の「証明書の割り当て」)の手順と同様です。
ちなみに Avi CLI であれば、Essintials エディションでも SSL 証明書が作成できます。
Avi Controller の Essentials エディションへの変更
Avi CLI で NSX ALB のエディションを Essentials に変更します。Avi CLI へのアクセス方法や、具体的な手順は下記を参考にしてください。
ただし、Avi UI で証明書を作成した際に、Essentials エディション範囲外のパラメータが設定されてしまうようです。
Avi CLI の「show configuration audit tier essentials」コマンドでは、ocsp_config という設定がライセンス違反(License Violations)となり、下記のようなメッセージが表示されてしまいます。
Field SSLKeyAndCertificate.ocsp_config cannot be set in ESSENTIALS license tier.
そこで、Essentials に変更する前に、証明書の設定値 から、ocsp_config という設定を削除しておきます。例にある「cert-lab-avi-52」は、直前手順にある Avi UI で作成した証明書の名前です。
[admin:192-168-10-97]: > configure sslkeyandcertificate cert-lab-avi-52 [admin:192-168-10-97]: sslkeyandcertificate> no ocsp_config [admin:192-168-10-97]: sslkeyandcertificate> save
これで、Avi CLI の「configure systemconfiguration default_license_tier essentials」コマンドで Essentials エディションに切り替えられるようになります。
Avi Controller での設定
すでに実施した証明書の置き換えを除く、vSphere with Tanzu で利用するための設定をすすめます。
Default-Cloud の設定
vCenter Server との連携のため、Default-Cloud の設定を変更します。
Avi UI で「Infrastructure」→「Clouds」を開き、Default-Cloud の Edit ボタンをクリックします。
「Select Cloud」タブで、「VMware vCenter/vSphere ESXi」を選択し、「Next」で進みます。ちなみに、選択が vCenter と「No Orchestrator」の 2種類だけになっているのは、Essentials エディションに変更したためです。
「Infrastructure」タブでは、vCenter Server のログイン情報と、アドレスを入力し、「Next」で進みます。
「Data Center」タブでは、vCenter インベントリのデータセンタを指定して、「Next」で進みます。
「Network」タブでは、次のパラメータを入力して「Save」で保存します。
- Management Network: 管理ネットワークのポートグループ。
- Template Service Engine Group: Default-Group
- IP Subnet:管理ネットワークのネットワーク アドレス。
- Default Gateway
- Add Static IP Address Pool: Service Engine の管理ネットワーク アドレスとして払い出される IP プールの範囲を指定。
Service Engine Group の設定
NSX ALB のデータ プレーンにあたる、「Service Engine」をデプロイするための設定をします。
「Infrastructure」→「Service Engine Group」を開き、「Default-Group」の Edit ボタンをクリックします。
「Basic Settings」タブの「High Availability Mode」では、「Legacy HA」→「Active/Standby」を選択します。NSX ALB Essentials エディションでは、Active/Standby モードだけサポートされています。
「Advanced」タブで、Service Engine のデプロイ先となる、クラスタとデータストアを選択します。次のように選択してから「Save」をクリックします。
- 「Cluster」では、「Include」を選択して、vSphere クラスタを選択。
- 「Data Store」では、「Shared」を選択し、「Include」を選択して、あらかじめ ESXi ホストにマウントしておいた共有データストアを選択。
ネットワークの IP アドレス プール設定
「Infrastructure」→「Networks」を開いて、データ ネットワーク(LB VIP のネットワーク)の Edit ボタンをクリックします。
「Add Subnet」をクリックしてから、IP サブネットと、Static IP Address Pool の IP アドレス範囲を入力して、IP アドレス プールを追加するため、「Add Static IP Address Pool」をクリックします。
IP Address Pool が追加されたことを確認して、「Save」で保存します。
ルーティングの設定
スタティック ルートとして、データ(VIP)ネットワークのゲートウェイを、デフォルト ゲートウェイとして設定します。
「Infrastructure」→「Routing」→「Static Route」を開き、「CREATE」をクリックします。
次のパラメータを入力して「Save」で保存します。
- Gateway Subnet: 0.0.0.0/0
- Next Hop: データ(VIP)ネットワークのゲートウェイ。
Default Gateway が設定されました。
IPAM プロファイルの作成
データ ネットワーク
「Templates」→「Profiles」→「IPAM/DNS Profiles」を開き、「CREATE」→「IPAM Profile」をクリックします。
次のように、プロファイルのパラメータを入力していきます。
- Name: プロファイルの名前。例では profile-avi-ipam-01
- Type: 「Avi Vantage IPAM」を選択。
- Allocate IP in VRF: チェックを ON にする。
そして、「Add Usable Network」をクリックします。
IPAM を利用するネットワークを選択して、「Save」をクリックします。
- Cloud for Usable Network: Default-Cloud
- Usable Network: データ ネットワークを選択。例では DPortGroup-0024-LBData
ちなみに、Essentials エディションにすると DNS プロファイルは作成できなくなります。
Default-Cloud への IPAM プロファイルの割り当て
作成した IPAM プロファイルは、Default-Cloud に割り当てます。
「Infrastructure」→「Clouds」を開き、「Default-Cloud」の Edit ボタンをクリックします。そして、「Infrastructure」タブの「IPAM Profile」でプロファイルを選択してから「Save」で保存します。
ワークロード管理の有効化
この後は、vCenter Server の vSphere Client でのスーパーバイザー クラスタの構成(ワークロード管理の有効化)のウィザードで、この Avi Controller を指定します。
下記のような手順です。
参考情報
最後に、vSphere with Tanzu のスーパーバイザー クラスタを有効化し、Virtual Service が自動作成されたあとの様子を紹介しておこうと思います。
Essentials エディションでは、NSX ALB の機能がだいぶ制限されています。
たとえば、デモなどでおなじみの Vietual Service の Non-Significant Logs 確認もできなくなりました。
Enterprise エディションだと、下記のような可視化ができるのですが・・・
Essentials エディションでは利用できなくなります。ちなみに、この機能を利用している状態だと、Enterprise → Essentials への変更はできません。
これは、Avi CLI の「show configuration audit tier essentials」コマンドで確認すると、VirtualService.analytics_policy の full_client_logs や learning_log_policy といった機能が Essentials では利用できないことが理由のようです。
vSphere with Tanzu のロードバランサとして NSX ALB を利用する場合、Essentials エディションでは「動きはする」といった感じで、実際のところは Enterprise エディションがよさそうかなと思いました。
以上、NSX ALB Essentials のスーパーバイザー クラスタむけの設定でした。