8.7. OVN-Kubernetes セカンダリーネットワークへの仮想マシンの接続
仮想マシンを Open Virtual Network (OVN)-Kubernetes セカンダリーネットワークに接続できます。OpenShift Virtualization は、OVN-Kubernetes のレイヤー 2 およびローカルネットトポロジーをサポートします。
- レイヤー 2 トポロジーは、クラスター全体の論理スイッチでワークロードを接続します。OVN-Kubernetes Container Network Interface (CNI) プラグインは、Geneve (Generic Network Virtualization Encapsulation) プロトコルを使用してノード間にオーバーレイネットワークを作成します。このオーバーレイネットワークを使用すると、追加の物理ネットワークインフラストラクチャーを設定することなく、さまざまなノード上の仮想マシンを接続できます。
 - ローカルネットトポロジーは、セカンダリーネットワークを物理アンダーレイに接続します。これにより、east-west クラスタートラフィックとクラスター外で実行されているサービスへのアクセスの両方が可能になります。ただし、クラスターノード上の基盤となる Open vSwitch (OVS) システムの追加設定が必要です。
 
					OVN-Kubernetes セカンダリーネットワークは、VM とのトラフィックフローを制御するための MultiNetworkPolicy カスタムリソース定義(CRD)を提供する マルチネットワークポリシー API と互換性があります。ipBlock 属性を使用して、特定の CIDR ブロックに対するネットワークポリシーの受信および送信ルールを定義できます。
				
OVN-Kubernetes セカンダリーネットワークを設定し、そのネットワークに仮想マシンを接続するには、次の手順を実行します。
ネットワークアタッチメント定義 (NAD) を作成して、OVN-Kubernetes セカンダリーネットワークの設定 を行います。
注記localnet トポロジーの場合は、NAD を作成 する前に
NodeNetworkConfigurationPolicyオブジェクトを作成し、OVS ブリッジを設定する 必要があります。- ネットワークの詳細を仮想マシン仕様に追加して、仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続 します。
 
8.7.1. OVN-Kubernetes NAD の作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールまたは CLI を使用して、OVN-Kubernetes レイヤー 2 またはローカルネットネットワーク接続定義 (NAD) を作成できます。
						仮想マシンのネットワークアタッチメント定義で spec.config.ipam.subnet 属性を指定して IP アドレス管理 (IPAM) を設定することはサポートされていません。
					
8.7.1.1. CLI を使用したレイヤー 2 トポロジー用の NAD の作成 リンクのコピーリンクがクリップボードにコピーされました!
Pod をレイヤー 2 オーバーレイネットワークに接続する方法を説明する Network Attachment Definition (NAD) を作成できます。
前提条件
- 
								
cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。 - 
								OpenShift CLI (
oc) がインストールされている。 
手順
NetworkAttachmentDefinitionオブジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - Container Network Interface (CNI)仕様のバージョン。必要な値は
0.3.1です。 - 2
 - ネットワークの名前。この属性には namespace がありません。たとえば、
l2-networkという名前のネットワークを、2 つの異なる namespace に存在する 2 つの異なるNetworkAttachmentDefinitionオブジェクトから参照させることができます。この機能は、異なる namespace の仮想マシンを接続する場合に役立ちます。 - 3
 - CNI プラグインの名前。必要な値は
ovn-k8s-cni-overlayです。 - 4
 - ネットワークのトポロジー設定。必要な値は
layer2です。 - 5
 - オプション: 最大伝送単位 (MTU) の値。この値を設定しなかった場合、Cluster Network Operator (CNO) が、プライマリーネットワークインターフェイスのアンダーレイ MTU、Geneve (Generic Network Virtualization Encapsulation) などの Pod ネットワークのオーバーレイ MTU、および IPsec などの有効な機能のバイト容量の差を計算して、デフォルトの MTU 値を設定します。
 - 6
 NetworkAttachmentDefinitionオブジェクトのmetadataスタンザ内のnamespaceおよびnameフィールドの値。
注記上記の例では、サブネットが定義されていないクラスター全体のオーバーレイを設定します。これは、ネットワークを実装する論理スイッチがレイヤー 2 通信のみを提供することを意味します。仮想マシンの作成時に、静的 IP アドレスを設定するか、動的 IP アドレス用にネットワーク上に DHCP サーバーをデプロイすることによって、IP アドレスを設定する必要があります。
以下のコマンドを実行してマニフェストを適用します。
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
8.7.1.2. CLI を使用してローカルネットトポロジーの NAD を作成する リンクのコピーリンクがクリップボードにコピーされました!
Pod を基盤となる物理ネットワークに接続する方法を説明するネットワーク接続定義 (NAD) を作成できます。
前提条件
- 
								
cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。 - 
								OpenShift CLI (
oc) がインストールされている。 - Kubernetes NMState Operator がインストールされている。
 - 
								OVN-Kubernetes セカンダリーネットワークを Open vSwitch (OVS) ブリッジにマップするための 
NodeNetworkConfigurationPolicyオブジェクトを作成している。 
手順
NodeNetworkConfigurationPolicyオブジェクトを作成して、OVN-Kubernetes セカンダリーネットワークを Open vSwitch (OVS) ブリッジにマッピングします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - 設定オブジェクトの名前。
 - 2
 - ノードネットワーク設定ポリシーを適用するノードを指定します。推奨されるノードセレクター値は
node-role.kubernetes.io/worker: ''です。 - 3
 - トラフィックを OVS ブリッジに転送する追加ネットワークの名前。この属性は、OVN-Kubernetes 追加ネットワークを定義する
NetworkAttachmentDefinitionオブジェクトのspec.config.physicalNetworkNameフィールドの値と一致する必要があります。 - 4
 - ノード上の OVS ブリッジの名前。
state属性がpresentの場合、この値は必須です。 - 5
 - マッピングの状態。マッピングを追加するには
presentに、マッピングを削除するにはabsentにする必要があります。デフォルト値はpresentです。 
注記OpenShift Virtualization は、Linux ブリッジボンディングモード 0、5、および 6 をサポートしていません。詳細は、Which bonding modes work when used with a bridge that virtual machine guests or containers connect to? を参照してください。
NetworkAttachmentDefinitionオブジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - CNI 仕様のバージョン。必要な値は
0.3.1です。 - 2
 - ネットワークの名前。
 - 3
 - 設定する CNI プラグインの名前。必要な値は
ovn-k8s-cni-overlayです。 - 4
 - ネットワークのトポロジー設定。必要な値は
localnetです。 - 5
 - Pod の新しいネットワークインターフェイスが接続されるホストの物理ネットワークインターフェイスの名前。この設定は複数の NAD で再利用できます。
physicalNetworkName は、OVS ブリッジマッピングを定義するNodeNetworkConfigurationPolicyオブジェクトのspec.desiredState.ovn.bridge-mappings.localnetフィールドの値と一致する必要があることに注意してください。 - 6
 - オプション: 最大伝送単位 (MTU) の値。値を設定しない場合、Cluster Network Operator (CNO) は、プライマリーネットワークインターフェイスのアンダーレイ MTU、Pod ネットワークのオーバーレイ MTU、および IPsec 暗号化などの有効な機能のバイト容量の差を計算して、デフォルトの MTU 値を設定します。
 - 7
 - オプション: NAD の仮想 LAN (VLAN) ID。この NAD を使用する仮想マシンには、同じ VLAN ID を使用するデバイスとのみ通信できるインターフェイスがあります。この例では、VLAN ID は
200です。 - 8
 NetworkAttachmentDefinitionオブジェクトのmetadataスタンザ内のnamespaceおよびnameフィールドの値。
マニフェストを適用します。
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
8.7.1.3. Web コンソールを使用してレイヤー 2 トポロジーの NAD を作成する リンクのコピーリンクがクリップボードにコピーされました!
Pod をレイヤー 2 オーバーレイネットワークに接続する方法を記述した Network Attachment Definition (NAD) を作成できます。
前提条件
- 
								
cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。 
手順
- 
								Web コンソールで、Networking 
NetworkAttachmentDefinitions に移動します。  - Create Network Attachment Definition をクリックします。Network Attachment Definition は、それを使用する Pod または仮想マシンと同じ namespace にある必要があります。
 - 一意の Name およびオプションの Description を入力します。
 - Network Type リストで OVN Kubernetes L2 overlay network を選択します。
 - Create をクリックします。
 
8.7.1.4. Web コンソールを使用してローカルネットトポロジーの NAD を作成する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用してネットワーク接続定義 (NAD) を作成し、ワークロードを物理ネットワークに接続できます。
前提条件
- 
								
cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。 - 
								
nmstateを使用して、ローカルネットから OVS ブリッジへのマッピングを設定します。 
手順
- 
								Web コンソールで、Networking 
NetworkAttachmentDefinitions に移動します。  - Create Network Attachment Definition をクリックします。Network Attachment Definition は、それを使用する Pod または仮想マシンと同じ namespace にある必要があります。
 - 一意の Name およびオプションの Description を入力します。
 - Network Type リストで OVN Kubernetes secondary localnet network を選択します。
 - Bridge mapping フィールドに、事前に設定されたローカルネット識別子の名前を入力します。
 - オプション: MTU を指定した値に明示的に設定できます。デフォルト値はカーネルにより選択されます。
 - オプション: VLAN 内のトラフィックをカプセル化します。デフォルト値は none です。
 - Create をクリックします。
 
8.7.2. OVN-Kubernetes セカンダリーネットワークへの仮想マシンの接続 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールまたは CLI を使用して、仮想マシンを OVN-Kubernetes セカンダリーネットワークインターフェイスに接続できます。
8.7.2.1. CLI を使用した OVN-Kubernetes セカンダリーネットワークへの仮想マシンの接続 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン設定にネットワークの詳細を含めることで、仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続できます。
前提条件
- 
								
cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。 - 
								OpenShift CLI (
oc) がインストールされている。 
手順
次の例のように、
VirtualMachineマニフェストを編集して OVN-Kubernetes セカンダリーネットワークインターフェイスの詳細を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow VirtualMachineマニフェストを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: 実行中の仮想マシンを編集している場合は、変更を有効にするためにこれを再起動する必要があります。