Antrea コンテナ クラスタを NSX に登録する前に、いくつかの前提となるタスクを実行する必要があります。
1 つの NSX 環境に複数の Antrea コンテナ クラスタを登録できます。
Antrea コンテナ クラスタの展開
個人設定:Kubernetes プラットフォーム管理者
Antrea ネットワーク プラグインを使用する Kubernetes クラスタは、稼動中で準備が完了している必要があります。
- Tanzu 管理クラスタが展開され、クラスタが実行状態になっている。
- Tanzu Kubernetes クラスタが展開され、クラスタが実行状態になっている。
- Tanzu コマンド ライン インターフェイス (CLI) がインストールされている。
これらのタスクの詳細については、https://docs.vmware.com/jp/VMware-Tanzu-Kubernetes-Grid/index.htmlにある Tanzu Kubernetes Grid のドキュメントを参照してください。
管理クラスタを展開すると、管理クラスタで Antrea を使用したネットワークが自動的に有効になります。
NSX での適切なライセンスの追加
個人設定:NSX 管理者
- NSX Data Center Advanced
- NSX Data Center Enterprise Plus
- Antrea Enterprise Standalone
- NSX Manager で、 の順に移動します。
- ライセンス キーを入力します。
自己署名セキュリティ証明書の作成
個人設定:NSX 管理者
NSX でプリンシパル ID ユーザー アカウントを作成するには、自己署名のセキュリティ証明書が必要です。これについては、このトピックの後半で説明します。
OpenSSL コマンドを使用して、NSX に登録する 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
プリンシパル ID ユーザーの作成
個人設定:NSX 管理者
管理プレーン アダプタ と 中央制御プレーン アダプタ は、プリンシパル ID (PI) ユーザー アカウントを使用して NSX Manager で認証を行い、自身をプリンシパル ID として識別します。PI ユーザーは、アダプタによって報告されたインベントリ リソースを所有します。NSX は、他のユーザーが誤ってインベントリ リソースを上書きするのを防ぎます。
Antrea コンテナ クラスタごとに異なる PI ユーザーが必要です。クラスタ名は、NSX で一意にする必要があります。証明書のコモン ネームと PI ユーザー名は、クラスタ名と同じである必要があります。NSX は、クラスタ間での証明書と PI ユーザーの共有をサポートしていません。
前の手順で作成した自己署名証明書を使用して、NSX にプリンシパル ID ユーザーを作成します。このプリンシパル ID ユーザーに、エンタープライズ管理者ロールを割り当てます。プリンシパル ID ユーザーは、Antrea コンテナ クラスタで一意です。
- NSX Manager ユーザー インターフェイスで、[システム] タブをクリックします。
- [設定] で、 の順に移動します。
- の順にクリックします。
- プリンシパル ID ユーザーの名前を入力します。たとえば、cluster-sales と入力します。
重要: bootstrap-config.yaml ファイルで、 NSX プリンシパル ID ユーザー、証明書 CN、clusterName 引数に同じ名前を指定していることを確認します。
ブートストラップ構成ファイルの詳細については、ブートストラップ構成ファイルの編集を参照してください。
- ロールとして [エンタープライズ管理者] を選択します。
- [ノード ID] テキスト ボックスに、Antrea コンテナ クラスタの名前を入力します。この名前は、NSX に登録しているすべてのコンテナ クラスタで一意にする必要があります。たとえば、cluster-sales と入力します。
- [証明書の PEM] テキスト領域に、以前に作成した完全な自己署名証明書を貼り付けます。-----BEGIN CERTIFICATE---- 行と ------END CERTIFICATE----- 行もこのテキスト ボックスに貼り付けてください。
- [保存] をクリックします。
- 左側のナビゲーション ペインの [設定] で、[証明書] をクリックします。Antrea コンテナ クラスタの自己署名証明書が表示されていることを確認します。
Kubernetes クラスタからの Antrea バージョンの特定
個人設定:Kubernetes プラットフォーム管理者
このトピックの次の前提条件である Antrea-NSX インターワーキング ファイル (antrea-interworking-version.zip) をダウンロードする前に、Kubernetes クラスタから 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 オープン ソースのバージョンです。
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 に登録するための YAML 展開マニフェスト ファイル。 |
bootstrap-config.yaml | 次の登録情報を指定できる YAML ファイル:Antrea コンテナ クラスタ名、NSX Manager IP アドレス、コンテナ クラスタの TLS 証明書、コンテナ クラスタのプライベート キー。 |
deregisterjob.yaml | NSX から Antrea コンテナ クラスタの登録を解除する 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.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 ワーカーノードと制御プレーン ノードにコピーします。
たとえば、 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