はじめに
VMware vSphere環境ではTanzu Kubernetes Grid(通称: TKG)を使用することで簡単にKubernetes環境を構築することができます。本記事で紹介するTKGはStandalone版であり、マルチクラウドに対応可能なTKGmです。また、NSX ALBはEssentialsライセンスを使用していきます。本記事ではNSX ALBを構築する方法を記述しています。
環境
| 環境 |
|---|
| VMware ESXi 8 |
| VMware vCenter 8 |
| Tanzu Kubernetes Grid 2.1.1 |
| NSX Advanced Load Balancer 22.1.3 |
前提条件
- VMware ESXiの構築及びvCenterを使用してDatacenterの管理ができていること
- 2つ以上のVLAN環境が構築できていること
- 本環境ではマネジメントネットワーク:VM Network(VLAN0)とKubernetes用ネットワーク:VLAN100(VLAN100)を用意しています。
- 十分なリソースのあるサーバ、ストレージ
- NSX ALBでCPU:8, RAM:24GB, ROM:128GB使用します。
- 要件によりますが、デプロイするKubernetesノードでもCPU:2, RAM:8GB, ROM:40GBの仮想マシンが4~12個デプロイされます。
NSX ALBの構築
ここからはNSX ALBのコントローラであるAvi Controllerの構築を行います。
NSX ALBのダウンロード
-
下記サイトにアクセスしてください。 https://customerconnect.vmware.com/en/downloads/details?downloadGroup=NSX-ALB-10-NDC&productId=1092&rPId=55618#product_downloads
-
「Products & Downloads」の中にある「Download Now」ボタンをクリックしてください。

-
VMware Connectのアカウントでログインしてください。

-
ログイン後、リダイレクトでAvi Networks Portalに飛びます。左ペインの「Software」→「NSX ALB」と進んでください。その後、「22.1.3」を開き、「22.1.3」のリンクをクリックしてください。

-
「Downloads」の中にある「VMware」タブを開き、「Controller OVA」のダウンロードボタン(下矢印)をクリックし、NSX ALBのOVAファイルをダウンロードしてください。 ※この際、ダウンロードされるファイル名は「controller_sha1-22.1.3-9096.ova」
NSX ALBのOVAのデプロイ
-
VMware vCenterにアクセスし、ログインをしてください。
-
Datacenterを右クリックし、「OVFテンプレートのデプロイ」をクリックしてください。

-
OVFテンプレートの選択ではローカルファイルを選択し、「ファイルのアップロード」をクリックし、先程ダウンロードした「OVA」ファイルを選択してください。

-
名前とフォルダの選択では、任意の名前、フォルダを指定してください。(本記事ではavi_controller)としています。

-
コンピューティングリソースの選択では、ご自身の環境にあったリソースを選択してください。

-
詳細を確認したら次へをクリックしてください。

-
ストレージの選択では、ご自身の環境にあったストレージを選択してください。

-
ネットワークの選択では、マネジメントネットワークを選択してください。

-
テンプレートのカスタマイズでは以下の項目を設定してください。
- Management Interface IP Address: この仮想マシンに割り当てるIPアドレスを指定してください。(空欄の場合はDHCPでIPアドレスが割り当てられます)
- Management Interface Subnet Mask: マネジメントネットワークのサブネットを指定してください。
- Default Gateway: デフォルトゲートウェイを指定してください。
以上で基本的な設定は完了です。その他、環境に合わせてパラメータを記述してください。

-
設定の確認を行ったら、完了ボタンをクリックし、OVAをデプロイしてください。

-
OVAのデプロイが終わったら、仮想マシンを開きパワーオンしてください。

-
ブラウザから「https://avi_controllerのIPアドレス」にアクセスしてください。接続時に、プライバシー保護の警告が出ますが、「詳細設定」→「~にアクセスする」をクリックしてください。 ※起動に時間がかかるため、アクセスが早いと「502 Bad Gateway」等が表示されます。

NSX ALBの初期セットアップ
-
初回アクセス時に管理者アカウントである「admin」のパスワードを設定します。 メールアドレスは入力しなくても構いません。

-
システム設定では以下の項目を設定します。
- パスフレーズ(必須): コンフィグのエクスポートと定期バックアップで使用するパスフレーズを設定します。
- DNSリソルバー: Avi ControllerがDNS解決するときに使用するDNSサーバを指定します。複数ある場合はカンマ区切りで指定します。
- DNS検索ドメイン: DNSルックアップで使用するドメインを指定します。

-
Eメール/SMTPではEメールの送信設定を行います。必要に応じて設定してください。今回は使用しないため、「なし」を選択しています。

-
マルチテナントではマルチテナントを使用しないため、デフォルトのまま進みます。以上すべての設定が終わったら、右下の「保存」をクリックしてください。これにより、NSX ALBにアクセスできるようになります。

-
オプション: NSX ALBの言語設定。右上にあるユーザマークをクリックし、「My account」をクリックしてください。その後、「Display」のLanguageを日本語に設定し、右下の「Save」をクリックしてください。

Default Cloudの設定
NSX ALBとvCenterを連携させるために設定を行います。
-
上部タブの「インフラストラクチャ」→「クラウド」にある「Default-Cloud」のEditボタン(ペンマーク)をクリックしてください。

-
ここでは以下の項目を設定します。
- タイプ: 「VMware vCenter/vSphere ESX」を選択してください。※プルダウンメニューの下ボタンをクリックすると出現します。
- テンプレートサービスエンジングループ: Default-Groupを選択してください。

- 認証情報の設定: 「vCenter Server/vSphere」の項目に進み、「認証情報の設定」クリックしてください。そこで少情報の入力を求められるのでvCenter Serverに接続するための項目を入力し、「接続」をクリックしてください。
認証情報を入力後、「vCenter/vSphere」項目で入力できる欄が増えます。 - Data Center: 使用するデータセンタを指定してください。
- コンテンツライブラリを使用: 今回は使用しないのでチェックを外します。環境に合わせてください
ここで再起動要求されるので右下の「保存して再起動」をクリックしてください。※vCenterやESXiが再起動されるわけではありません。

-
再起動後、続けて設定を行います。以下の項目を設定してください。
- 管理ネットワーク: 「vCenter Server/vSphere」欄にある管理ネットワークの選択で、マネジメントネットワークを選択してください。
- 管理ネットワークのIPアドレス管理: DHCPを使用する場合は「DHCPの有効化」のチェックを入れてください。
自身でIPアドレス範囲を指定する場合は「DHCPの有効化」のチェックを外し、静的IPアドレスプールにて払い出されるIPアドレスを指定してください。

一度、ここでDefault-Cloudの設定は終わります。右下の「保存」をクリックしてください。
Service Engine Groupの設定
NSX ALBではService Engineと呼ばれる仮想マシンをデプロイします。デプロイされるマシンの設定を行います。
-
「インフラストラクチャ」→「クラウドリソース」→「サービスエンジングループ」に進んでください。

-
「Default-Group」の編集ボタン(ペンマーク)をクリックして下さい。

-
ここで以下の項目を設定します。
- サービスエンジンごとのvCPU: デプロイされる仮想マシンのCPUです。CPUの性能が低い場合、1から2などに変更してください。

- 次にあるホスト/クラスタスコープサービスエンジン: 「ホスト/クラスタ」を選択してください。その後、「クラスタ」で「含む」を選択し、自身のクラスタを選択してください。「ホスト」に関しては設定しなくても問題ありませんが、任意のホストにデプロイしたい場合、ホストを指定することができます。
以上でDefault-Groupの設定は終了です。今回の設定はあくまで一例であるため、ご自身の環境に合わせて設定してください。
- サービスエンジンごとのvCPU: デプロイされる仮想マシンのCPUです。CPUの性能が低い場合、1から2などに変更してください。
ネットワークの設定
-
「インフラストラクチャ」→「クラウドサービス」→「ネットワーク」でKubernetes用ネットワークのEditボタン(ペンマーク)をクリックしてください。

-
サブネットに既存のネットワークアドレスがあるのでそれのeditボタン(ペンマーク)をクリックしてください。

-
「VIPおよびSEにIPアドレスを使用」にチェックを入れ、Kubernetes用ネットワークで割り当てられる任意の範囲を指定してください。

IPAMプロファイルの設定
NSX ALBはVirtual Serviceと呼ばれる仮想的なサービスを作成し、これにIPアドレスを割り当てます。これをVIPネットワークといいます。今回はKubernetesネットワークを割り当てます。
IPAMプロファイルの作成
-
「テンプレート」→「IPアドレス管理/DNSプロファイル」に進み「作成」の「IPアドレス管理プロファイル」をクリックしてください。

-
ここで以下の項目を入力してください。
- 名前: 任意の名前を入力してください。
- クラウド: 「Default-Cloud」を指定してください。

- 使用可能なネットワーク: 「追加」ボタンをクリックし、ネットワークにKubernetes用ネットワークを指定してください。
以上で設定は終了です。右下の「保存」ボタンをクリックしてください。
IPAMプロファイルの適用
IPAMプロファイルはDefault-Cloudに適用することで使用できます。
-
「インフラストラクチャ」→「クラウド」にある「Default-Cloud」のEditボタン(ペンマーク)をクリックしてください。
-
「IPアドレス管理/DNS」欄にあるIPアドレス管理プロファイルに先ほど作成したIPAMプロファイルを指定してください。その後、「保存」をクリックしてください。

スタティックルートの設定
VIPネットワークのルーティングを設定します。
-
「インフラストラクチャ」→「クラウドリソース」→「VRFコンテキスト」に進み「global」のEditボタン(ペンマーク)をクリックしてください。

-
「スタティックルート」欄の「追加」ボタンをクリックし、ゲートウェイサブネットに「0.0.0.0/0」、ネクストホップにKubernetesネットワークのデフォルトゲートウェイ(ルータ等のIP)を指定してください。その後、「保存」をクリックしてください。

ライセンスの変更
今回はEnterpriseライセンスからEssentialsライセンスに変更します。
-
上部タブの「管理」→「ライセンス」に進み設定ボタン(歯車マーク)をクリックします。

-
Essentials階層をクリックし、右下の「保存」をクリックしてください。これにより、ライセンスを変更することができました。
コントローラ証明書の作成
TKGからNSX ALBにアクセスするために必要なコントローラ証明書を作成します。
-
上部タブの「テンプレート」→「セキュリティ」→「SSL/TLS証明書」に進んでください。「作成」をクリックし、「コントローラ証明書」をクリックしてください。

-
以下の項目を設定します。
- 名前(必須): 任意の名前を入力してください。
- 共通名(必須): 任意のFQDNを入力してください。
- サブジェクトの別名(SAN): 共通名に入力したFQDNを再度入力してください。コントローラへIPアドレスを使用してアクセスする場合、ここにIPアドレスを指定してください。

-
作成した証明書をコントローラに適用するために上部タブの「管理」→「システム設定」→「編集」をクリックします。
-
「SSL/TLS」欄にある「SSL/TLS証明書」にある2つを削除し、先程作成した証明書に置き換え、右下の「保存」をクリックしてください。

-
ページ更新を行うと、再度プライバシー保護警告が表示されます。「保護されていない通信」→「証明書が無効です」をクリックすると証明書の詳細を見ることができます。

証明書の取得
TKGからNSX ALBにアクセスするために証明書を取得する必要があります。
-
「テンプレート」→「セキュリティ」→「SSL/TLS証明書」にある作成した証明書の「エクスポート」ボタン(下矢印)をクリックしてください。

-
「証明書」下の「クリップボードにコピー」をクリックし、どこかにメモをしておいてください。

これにてNSX ALBでの設定は終了です。
次回
次回、NSX ALBを使用したTanzu Kubernetes Gridの構築のための事前準備およびBootStrapマシンの構築になります。
https://www.munenick.me/blog/tkg-nsx-alb-02