Antrea Kubernetes クラスタを NSX に登録する前に、いくつかの前提となるタスクを実行する必要があります。

1 つの NSX 環境に複数の Antrea Kubernetes クラスタを登録できます。

Antrea-NSX インターワーキング アダプタに必要なポートが開いていることを確認します.

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

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

Antrea Kubernetes クラスタの展開

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

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

たとえば、 Tanzu Kubernetes Grid インスタンス内の クラスタを NSX と統合するには、次のタスクが完了していることを確認します。
  • 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」を参照してください。

NSX での適切なライセンスの追加

個人設定:NSX 管理者

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

自己署名セキュリティ証明書の作成

個人設定: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
注: .csr ファイルの作成に使用する openssl req コマンドで、コモンネーム (CN) が Antrea Kubernetes クラスタごとに異なることを確認します。

プリンシパル ID ユーザーの作成

個人設定:NSX 管理者

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

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

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

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

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

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

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 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 オープン ソースのバージョンです。

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 Kubernetes クラスタを NSX に登録するための YAML 展開マニフェスト ファイル。
bootstrap-config.yaml 次の登録情報を指定できる YAML ファイル:Antrea Kubernetes クラスタ名、NSX Manager IP アドレス、Kubernetes クラスタの TLS 証明書、Kubernetes クラスタのプライベート キー。
deregisterjob.yaml NSX から Antrea Kubernetes クラスタの登録を解除する YAML 展開マニフェスト ファイル。
ns-label-webhook.yaml 新しく作成された Kubernetes ネームスペースにラベルを自動的に追加するための Webhook 定義。この YAML ファイルは、Kubernetes のバージョンが 1.20 の場合にのみ使用されます。
interworking-version.tar 管理プレーン アダプタ中央制御プレーン アダプタ のコンテナ イメージのアーカイブ ファイル。

コンテナ レジストリへのコンテナ イメージのインポート

個人設定: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 に登録する各 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