1.5. 高度な仮想マシン設定
1.5.1. 仮想マシンのネットワークソースとしての Open vSwitch ブリッジの使用
Container-native Virtualization を使用すると、仮想マシンインスタンスを、ノード上で設定される Open vSwitch ブリッジに接続できます。
前提条件
- OpenShift Container Platform 3.11 以降を実行するクラスター
手順
クラスターのホストネットワークを準備します (オプション)。
ホストネットワークにボンディングなどの追加の設定変更が必要な場合は、Red Hat Enterprise Linux ネットワークガイド を参照してください。
すべてのクラスターホストでインターフェースおよびブリッジを設定します。
各ホストで、必要なネットワークに接続されたインターフェースを選択します。次に、Open vSwitch ブリッジを作成し、ブリッジのポートとして選択したインターフェースを指定します。
この例では、ブリッジ
br1
を作成し、これをインターフェースeth1
に接続します。このブリッジはすべてのノードで設定される必要があります。これがノードのサブセットでのみ利用可能な場合は、VMI の nodeSelector 制約が有効であることを確認してください。注記Any connections to `eth1` are lost once the interface is assigned to the bridge, so another interface must be present on the host.
$ ovs-vsctl add-br br1 $ ovs-vsctl add-port br1 eth1 $ ovs-vsctl show 8d004495-ea9a-44e1-b00c-3b65648dae5f Bridge br1 Port br1 Interface br1 type: internal Port "eth1" Interface "eth1" ovs_version: "2.8.1"
クラスター上にネットワークを設定します。
L2 ネットワークはクラスター全体のリソースとして処理されます。ネットワークをネットワーク割り当て定義 YAML ファイルで定義します。ネットワークは NetworkAttachmentDefinition CRD を使用して定義できます。
NetworkAttachmentDefinition CRD オブジェクトには、Pod とネットワーク間の割り当てについての情報が含まれます。以下の例では、Open vSwitch ブリッジ
br1
への割り当てがあり、トラフィックは VLAN 100 にタグ付けられています。apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: vlan-100-net-conf spec: config: '{ "cniVersion": "0.3.1", "type": "ovs", "bridge": "br1", "vlan": 100 }'
注記"vlan" はオプションです。これが省略される場合、VMI はトランクを経由して割り当てられます。
仮想マシンインスタンス設定ファイルを、インターフェースおよびネットワークの詳細を含めるように編集します。
ネットワークが直前に作成された NetworkAttachmentDefinition に接続されるように指定します。このシナリオでは、
vlan-100-net
はvlan-100-net-conf
という NetworkAttachmentDefinition に接続されます。networks: - name: default pod: {} - name: vlan-100-net multus: networkName: vlan-100-net-conf
VMI を起動すると、
eth0
インターフェースはデフォルトのクラスターネットワークに接続し、eth1
は、VMI を実行するノードでブリッジbr1
を使用して VLAN 100 に接続します。