vm.gowatana.jp

NEOにほんごVMware(仮)

vSphere with Tanzu NSX-ALB(Avi)版ラボ環境構築。Part-04 スーパーバイザー クラスタの構成

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つ自動デプロイされます。

f:id:gowatana:20210402083948p:plain

 

vSphere Client の、「メニュー」→「ワークロード管理」を開きます。

そして、直後に表示されるページでは、(初回のみ)評価版の利用者の情報を入力するか、ライセンス キーを入力することで次のページに進めるようになります。

f:id:gowatana:20210401233323p:plain

 

「開始する」をクリックすると、ウィザードに進みます。

f:id:gowatana:20210401233808p:plain

 

1. vCenter Server とネットワーク

スーパーバイザー クラスタのネットワークスタックとして、「vCenter Server ネットワーク」を選択て「次へ」をクリックします。

NSX-T を利用しないかわりに、ネットワークとルーティングについては外部の物理ネットワーク機器などで用意し、ロードバランサは HAProxy か NSX-ALB のどちらかを利用します。

f:id:gowatana:20210401234040p:plain

 

2. クラスタの選択

ワークロード管理を有効化する(スーパーバイザー クラスタにする)クラスタを選択して、「次へ」で進みます。

f:id:gowatana:20210401234114p:plain

 

3. 制御プレーンのサイズ 

スーパーバイザー クラスタの制御プレーンのサイズ(Supervisor Control Plane VM のスペック)を選択して、「次へ」をクリックして進みます。小規模なラボなので「極小」を選択しています。

f:id:gowatana:20210401234150p:plain

 

4. ストレージ

制御プレーン ノード(Supervisor Control Plane VM)を配置するデータストアを決定するための、仮想マシン ストレージ ポリシーを選択します。

f:id:gowatana:20210401234222p:plain

 

ここで選択した仮想マシン ストレージ ポリシーは、下記のように用意してあります。

 

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 に割り当てた証明書を入力します。

f:id:gowatana:20210402024402p:plain


この画面の「サーバ認証局」に入力する証明書は、事前に NSX-ALB コントローラ側で取得しておきます。

(前回の投稿にもありますが)、NSX-ALB コントローラにて、「Templates」→「Security」→「SSL/TLS Certificate」を開き、「Export」(↓ マーク)をクリックします。

f:id:gowatana:20210401234429p:plain

 

Certificate の内容をコピー(もしくは「Copy to clipboard」をクリック)しておきます。

f:id:gowatana:20210401234608p:plain

 

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つめはアップグレード時の予約です。

f:id:gowatana:20210401235043p:plain

 

7. ワークロード ネットワーク

Supervisor Control Plane VM の vNIC#2 と、Tanzu Kubernetes クラスタ(TKC)のノードが接続される、ワークロード ネットワークに関連する設定です。

 

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

  • サービスの IP アドレス: このラボでは、デフォルトのまま 10.96.0.0/24 です。
  • DNS サーバ: カンマ区切りで入力します。この DNS サーバは、TKC がインターネットなどからコンテナ イメージをダウンロードする際に参照します。

 

そして、ワークロード ネットワークの「追加」をクリックします。

f:id:gowatana:20210401235132p:plain

 

ワークロード ネットワークと、分散ポートグループを紐づけます。このネットワークは、あとでスーパーバイザー名前空間を作成する際に指定し、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。

f:id:gowatana:20210402032629p:plain

 

network-1 が、「プライマリ」のワークロード ネットワークとして追加されました。

ちなみに、このネットワークはワークロード管理を有効化した後に追加できないようです。スーパーバイザー名前空間ごとにネットワークを用意したい場合は、ここで複数のワークロード ネットワークを追加しておきます。

また、NSX-ALB の VIP が払い出されるデータ ネットワークと、スーパーバイザー クラスタのワークロード ネットワークとして 1つのネットワークを兼用する場合は、ここでの network-1 には、データ ネットワークのゲートウェイや IP アドレス範囲(ただし NSX-ALB の Static IP Pool とは重複しないように)を入力することになります。

f:id:gowatana:20210401235343p:plain

 

8. コンテンツ ライブラリ

Tanzu Kubernetes Grid の OVF テンプレートが含まれるコンテンツ ライブラリを選択して、「次へ」をクリックします。

ここで選択したコンテンツ ライブラリは、下記のように作成してあります。

f:id:gowatana:20210401235420p:plain

 

「完了」をクリックすると、処理が開始されます。

ちなみに、ここまでのパラメータ入力で時間がかかっていると、「完了」をクリックしてもエラーになる場合があります。その際は、いったんこのウィザードを閉じてやり直すと「完了」がクリックできるようになることがあります。

f:id:gowatana:20210401235456p:plain

 

有効化の処理が開始されます。

f:id:gowatana:20210401235653p:plain

 

スーパーバイザー クラスタの様子

しばらく待つと、処理が完了します。「ワークロード管理」メニュー → 「クラスタ」の表示は、次のようになります。

  • 構成ステータス: 実行中
  • 制御プレーン ノードの IP アドレス: NSX-ALB のデータ ネットワークに設定した IP アドレス プールの 1つめのアドレス。

なお、制御プレーン ノードの IP アドレスは、処理中には管理ネットワークの開始 IP アドレス(このラボでは 192.168.10.91)が割り当てられますが、処理完了時点では NSX-ALB で提供される VIP(このラボでは下記のように 192.168.24.11)に置き換わります。

管理ネットワークの開始 IP アドレスのままになっている場合は、スーパーバイザー クラスタの構成が失敗しています。(ネットワーク構成や NSX-ALB の準備に問題があるなど)

f:id:gowatana:20210401235937p:plain

 

スーパーバイザー クラスタ状態は、クラスタの「監視」→「名前空間」→「概要」でも確認できます。

ちなみに、NSX-T を利用する場合とは異なり、スーパーバイザー クラスタは制御プレーン ノード 3台のみで構成され、ESXi はワーカー ノードとして設定されないことがわかります。(つまり vSphere Pod は起動できません)

※スクリーンショットは、後続手順にて名前空間を作成後のものです。

f:id:gowatana:20210402003709p:plain

 

スーパーバイザー クラスタには、制御プレーン ノードにあたる「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)

f:id:gowatana:20210402001617p:plain

 

Servie Engine VM では、vNIC#1 に管理ネットワークのポート グループが割り当てられます。そして、vNIC#2 ~ #10 のいずれかにワークロード ネットワークのポート グループが割り当てられます。

f:id:gowatana:20210402001939p:plain

 

NSX-ALB コントローラでも「Infrastructure」→「Service Engine」を開くと、2台の Service Engine が作成されたことがわかります。

f:id:gowatana:20210402034352p:plain

 

制御プレーン ノードの IP アドレス(192.168.24.11)は、NSX-ALB の Virtual Service、VIP です。

NSX-ALB のコントローラの、「Applications」→「Virtual Services」の様子です。

f:id:gowatana:20210402090111p:plain

 

NSX-ALB のコントローラの、「Applications」→「VS VIPs」の様子です。

f:id:gowatana:20210402090308p:plain

 

スーパーバイザー名前空間の作成

このあと Tanzu Kubernetes クラスタを作成するために、スーパーバイザー名前空間を作成しておきます。

 

「ワークロード管理」メニュー →「名前空間」タブにて、「名前空間の作成」をクリックします。

ちなみに名前空間は、クラスタの右クリックからでも同様に作成できます。

f:id:gowatana:20210402002131p:plain

 

次のようなパラメータを入力して、「作成」をクリックします。

  • クラスタ: スーパーバイザー クラスタを選択。
  • 名前: 作成するスーパーバイザー名前空間の名前を入力。
  • ネットワーク: ワークロード管理の有効化の際に作成した、ワークロード ネットワーク(network-1)を選択。

f:id:gowatana:20210402002205p:plain

 

名前空間が作成されました。

名前空間の説明については、「確認」または「×」をクリックして閉じます。

f:id:gowatana:20210402002325p:plain

 

名前空間への権限の追加

vCenter Single Sign-on の ID ソース(vsphere.local や、Active Directory、LDAP など)のアカウントに、名前空間にアクセスする権限を付与できます。

デフォルトでも vCenter の管理者ユーザ(administrator@vsphere.local)でアクセスできるので、ここではそのまま進めます。なお、このラボの vCenter Single Sign-On ドメインは、デフォルトのまま vsphere.local にしてあります。

 

名前空間へのストレージの追加

データストア(に対応した仮想マシン ストレージ ポリシーを)Kubernetes の StorageClass と紐づけるため、名前空間で「ストレージの追加」を実施しておきます。

 

名前空間の「サマリ」タブで、「ストレージの追加」をクリックします。

f:id:gowatana:20210402003201p:plain

 

あらかじめ作成しておいた仮想マシン ストレージ ポリシーを選択して、「OK」をクリックします。これは、ワークロード管理の有効化の際に指定したポリシーでも大丈夫です。

f:id:gowatana:20210402003305p:plain

 

ポリシーが追加されました。

f:id:gowatana:20210402003525p:plain

 

次は、このスーパーバイザー名前空間に Tanzu Kubernetes クラスタを作成します。

つづく。