18.3. VMware NSX-T のインストール
前提条件
ESXi ホストの要件:
OpenShift Container Platform ノード仮想マシンをホストする ESXi サーバーは NSX-T トランスポートノードである必要があります。
図18.1 NSX UI での通常の高可用性環境のトランスポートノード表示
DNS の要件:
-
ワイルドカードのある DNS サーバーの新規エントリーをインフラストラクチャーノードに追加する必要があります。これにより、NSX-T または他のサードパーティー LoadBalancer による負荷分散が許可されます。以下の
hosts
ファイルで、エントリーはopenshift_master_default_subdomain
変数によって定義されます。 -
DNS サーバーは、
openshift_master_cluster_hostname
およびopenshift_master_cluster_public_hostname
変数で更新する必要があります。
-
ワイルドカードのある DNS サーバーの新規エントリーをインフラストラクチャーノードに追加する必要があります。これにより、NSX-T または他のサードパーティー LoadBalancer による負荷分散が許可されます。以下の
仮想マシンの要件:
- OpenShift Container Platform ノード仮想マシンには 2 つの vNIC が必要です。
- Management vNIC が管理 T1 ルーターのアップリンクに使用される論理スイッチに接続されている必要があります。
すべての仮想マシンの 2 つ目の vNIC は NSX-T でタグ付けし、 NSX Container Plug-in (NCP) が特定の OpenShift Container Platform ノードで実行されているすべてのポートの親 VIF として使用する必要のあるポートを識別できるようにする必要があります。タグは以下のようになります。
{'ncp/node_name': 'node_name'} {'ncp/cluster': 'cluster_name'}
{'ncp/node_name': 'node_name'} {'ncp/cluster': 'cluster_name'}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の図では、NSX UI でのすべてのノードについてのタグを示しています。大規模なクラスターの場合、API 呼び出しを使用するか、または Ansible を使用してタグ付けを自動化することができます。
図18.2 NSX UI でのノードタグの表示
NSX UI でのタグの順序は API とは反対になります。ノード名は kubelet が予想するものと完全に一致する必要があり、クラスター名は以下に示すように Ansible ホストファイルの
nsx_openshift_cluster_name
と同じである必要があります。適切なタグがすべてのノードの 2 つ目の vNIC に適用されていることを確認してください。
NSX-T の要件:
以下の前提条件を NSX で満たしている必要があります。
- Tier-0 ルーター。
- オーバーレイトランポートゾーン。
- POD ネットワークの IP ブロック。
- (オプション) ルート指定された (NoNAT) POD ネットワークの IP ブロック
- SNAT の IP プール。デフォルトで Pod ネットワークの IP ブロックからプロジェクトごとに指定されるサブネットは NSX-T 内でのみルーティング可能です。NCP はこの IP プールを使用して外部への接続を提供します。
- (オプション) dFW (分散ファイアウォール) の Top および Bottom ファイアウォールセクション。NCP は 2 つのセクション間に Kubernetes ネットワークポリシールールを配置します。
-
Open vSwitch および CNI プラグイン RPM は OpenShift Container Platform ノード仮想マシンから到達可能な HTTP サーバーでホストされる必要があります (この例では
http://websrv.example.com
)。それらのファイルは、Download NSX Container Plug-in 2.4.0 からダウンロードできる NCP Tar ファイルに含まれています。
OpenShift Container Platform の要件:
以下のコマンドを実行して、OpenShift Container Platform の必要なソフトウェアパッケージをインストールします (ある場合)。
ansible-playbook -i hosts openshift-ansible/playbooks/prerequisites.yml
$ ansible-playbook -i hosts openshift-ansible/playbooks/prerequisites.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - NCP コンテナーイメージがすべてのノードにローカルにダウンロードされていることを確認します。
prerequisites.yml
Playbook が正常に実行された後に、xxx
を NCP ビルドバージョンに置き換えて、以下のコマンドをすべてのノードで実行します。docker load -i nsx-ncp-rhel-xxx.tar
$ docker load -i nsx-ncp-rhel-xxx.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
docker load -i nsx-ncp-rhel-2.4.0.12511604.tar
$ docker load -i nsx-ncp-rhel-2.4.0.12511604.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージ名を取得して、これに再度タグを付けます。
docker images docker image tag registry.local/xxxxx/nsx-ncp-rhel nsx-ncp
$ docker images $ docker image tag registry.local/xxxxx/nsx-ncp-rhel nsx-ncp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
xxx
を NCP ビルドバージョンに置き換えます。以下に例を示します。
docker image tag registry.local/2.4.0.12511604/nsx-ncp-rhel nsx-ncp
docker image tag registry.local/2.4.0.12511604/nsx-ncp-rhel nsx-ncp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform Ansible ホストファイルで、以下のパラメーターを指定し、ネットワークプラグインとして NSX-T をセットアップします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform インストールパラメーターについての詳細は、インベントリーファイルの設定 を参照してください。
手順
すべての要件を満たしている場合、NSX Data Center および OpenShift Container Platform をデプロイできます。
OpenShift Container Platform クラスターをデプロイします。
ansible-playbook -i hosts openshift-ansible/playbooks/deploy_cluster.yml
$ ansible-playbook -i hosts openshift-ansible/playbooks/deploy_cluster.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform インストールについての詳細は、OpenShift Container Platform のインストール を参照してください。
インストールが完了したら、NCP および nsx-node-agent Pod が実行されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow