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 管理クラスタが展開され、クラスタが実行状態になっている。
- Tanzu Kubernetes クラスタが展開され、クラスタが実行状態になっている。
- Tanzu コマンド ライン インターフェイス (CLI) がインストールされている。
これらのタスクの詳細については、https://docs.vmware.com/jp/VMware-Tanzu-Kubernetes-Grid/index.htmlにある Tanzu Kubernetes Grid のドキュメントを参照してください。
管理クラスタを展開すると、管理クラスタで Antrea を使用したネットワークが自動的に有効になります。
タスク 3:NSX-T Data Center での適切なライセンスの追加
個人設定:NSX 管理者
- NSX Data Center Advanced
- NSX Data Center Enterprise Plus
- Antrea Enterprise Standalone
- NSX Manager で、 の順に移動します。
- ライセンス キーを入力します。
タスク 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 プラットフォーム管理者
- Web ブラウザで、VMware Customer Connect ポータルの [すべてのダウンロード] ページを開き、VMware ID を使用してログインします。
- [すべての製品] ドロップダウン メニューから、[ネットワークとセキュリティの] を選択します。
- [VMware Antrea] の横にある [製品のダウンロード] をクリックします。[VMware Antrea のダウンロード] ページが開きます。
- 目的の [VMware Container Networking with Antrea] バージョンの横にある [ダウンロードに移動] をクリックします。
- 表示されたページで [Antrea-NSX Interworking Adapter Image and Manifest Bundle] を見つけます。[詳細] をクリックして、antrea-interworking-version.zip ファイルのバージョンが、確認した Antrea オープン ソース ソフトウェアのバージョンと互換性があることを確認します。
- [今すぐダウンロード] をクリックします。
ファイル名 | 説明 |
---|---|
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 管理者
- 自己署名証明書の作成
- プリンシパル 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
タスク 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 コンテナ クラスタで一意です。
- NSX Manager ユーザー インターフェイスで、[システム] タブをクリックします。
- [設定] で、 の順に移動します。
- の順にクリックします。
- プリンシパル ID ユーザーの名前を入力します。たとえば、cluster-sales と入力します。
重要: bootstrap-config.yaml ファイルで、 NSX プリンシパル ID ユーザー、証明書 CN、clusterName 引数に同じ名前を指定していることを確認します。
ブートストラップ構成ファイルの詳細については、ブートストラップ構成ファイルの編集を参照してください。
- ロールとして [エンタープライズ管理者] を選択します。
- [ノード ID] テキスト ボックスに、Antrea コンテナ クラスタの名前を入力します。この名前は、NSX-T に登録しているすべてのコンテナ クラスタで一意にする必要があります。たとえば、cluster-sales と入力します。
- [証明書の PEM] テキスト領域に、以前に作成した完全な自己署名証明書を貼り付けます。-----BEGIN CERTIFICATE---- 行と ------END CERTIFICATE----- 行もこのテキスト ボックスに貼り付けてください。
- [保存] をクリックします。
- 左側のナビゲーション ペインの [設定] で、[証明書] をクリックします。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.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-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 のドキュメントを参照してください。