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 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」を参照してください。

タスク 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™ 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. Broadcom サポート ポータルで [My Downloads] ページを開きます。
  2. 右上隅にある Broadcom 部門の選択メニュー。 をクリックし、[VMware Cloud Foundation] を選択します。

    [My Downloads] ページには、ダウンロードする資格が付与されている SKU のみが表示されます。

  3. [VMware Antrea] をクリックし、[VMware Antrea Enterprise] をクリックします。
  4. 目的の [VMware Container Networking with Antrea] バージョンをクリックします。[Primary Downloads] タブが開きます。
  5. このタブ ページで、[VMware Container Networking with Antrea, NSX Interworking Adapter Image and Deployment Manifests] ファイル名を検索します。
  6. ファイル名の下に記載されている antrea-interworking-version.zip ファイルのバージョンが、以前に特定した Antrea オープン ソース ソフトウェアのバージョンと互換性があることを確認します。

    次はその例です。


    Antrea オープン ソース ソフトウェアのバージョンがファイル名の下に表示されます。
  7. [I agree to Broadcom Terms and Conditions] チェック ボックスを選択します。
  8. ダウンロード アイコンをクリックします。
ZIP ファイルを抽出します。次のファイルが含まれています。
ファイル名 説明
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 管理者

Kubernetes クラスタの 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 でプリンシパル 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 クラスタごとに異なることを確認します。

タスク 8:プリンシパル 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 クラスタの自己署名証明書が表示されていることを確認します。

タスク 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 に登録する各 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 のドキュメントを参照してください。