3.2. OpenStackNetConfig CRD を使用した仮想マシンのブリッジングについて
OpenStackVMSet CRD を使用して仮想マシン (VM) を作成する場合は、これらの VM を関連する Red Hat OpenStack Platform (RHOSP) ネットワークに接続する必要があります。OpenStackNetConfig CRD を使用すると、Red Hat OpenShift Container Platform (RHOCP) ワーカーノード上に必要なブリッジを作成し、コントローラー VM を RHOSP オーバークラウドネットワークに接続できます。RHOSP をデプロイメントするには専用の NIC が必要です。
OpenStackNetConfig CRD には、nodeNetworkConfigurationPolicy のハッシュである attachConfigurations オプションが含まれています。OpenStackNetConfig カスタムリソース (CR) で指定されたそれぞれの attachConfiguration は、NetworkAttachmentDefinition オブジェクトを作成し、ネットワークインターフェイスデータを RHOCP クラスターの NodeNetworkConfigurationPolicy リソースに渡します。NodeNetworkConfigurationPolicy リソースは、nmstate API を使用して、各 RHOCP ワーカーノードのネットワーク設定の最終状態を設定します。各ネットワークの NetworkAttachmentDefinition オブジェクトは、Multus CNI プラグイン設定を定義します。NetworkAttachmentDefinition オブジェクトの VLAN ID を指定すると、Multus CNI プラグインによってブリッジ上の vlan-filtering が有効になります。OpenStackNetConfig で設定された各ネットワークは、attachConfigurations の 1 つを参照します。VM 内には、ネットワークごとに 1 つのインターフェイスがあります。
次の例では、br-osp attachConfiguration を作成し、Linux ブリッジを作成し、そのブリッジを各ワーカーの NIC に接続するように、nodeNetworkConfigurationPolicy オプションを設定します。この設定を適用すると、NodeNetworkConfigurationPolicy オブジェクトは、必要な最終状態に一致するように各 RHOCP ワーカーノードを設定します。各ワーカーには、各ホストの enp6s0 NIC に接続される br-osp という名前の新しいブリッジが含まれます。すべての RHOSP コントローラー VM は、コントロールプレーンネットワークトラフィックの br-osp ブリッジに接続できます。
VLAN 20 を介して内部 API ネットワークを指定する場合は、attachConfiguration オプションを設定して、各 RHOCP ワーカーノードのネットワーク設定を変更し、VLAN を既存の br-osp ブリッジに接続できます。
br-osp はすでに存在し、各ホストの enp6s0 NIC に接続されているので、ブリッジ自体に変更は加えられません。ただし、InternalAPI OpenStackNet は VLAN 20 をこのネットワークに関連付けます。これは、RHOSP コントローラー VM が内部 API ネットワークトラフィックの br-osp ブリッジ上の VLAN 20 に接続できることを意味します。
OpenStackVMSet CRD を使用して VM を作成すると、VM は各ネットワークに接続された複数の Virtio デバイスを使用します。OpenShift Virtualization は、すべての Pod が接続されている RHOCP クラスターネットワークである デフォルト ネットワークを除き、ネットワーク名をアルファベット順に並べ替えます。デフォルト ネットワークは常に最初のインターフェイスです。デフォルト のネットワークは設定できません。たとえば、OpenStackNetConfig を使用してデフォルトの RHOSP ネットワークを作成すると、コントローラー VM に対して次のインターフェイス設定が生成されます。
この設定により、コントローラーノードの以下のネットワークとインターフェイスのマッピングが作成されます。
| ネットワーク | インターフェイス |
|---|---|
| default | nic1 |
| ctlplane | nic2 |
| external | nic3 |
| internalapi | nic4 |
| storage | nic5 |
| storagemgmt | nic6 |
| tenant | nic7 |
OpenStackVMSet で使用されるロール NIC テンプレートは自動生成されます。カスタム NIC テンプレートファイル <role>-nic-template.j2 (たとえば、controller-nic-template.j2) のデフォルト設定を上書きできます。カスタム NIC ファイルを、OpenShift ConfigMap オブジェクトを使用して実装されるオーバークラウド設定を含む tarball ファイルに追加する必要があります。詳細は、第 4 章director Operator を使用したオーバークラウドのカスタマイズ。