Antrea Kubernetes クラスタを NSX に登録する前に、このドキュメントで説明するいくつかの前提となるタスクを実行する必要があります。
1 つの NSX 環境に複数の Antrea Kubernetes クラスタを登録できます。
Kubernetes クラスタ内の VMware Container Networking™ with Antrea™ バージョンが 1.8.0 以降の場合は、タスク 1 ~ 6 とタスク 9 を実行します。このドキュメントのタスク 7 および 8 はスキップできます。
Kubernetes クラスタの VMware Container Networking™ with Antrea™ バージョンが 1.7.0 以前の場合は、タスク 1 ~ 5 とタスク 7 ~ 9 を実行します。タスク 6 は適用されません。
タスク 1:Antrea-NSX インターワーキング アダプタに必要なポートが開いていることの確認
Antrea-NSX インターワーキング アダプタは、Antrea Kubernetes クラスタでポッドとして実行されます。このポッドはホスト ネットワーク モードを使用します。ポッドは、任意の Kubernetes ノードで実行するようにスケジューリングできます。したがって、K8s ノードが、https://ports.esp.vmware.com/home/NSX の VMware Ports and Protocols ポータルにあるポートの NSX IP アドレスに到達可能であることを確認する必要があります。
このリンクで、[検索] テキスト ボックスに Antrea Interworking Pod と入力します。
タスク 2:Antrea Kubernetes クラスタの展開
個人設定:Kubernetes プラットフォーム管理者
Antrea ネットワーク プラグインを使用する Kubernetes クラスタは、稼動中で準備が完了している必要があります。
- Tanzu 管理クラスタが展開され、クラスタが実行状態になっている。
- Tanzu Kubernetes クラスタが展開され、クラスタが実行状態になっている。
- Tanzu コマンド ライン インターフェイス (CLI) がインストールされている。
これらのタスクの詳細については、https://docs.vmware.com/jp/VMware-Tanzu-Kubernetes-Grid/index.htmlにある Tanzu Kubernetes Grid のドキュメントを参照してください。
管理クラスタを展開すると、管理クラスタで Antrea を使用したネットワークが自動的に有効になります。
タスク 3:NSX での適切なライセンスの追加
個人設定:NSX 管理者
使用している NSX 環境に次のいずれかのライセンスがあることを確認します。
- NSX Data Center Advanced
- NSX Data Center Enterprise Plus
- Antrea Enterprise Standalone
タスク 4:Kubernetes クラスタからの Antrea バージョンの特定
個人設定:Kubernetes プラットフォーム管理者
このトピックの次の前提条件である Antrea-NSX インターワーキング ファイル (antrea-interworking-version.zip) をダウンロードする前に、Kubernetes クラスタから Antrea オープン ソースのバージョンを特定する必要があります。
例については、次の表を参照してください。
この表は、すべての VMware Container Networking バージョンと Antrea-NSX インターワーキング バージョンの包括的なリストではありません。完全なリストについては、https://docs.vmware.com/jp/VMware-Container-Networking-with-Antrea/index.html にある VMware Container Networking™ with Antrea™ リリース ノートを参照してください。
VMware Container Networking のバージョン | Antrea OSS バージョンに基づく | Antrea-NSX インターワーキング バージョンと互換 |
---|---|---|
v1.5.0 |
v1.7.1 |
v0.7.* |
v1.4.0 |
v1.5.2 |
v0.5.* |
v1.3.1 |
v1.2.3 |
v0.2.* |
- Antrea Controller ポッド名を確認します。Kubernetes は、ランダムな文字列を使用してこの名前を生成します。この名前は K8s クラスタから取得できます。
次はその例です。
$ kubectl get pod -n kube-system -l component=antrea-controller NAME READY STATUS RESTARTS AGE antrea-controller-6b8cb7cd59-wcjvd 1/1 Running 0 13d
このコマンド出力では、Antrea Controller ポッド名は antrea-controller-6b8cb7cd59-wcjvd です。
- 次のコマンドを実行して、Antrea オープン ソースのバージョンを取得します。
$ kubectl exec -it antrea-controller-6b8cb7cd59-wcjvd -n kube-system -- antctl version antctlVersion: v1.7.1-cacafc0 controllerVersion: v1.7.1-cacafc0
このコマンド出力で、v1.7.1 が目的の Antrea オープン ソースのバージョンです。
タスク 5:Antrea-NSX インターワーキング Zip ファイルのダウンロード
個人設定:Kubernetes プラットフォーム管理者
- Broadcom サポート ポータルで [My Downloads] ページを開きます。
- 右上隅にある をクリックし、[VMware Cloud Foundation] を選択します。
[My Downloads] ページには、ダウンロードする資格が付与されている SKU のみが表示されます。
- [VMware Antrea] をクリックし、[VMware Antrea Enterprise] をクリックします。
- 目的の [VMware Container Networking with Antrea] バージョンをクリックします。[Primary Downloads] タブが開きます。
- このタブ ページで、[VMware Container Networking with Antrea, NSX Interworking Adapter Image and Deployment Manifests] ファイル名を検索します。
- ファイル名の下に記載されている antrea-interworking-version.zip ファイルのバージョンが、以前に特定した Antrea オープン ソース ソフトウェアのバージョンと互換性があることを確認します。
次はその例です。
- [I agree to Broadcom Terms and Conditions] チェック ボックスを選択します。
- ダウンロード アイコンをクリックします。
ファイル名 | 説明 |
---|---|
interworking.yaml | Antrea Kubernetes クラスタを NSX に登録するための YAML 展開マニフェスト ファイル。 |
bootstrap-config.yaml | 次の登録情報を指定できる YAML ファイル:Antrea Kubernetes クラスタ名、NSX Manager IP アドレス、Kubernetes クラスタの TLS 証明書、Kubernetes クラスタのプライベート キー。 |
bin/antreansxctl | Antrea-NSX コマンドライン ユーティリティ。このユーティリティは、VMware Container Networking バージョン 1.7.0 以降の antrea-interworking.zip ファイルで使用できます。 |
deregisterjob.yaml | NSX から Antrea Kubernetes クラスタの登録を解除する YAML 展開マニフェスト ファイル。 |
ns-label-webhook.yaml | 新しく作成された Kubernetes ネームスペースにラベルを自動的に追加するための Webhook 定義。この YAML ファイルは、Kubernetes のバージョンが 1.20 の場合にのみ使用されます。 |
interworking-version.tar | 管理プレーン アダプタ と 中央制御プレーン アダプタ のコンテナ イメージのアーカイブ ファイル。 |
タスク 6:antreansxctl bootstrap コマンドの実行
個人設定:NSX 管理者
- 自己署名証明書の作成
- プリンシパル ID (PI) ユーザーの作成
- ブートストラップ構成 (bootstrap-config.yaml) の作成
注: antreansxctl コマンドライン ユーティリティに組み込まれている bootstrap-config.yaml テンプレートは、現在のインターワーキング リリースと互換性があります。コマンドライン ユーティリティは、実行するために antrea-interworking.zip ファイルの bootstrap-config.yaml ファイルに依存しません。
antreansxctl bootstrap コマンドを実行するには、antreansxctl コマンドライン ユーティリティを使用します。このユーティリティは、以前にダウンロードした antrea-interworking.zip ファイルにあります。
antreansxctl ユーティリティは、Linux 専用の実行ファイルです。したがって、このユーティリティを実行するには Linux マシンが必要です。
antreansxctl bootstrap コマンドとそのさまざまな構成オプションの使用方法については、『VMware Container Networking with Antrea インストール ガイド』の antreansxctl コマンドラインのドキュメントを参照してください。
タスク 7:自己署名セキュリティ証明書の作成
個人設定:NSX 管理者
NSX でプリンシパル ID ユーザー アカウントを作成するには、自己署名のセキュリティ証明書が必要です。これについては、このトピックの後半で説明します。
OpenSSL コマンドを使用して、NSX に登録する Antrea Kubernetes クラスタごとに自己署名セキュリティ証明書を作成します。
たとえば、cluster-sales という Antrea Kubernetes クラスタに、長さ 2048 ビットの自己署名 OpenSSL 証明書を作成するとします。次の OpenSSL コマンドを使用して、プライベート キー ファイル、証明書署名要求ファイル、このクラスタの自己署名証明書ファイルを生成します。
openssl genrsa -out cluster-sales-private.key 2048 openssl req -new -key cluster-sales-private.key -out cluster-sales.csr -subj "/C=US/ST=CA/L=Palo Alto/O=VMware/OU=Antrea Cluster/CN=cluster-sales" openssl x509 -req -days 3650 -sha256 -in cluster-sales.csr -signkey cluster-sales-private.key -out cluster-sales.crt
タスク 8:プリンシパル ID ユーザーの作成
個人設定:NSX 管理者
管理プレーン アダプタ と 中央制御プレーン アダプタ は、プリンシパル ID (PI) ユーザー アカウントを使用して NSX Manager で認証を行い、自身をプリンシパル ID として識別します。PI ユーザーは、アダプタによって報告されたインベントリ リソースを所有します。NSX は、他のユーザーが誤ってインベントリ リソースを上書きするのを防ぎます。
Antrea Kubernetes コンテナ クラスタごとに異なる PI ユーザーが必要です。クラスタ名は、NSX で一意にする必要があります。証明書のコモン ネームと PI ユーザー名は、クラスタ名と同じである必要があります。NSX は、クラスタ間での証明書と PI ユーザーの共有をサポートしていません。
前の手順で作成した自己署名証明書を使用して、NSX にプリンシパル ID ユーザーを作成します。このプリンシパル ID ユーザーに、エンタープライズ管理者ロールを割り当てます。
- NSX Manager ユーザー インターフェイスで、[システム] タブをクリックします。
- [設定] で、 の順に移動します。
- の順にクリックします。
- プリンシパル ID ユーザーの名前を入力します。たとえば、cluster-sales と入力します。
重要: bootstrap-config.yaml ファイルで、 NSX プリンシパル ID ユーザー、証明書 CN、clusterName 引数に同じ名前を指定していることを確認します。
ブートストラップ構成ファイルの詳細については、ブートストラップ構成ファイルの編集を参照してください。
- ロールとして [エンタープライズ管理者] を選択します。
- [ノード ID] テキスト ボックスに、Antrea Kubernetes クラスタの名前を入力します。この名前は、NSX に登録しているすべての Kubernetes クラスタで一意にする必要があります。たとえば、cluster-sales と入力します。
- [証明書の PEM] テキスト領域に、以前に作成した完全な自己署名証明書を貼り付けます。-----BEGIN CERTIFICATE---- 行と ------END CERTIFICATE----- 行もこのテキスト ボックスに貼り付けてください。
- [保存] をクリックします。
- 左側のナビゲーション ペインの [設定] で、[証明書] をクリックします。Antrea Kubernetes クラスタの自己署名証明書が表示されていることを確認します。
タスク 9:コンテナ レジストリへのコンテナ イメージのインポート
個人設定:Kubernetes プラットフォーム管理者
この前提条件タスクを実行するには、2 つの方法があります。
- アプローチ 1(推奨): VMware Harbor Registryからイメージをプルする
-
VMware では、VMware Harbor Registry にコンテナ イメージをホストしています。
イメージの場所は次のとおりです。- projects.registry.vmware.com/antreainterworking/interworking-debian:version
- projects.registry.vmware.com/antreainterworking/interworking-ubuntu:version
- projects.registry.vmware.com/antreainterworking/interworking-photon:version
バージョン 情報については、https://docs.vmware.com/jp/VMware-Container-Networking-with-Antrea/index.htmlで VMware Container Networking with Antrea のリリース ノートを参照してください。
任意のテキスト エディタで interworking.yaml ファイルと deregisterjob.yaml ファイルを開き、すべてのイメージ URL をこれらのイメージの場所のいずれかに置き換えます。
この方法の利点は、クラスタを登録するために .yaml ファイルを Kubernetes API サーバに送信すると、Kubernetes が VMware Harbor Registry から自動的にコンテナ イメージをプルできる点です。
- アプローチ 2:Kubernetes ワーカー ノードと制御プレーン ノードにイメージを手動でコピーする
-
Kubernetes インフラストラクチャにインターネット接続がない場合、または接続が遅すぎる場合は、この方法を使用します。
interworking-version.tar ファイルからコンテナ イメージを抽出し、NSX に登録する各 Antrea Kubernetes クラスタの Kubernetes ワーカーノードと制御プレーン ノードにコピーします。
たとえば、 Tanzu CLI で、Kubernetes ワーカー ノードと制御プレーン ノードの IP アドレスごとに次のコマンドを実行し、 .tar ファイルと .yaml ファイルをコピーします。scp -o StrictHostKeyChecking=no interworking* capv@{node-ip}:/home/capv
コンテナ ランタイム エンジンによって管理されるローカル Kubernetes レジストリにイメージをインポートします。組織にプライベート コンテナ レジストリがある場合は、コンテナ イメージをプライベート コンテナ レジストリにインポートできます。
たとえば、Tanzu CLI で、Kubernetes ワーカー ノードと制御プレーン ノードの IP アドレスごとに次のコマンドを実行して、ローカルの Kubernetes レジストリにコンテナ イメージをインポートします。
ssh capv@{node-ip} sudo ctr -n=k8s.io i import interworking-{version-id}.tar
NAT が構成された Tanzu 環境の vSphere でこの方法を使用するには、ジャンプ ホスト仮想マシンで SCP コマンドと SSH コマンドを実行して、Tanzu Kubernetes クラスタ ノードに接続する必要があります。Linux ジャンプ ホスト仮想マシンの作成とクラスタ ノードへの SSH 接続の設定の詳細については、https://docs.vmware.com/jp/VMware-vSphere/index.html にある vSphere with Tanzu のドキュメントを参照してください。