Antrea コンテナ クラスタを NSX-T Data Center に登録する前に、いくつかの前提となるタスクを実行する必要があります。

1 つの NSX-T Data Center 環境に複数の Antrea コンテナ クラスタを登録できます。

コンテナ クラスタ内の VMware Container Networking™ with Antrea™ バージョンが 1.8.0 以降の場合は、タスク 1 ~ 6 とタスク 9 を実行します。このドキュメントのタスク 7 および 8 はスキップできます。

コンテナ クラスタの VMware Container Networking™ with Antrea™ バージョンが 1.7.0 以前の場合は、タスク 1 ~ 5 とタスク 7 ~ 9 を実行します。タスク 6 は適用されません。

タスク 1:Antrea-NSX インターワーキング アダプタに必要なポートが開いていることの確認

Antrea-NSX インターワーキング アダプタは、Antrea コンテナ クラスタでポッドとして実行されます。このポッドはホスト ネットワーク モードを使用します。ポッドは、任意のコンテナ クラスタ ノードで実行するようにスケジューリングできます。したがって、クラスタ ノードが、https://ports.esp.vmware.com/home/NSX の VMware Ports and Protocols ポータルにあるポートの NSX-T Data Center IP アドレスに到達可能であることを確認する必要があります。

このリンクで、[検索] テキスト ボックスに Antrea Interworking Pod と入力します。

タスク 2:Antrea コンテナ クラスタの展開

個人設定:Kubernetes プラットフォーム管理者

Antrea ネットワーク プラグインを使用する Kubernetes クラスタは、稼動中で準備が完了している必要があります。

たとえば、 Tanzu Kubernetes Grid インスタンス内の クラスタを NSX-T Data Center と統合するには、次のタスクが完了していることを確認します。
  • Tanzu 管理クラスタが展開され、クラスタが実行状態になっている。
  • Tanzu Kubernetes クラスタが展開され、クラスタが実行状態になっている。
  • Tanzu コマンド ライン インターフェイス (CLI) がインストールされている。

これらのタスクの詳細については、https://docs.vmware.com/jp/VMware-Tanzu-Kubernetes-Grid/index.htmlにある Tanzu Kubernetes Grid のドキュメントを参照してください。

管理クラスタを展開すると、管理クラスタで Antrea を使用したネットワークが自動的に有効になります。

注: networkPolicyOnly モードの Antrea CNI もサポートされます。詳細については、『 VMware Container Networking with Antrea Installation Guide』の「 Installing VMware Container Networking with Antrea in networkPolicyOnly Mode」を参照してください。

タスク 3:NSX-T Data Center での適切なライセンスの追加

個人設定:NSX 管理者

使用している NSX-T Data Center 環境に次のいずれかのライセンスがあることを確認します。
  • NSX Data Center Advanced
  • NSX Data Center Enterprise Plus
  • Antrea Enterprise Standalone
ライセンスを追加するには:
  1. NSX Manager で、[システム] > [ライセンス] > [ライセンスの追加] の順に移動します。
  2. ライセンス キーを入力します。

タスク 4:Kubernetes クラスタからの Antrea バージョンの特定

個人設定:Kubernetes プラットフォーム管理者

このトピックの次の前提条件である Antrea-NSX インターワーキング ファイル (antrea-interworking-version.zip) をダウンロードする前に、Kubernetes クラスタから Antrea オープン ソースのバージョンを特定する必要があります。

重要:VMware Container Networking™ with Antrea™ リリースは、1 つの Antrea オープン ソースのバージョンに基づいています。 Antrea- NSX インターワーキング バージョンは、同じ Antrea リリースの VMware Container Networking オープン ソース ソフトウェア バージョンと互換性があります。

例については、次の表を参照してください。

この表は、すべての 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.5.0 リリース ノート

v1.7.1

v0.7.*

v1.4.0

参照:v1.4.0 リリース ノート

v1.5.2

v0.5.*

v1.3.1

参照:v1.3.1-1.2.3 リリース ノート

v1.2.3

v0.2.*

Kubernetes クラスタから Antrea オープン ソースのバージョンを確認するには、次の手順を実行します。
  1. 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 です。

  2. 次のコマンドを実行して、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 プラットフォーム管理者

次の手順で antrea-interworking-version.zip ファイルをダウンロードします。
  1. Web ブラウザで、VMware Customer Connect ポータルの [すべてのダウンロード] ページを開き、VMware ID を使用してログインします。
  2. [すべての製品] ドロップダウン メニューから、[ネットワークとセキュリティの] を選択します。
  3. [VMware Antrea] の横にある [製品のダウンロード] をクリックします。[VMware Antrea のダウンロード] ページが開きます。
  4. 目的の [VMware Container Networking with Antrea] バージョンの横にある [ダウンロードに移動] をクリックします。
  5. 表示されたページで [Antrea-NSX Interworking Adapter Image and Manifest Bundle] を見つけます。[詳細] をクリックして、antrea-interworking-version.zip ファイルのバージョンが、確認した Antrea オープン ソース ソフトウェアのバージョンと互換性があることを確認します。
  6. [今すぐダウンロード] をクリックします。
ZIP ファイルを抽出します。次のファイルが含まれています。
ファイル名 説明
interworking.yaml Antrea コンテナ クラスタを NSX-T に登録するための YAML 展開マニフェスト ファイル。
bootstrap-config.yaml 次の登録情報を指定できる YAML ファイル:Antrea コンテナ クラスタ名、NSX Manager IP アドレス、コンテナ クラスタの TLS 証明書、コンテナ クラスタのプライベート キー。
bin/antreansxctl Antrea-NSX コマンドライン ユーティリティ。このユーティリティは、VMware Container Networking バージョン 1.7.0 以降の antrea-interworking.zip ファイルで使用できます。
deregisterjob.yaml NSX-T から Antrea コンテナ クラスタの登録を解除する YAML 展開マニフェスト ファイル。
ns-label-webhook.yaml 新しく作成された Kubernetes ネームスペースにラベルを自動的に追加するための Webhook 定義。この YAML ファイルは、Kubernetes のバージョンが 1.20 の場合にのみ使用されます。
interworking-version.tar 管理プレーン アダプタ中央制御プレーン アダプタ のコンテナ イメージのアーカイブ ファイル。

タスク 6:antreansxctl bootstrap コマンドの実行

個人設定:NSX 管理者

コンテナ クラスタの VMware Container Networking™ with Antrea™ バージョンが 1.8.0 以降の場合は、 antreansxctl bootstrap コマンドを実行して、登録プロセスで次の前提条件となるタスクを自動化できます。
  • 自己署名証明書の作成
  • プリンシパル 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-T でプリンシパル ID ユーザー アカウントを作成するには、自己署名のセキュリティ証明書が必要です。これについては、このトピックの後半で説明します。

OpenSSL コマンドを使用して、NSX-T に登録する Antrea コンテナ クラスタごとに自己署名セキュリティ証明書を作成します。

たとえば、cluster-sales という Antrea コンテナ クラスタに、長さ 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
注: .csr ファイルの作成に使用する openssl req コマンドで、コモン ネーム (CN) が Antrea コンテナ クラスタごとに異なることを確認します。

タスク 8:プリンシパル ID ユーザーの作成

個人設定:NSX 管理者

管理プレーン アダプタ中央制御プレーン アダプタ は、プリンシパル ID (PI) ユーザー アカウントを使用して NSX Manager で認証を行い、自身をプリンシパル ID として識別します。PI ユーザーは、アダプタによって報告されたインベントリ リソースを所有します。NSX-T は、他のユーザーが誤ってインベントリ リソースを上書きするのを防ぎます。

Antrea コンテナ クラスタごとに異なる PI ユーザーが必要です。クラスタ名は、NSX-T で一意にする必要があります。証明書のコモン ネームと PI ユーザー名は、クラスタ名と同じである必要があります。NSX-T は、クラスタ間での証明書と PI ユーザーの共有をサポートしていません。

前の手順で作成した自己署名証明書を使用して、NSX-T にプリンシパル ID ユーザーを作成します。このプリンシパル ID ユーザーに、エンタープライズ管理者ロールを割り当てます。プリンシパル ID ユーザーは、Antrea コンテナ クラスタで一意です。

プリンシパル ID ユーザーを作成するには:
  1. NSX Manager ユーザー インターフェイスで、[システム] タブをクリックします。
  2. [設定] で、[ユーザー管理] > [ユーザー ロールの割り当て] の順に移動します。
  3. [追加] > [ロールを持つプリンシパル ID] の順にクリックします。
  4. プリンシパル ID ユーザーの名前を入力します。たとえば、cluster-sales と入力します。
    重要: bootstrap-config.yaml ファイルで、 NSX プリンシパル ID ユーザー、証明書 CN、clusterName 引数に同じ名前を指定していることを確認します。

    ブートストラップ構成ファイルの詳細については、ブートストラップ構成ファイルの編集を参照してください。

  5. ロールとして [エンタープライズ管理者] を選択します。
  6. [ノード ID] テキスト ボックスに、Antrea コンテナ クラスタの名前を入力します。この名前は、NSX-T に登録しているすべてのコンテナ クラスタで一意にする必要があります。たとえば、cluster-sales と入力します。
  7. [証明書の PEM] テキスト領域に、以前に作成した完全な自己署名証明書を貼り付けます。-----BEGIN CERTIFICATE---- 行と ------END CERTIFICATE----- 行もこのテキスト ボックスに貼り付けてください。
  8. [保存] をクリックします。
  9. 左側のナビゲーション ペインの [設定] で、[証明書] をクリックします。Antrea コンテナ クラスタの自己署名証明書が表示されていることを確認します。

タスク 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.htmlVMware Container Networking with Antrea のリリース ノートを参照してください。

任意のテキスト エディタで interworking.yaml ファイルと deregisterjob.yaml ファイルを開き、すべてのイメージ URL をこれらのイメージの場所のいずれかに置き換えます。

この方法の利点は、コンテナ クラスタを登録するために .yaml ファイルを Kubernetes API サーバに送信すると、Kubernetes が VMware Harbor Registry から自動的にコンテナ イメージをプルできる点です。

アプローチ 2:Kubernetes ワーカー ノードと制御プレーン ノードにイメージを手動でコピーする

Kubernetes インフラストラクチャにインターネット接続がない場合、または接続が遅すぎる場合は、この方法を使用します。

interworking-version.tar ファイルからコンテナ イメージを抽出し、NSX-T に登録する各 Antrea コンテナ クラスタの 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 のドキュメントを参照してください。