vSphere 7.0 U2 で、vSphere with Tanzu + NSX Advanced Load Balancer のラボ環境を構築していきます。今回は、スーパーバイザー クラスタを作成(クラスタでのワークロード管理を有効化)します。
前回(NSX-ALB での準備の様子)はこちら。
今回の内容です。
ドキュメントでは、下記のあたりを参考にしています。
ワークロード管理の有効化
vSphere Client で、ひたすら「ワークロード管理」を有効化していきます。ウィザードの内容は、HAProxy を利用するパターンと殆ど同じです。この処理が完了すると、Supervisor Control Plane VM 3台の他に、NSX-ALB(Avi)の Service Engine VM が 2つ自動デプロイされます。
vSphere Client の、「メニュー」→「ワークロード管理」を開きます。
そして、直後に表示されるページでは、(初回のみ)評価版の利用者の情報を入力するか、ライセンス キーを入力することで次のページに進めるようになります。
「開始する」をクリックすると、ウィザードに進みます。
1. vCenter Server とネットワーク
スーパーバイザー クラスタのネットワークスタックとして、「vCenter Server ネットワーク」を選択て「次へ」をクリックします。
NSX-T を利用しないかわりに、ネットワークとルーティングについては外部の物理ネットワーク機器などで用意し、ロードバランサは HAProxy か NSX-ALB のどちらかを利用します。
2. クラスタの選択
ワークロード管理を有効化する(スーパーバイザー クラスタにする)クラスタを選択して、「次へ」で進みます。
3. 制御プレーンのサイズ
スーパーバイザー クラスタの制御プレーンのサイズ(Supervisor Control Plane VM のスペック)を選択して、「次へ」をクリックして進みます。小規模なラボなので「極小」を選択しています。
4. ストレージ
制御プレーン ノード(Supervisor Control Plane VM)を配置するデータストアを決定するための、仮想マシン ストレージ ポリシーを選択します。
ここで選択した仮想マシン ストレージ ポリシーは、下記のように用意してあります。
5. ロード バランサ
この項目から、NSX-ALB ならではのパラメータになります。
次のようにパラメータを入力して、「次へ」をクリックします。
- 名前: NSX-ALB コントローラにつける名前を入力。例では lab-avi-51。
- タイプ: NSX-ALB の旧名にあたる「Avi」を選択。
- Avi Controller の IP アドレス: NSX-ALB コントローラのアドレスを入力。このラボでは 192.168.10.96:443。
- ユーザー名: NSX-ALB の管理ユーザを入力。このラボでは admin。
- パスワード: NSX-ALB の管理ユーザのパスワードを入力。
- サーバ認証局: NSX-ALB に割り当てた証明書を入力します。
この画面の「サーバ認証局」に入力する証明書は、事前に NSX-ALB コントローラ側で取得しておきます。
(前回の投稿にもありますが)、NSX-ALB コントローラにて、「Templates」→「Security」→「SSL/TLS Certificate」を開き、「Export」(↓ マーク)をクリックします。
Certificate の内容をコピー(もしくは「Copy to clipboard」をクリック)しておきます。
6. 管理ネットワーク
Supervisor Control Plane VM の、管理ネットワーク(vNIC#1)に関連する設定です。
次のようにパラメータを入力して、「次へ」をクリックして進めます。
- ネットワーク: 事前に作成しておいた、管理ネットワークのポートグループを選択します。
このラボでは DPortGroup-0010-MGMT です。 - 開始 IP アドレス: Supervisor Control Plane VM の vNIC#1 に付与する IP アドレスを入力します。
このラボでは 192.168.10.91(~ .95 の 5つが利用される)。 - サブネットマスク: 管理ネットワークのサブネットマスク。
このラボでは 255.255.255.0。 - ゲートウェイ: 管理ネットワークのゲートウェイ。
このラボでは 192.168.10.1。 - DNS サーバ: DNS サーバをカンマ区切りで入力。
- DNS 検索ドメイン: この項目はオプションです。
- NTP サーバ: カンマ区切りで入力します。
ちなみに、ここで入力した「開始 IP アドレス」から、5つが利用されます。1つめはフローティング IP アドレス、2~4 つめは各 Supervisor Control Plane VM の vNIC#1、5つめはアップグレード時の予約です。
7. ワークロード ネットワーク
Supervisor Control Plane VM の vNIC#2 と、Tanzu Kubernetes クラスタ(TKC)のノードが接続される、ワークロード ネットワークに関連する設定です。
次のようにパラメータを入力します。
- サービスの IP アドレス: このラボでは、デフォルトのまま 10.96.0.0/24 です。
- DNS サーバ: カンマ区切りで入力します。この DNS サーバは、TKC がインターネットなどからコンテナ イメージをダウンロードする際に参照します。
そして、ワークロード ネットワークの「追加」をクリックします。
ワークロード ネットワークと、分散ポートグループを紐づけます。このネットワークは、あとでスーパーバイザー名前空間を作成する際に指定し、TKC ノードが接続されます。
次のようにパラメータを入力して、「保存」をクリックします。
- 名前: network-1(デフォルトのまま)
- ポート グループ: 事前に作成しておいたワークロード ネットワークむけのポート グループを選択します。
このラボでは DPortGroup-0025-WL。 - ゲートウェイ: ワークロード ネットワークのゲートウェイ。
このラボでは 192.168.25.1。 - サブネットマスク: ワークロード ネットワークのサブネットマスク。
このラボでは 255.255.255.0。 - IP アドレス 範囲: このアドレス範囲から、 Supervisor Control Plane VM の vNIC#2 と、Tanzu Kubernetes クラスタ(TKC)に IP アドレスが払い出されます。
このラボでは 192.168.25.100-192.168.25.199。
network-1 が、「プライマリ」のワークロード ネットワークとして追加されました。
ちなみに、このネットワークはワークロード管理を有効化した後に追加できないようです。スーパーバイザー名前空間ごとにネットワークを用意したい場合は、ここで複数のワークロード ネットワークを追加しておきます。
また、NSX-ALB の VIP が払い出されるデータ ネットワークと、スーパーバイザー クラスタのワークロード ネットワークとして 1つのネットワークを兼用する場合は、ここでの network-1 には、データ ネットワークのゲートウェイや IP アドレス範囲(ただし NSX-ALB の Static IP Pool とは重複しないように)を入力することになります。
8. コンテンツ ライブラリ
Tanzu Kubernetes Grid の OVF テンプレートが含まれるコンテンツ ライブラリを選択して、「次へ」をクリックします。
ここで選択したコンテンツ ライブラリは、下記のように作成してあります。
「完了」をクリックすると、処理が開始されます。
ちなみに、ここまでのパラメータ入力で時間がかかっていると、「完了」をクリックしてもエラーになる場合があります。その際は、いったんこのウィザードを閉じてやり直すと「完了」がクリックできるようになることがあります。
有効化の処理が開始されます。
スーパーバイザー クラスタの様子
しばらく待つと、処理が完了します。「ワークロード管理」メニュー → 「クラスタ」の表示は、次のようになります。
- 構成ステータス: 実行中
- 制御プレーン ノードの IP アドレス: NSX-ALB のデータ ネットワークに設定した IP アドレス プールの 1つめのアドレス。
なお、制御プレーン ノードの IP アドレスは、処理中には管理ネットワークの開始 IP アドレス(このラボでは 192.168.10.91)が割り当てられますが、処理完了時点では NSX-ALB で提供される VIP(このラボでは下記のように 192.168.24.11)に置き換わります。
管理ネットワークの開始 IP アドレスのままになっている場合は、スーパーバイザー クラスタの構成が失敗しています。(ネットワーク構成や NSX-ALB の準備に問題があるなど)
スーパーバイザー クラスタ状態は、クラスタの「監視」→「名前空間」→「概要」でも確認できます。
ちなみに、NSX-T を利用する場合とは異なり、スーパーバイザー クラスタは制御プレーン ノード 3台のみで構成され、ESXi はワーカー ノードとして設定されないことがわかります。(つまり vSphere Pod は起動できません)
※スクリーンショットは、後続手順にて名前空間を作成後のものです。
スーパーバイザー クラスタには、制御プレーン ノードにあたる「SupervisorControlPlaneVM」が 3台と、NSX-ALB のデータ プレーンとなる Servie Engine VM(avi-se-~)が 2台、自動的にデプロイされます。
Servie Engine VM の IP アドレスは、NSX-ALB の IPAM により払い出されています。(このラボでは IP アドレス プールが 192.168.10.71-192.168.10.79 なので、1台目は 192.168.10.71、2台目は 192.168.10.72)
Servie Engine VM では、vNIC#1 に管理ネットワークのポート グループが割り当てられます。そして、vNIC#2 ~ #10 のいずれかにワークロード ネットワークのポート グループが割り当てられます。
NSX-ALB コントローラでも「Infrastructure」→「Service Engine」を開くと、2台の Service Engine が作成されたことがわかります。
制御プレーン ノードの IP アドレス(192.168.24.11)は、NSX-ALB の Virtual Service、VIP です。
NSX-ALB のコントローラの、「Applications」→「Virtual Services」の様子です。
NSX-ALB のコントローラの、「Applications」→「VS VIPs」の様子です。
スーパーバイザー名前空間の作成
このあと Tanzu Kubernetes クラスタを作成するために、スーパーバイザー名前空間を作成しておきます。
「ワークロード管理」メニュー →「名前空間」タブにて、「名前空間の作成」をクリックします。
ちなみに名前空間は、クラスタの右クリックからでも同様に作成できます。
次のようなパラメータを入力して、「作成」をクリックします。
- クラスタ: スーパーバイザー クラスタを選択。
- 名前: 作成するスーパーバイザー名前空間の名前を入力。
- ネットワーク: ワークロード管理の有効化の際に作成した、ワークロード ネットワーク(network-1)を選択。
名前空間が作成されました。
名前空間の説明については、「確認」または「×」をクリックして閉じます。
名前空間への権限の追加
vCenter Single Sign-on の ID ソース(vsphere.local や、Active Directory、LDAP など)のアカウントに、名前空間にアクセスする権限を付与できます。
デフォルトでも vCenter の管理者ユーザ(administrator@vsphere.local)でアクセスできるので、ここではそのまま進めます。なお、このラボの vCenter Single Sign-On ドメインは、デフォルトのまま vsphere.local にしてあります。
名前空間へのストレージの追加
データストア(に対応した仮想マシン ストレージ ポリシーを)Kubernetes の StorageClass と紐づけるため、名前空間で「ストレージの追加」を実施しておきます。
名前空間の「サマリ」タブで、「ストレージの追加」をクリックします。
あらかじめ作成しておいた仮想マシン ストレージ ポリシーを選択して、「OK」をクリックします。これは、ワークロード管理の有効化の際に指定したポリシーでも大丈夫です。
ポリシーが追加されました。
次は、このスーパーバイザー名前空間に Tanzu Kubernetes クラスタを作成します。
つづく。