11.3. 仮想マシンをプライマリーユーザー定義ネットワークに接続する
OpenShift Container Platform Web コンソールまたは CLI を使用して、仮想マシンを仮想マシンのプライマリーインターフェイス上のユーザー定義ネットワーク (UDN) に接続できます。プライマリーのユーザー定義ネットワークは、指定された namespace 内のデフォルトの Pod ネットワークを置き換えます。Pod ネットワークとは異なり、プロジェクトごとにプライマリー UDN を定義でき、各プロジェクトは特定のサブネットとトポロジーを使用できます。
				OpenShift Virtualization は、namespace スコープの UserDefinedNetwork とクラスタースコープの ClusterUserDefinedNetwork カスタムリソース定義 (CRD) をサポートします。
			
				クラスター管理者は、プライマリー UserDefinedNetwork CRD を設定して、ネットワークポリシーを必要とせずに、テナント namespace を他の namespace から分離するテナントネットワークを作成できます。さらに、クラスター管理者は ClusterUserDefinedNetwork CRD を使用して、複数の namespace にわたる共有 OVN ネットワークを作成できます。
			
					ユーザー定義ネットワークで使用する namespace を作成する場合は、k8s.ovn.org/primary-user-defined-network ラベルを追加する必要があります。
				
レイヤー 2 トポロジーでは、OVN-Kubernetes はノード間にオーバーレイネットワークを作成します。このオーバーレイネットワークを使用すると、追加の物理ネットワークインフラストラクチャーを設定することなく、さまざまなノード上の仮想マシンを接続できます。
レイヤー 2 トポロジーでは、ライブマイグレーション中に永続的な IP アドレスがクラスターノード間で保持されるため、ネットワークアドレス変換 (NAT) を必要とせずに仮想マシンをシームレスに移行できます。
プライマリー UDN を実装する前に、次の制限を考慮する必要があります。
- 
						virtctl sshコマンドを使用して仮想マシンへの SSH アクセスを設定できません。
- 
						oc port-forwardコマンドを使用してポートを仮想マシンに転送できません。
- ヘッドレスサービスを使用して仮想マシンにアクセスできません。
- 仮想マシンヘルスチェックを設定するために readiness プローブと liveness プローブを定義できません。
11.3.1. Web コンソールを使用したプライマリーユーザー定義ネットワークの作成
					OpenShift Container Platform Web コンソールを使用して、プライマリー namespace スコープの UserDefinedNetwork またはクラスタースコープの ClusterUserDefinedNetwork CRD を作成できます。UDN は、ネットワークに関連付けられた namespace で作成する Pod と仮想マシンのデフォルトのプライマリーネットワークとして機能します。
				
11.3.1.1. Web コンソールを使用したユーザー定義ネットワークの namespace の作成
OpenShift Container Platform Web コンソールを使用して、プライマリーユーザー定義ネットワーク (UDN) で使用する namespace を作成できます。
前提条件
- 
								cluster-adminパーミッションを持つユーザーとして OpenShift Container Platform Web コンソールにログインしている。
手順
- 
								Administrator パースペクティブから、Administration Namespaces をクリックします。 
- Create Namespace をクリックします。
- Name フィールドに、namespace の名前を指定します。名前は、小文字の英数字または '-' で構成される必要があり、先頭と末尾は英数字でなければなりません。
- 
								Labels フィールドに、k8s.ovn.org/primary-user-defined-networkラベルを追加します。
- 
								オプション: namespace を既存のクラスタースコープ UDN で使用する場合は、ClusterUserDefinedNetworkカスタムリソースのspec.namespaceSelectorフィールドで定義されている適切なラベルを追加します。
- オプション: デフォルトのネットワークポリシーを指定します。
- namespace を作成するには、Create をクリックします。
11.3.1.2. Web コンソールを使用したプライマリー namespace スコープのユーザー定義ネットワークの作成
						OpenShift Container Platform Web コンソールで UserDefinedNetwork カスタムリソースを作成することにより、プロジェクト namespace に分離されたプライマリーネットワークを作成できます。
					
前提条件
- 
								cluster-admin権限を持つユーザーとして OpenShift Container Platform Web コンソールにアクセスできる。
- 
								namespace を作成し、k8s.ovn.org/primary-user-defined-networkラベルを適用している。詳細は、「Web コンソールを使用したユーザー定義ネットワークの namespace の作成」を参照してください。
手順
- 
								Administrator パースペクティブから、Networking UserDefinedNetworks をクリックします。 
- Create UserDefinedNetwork をクリックします。
- Project name リストから、以前に作成した namespace を選択します。
- Subnet フィールドに値を指定します。
- Create をクリックします。ユーザー定義ネットワークは、この namespace で作成する Pod と仮想マシンのデフォルトのプライマリーネットワークとして機能します。
11.3.1.3. Web コンソールを使用したプライマリークラスタースコープのユーザー定義ネットワークの作成
						OpenShift Container Platform Web コンソールで ClusterUserDefinedNetwork カスタムリソースを作成することで、複数の namespace を同じプライマリーユーザー定義ネットワーク (UDN) に接続できます。
					
前提条件
- 
								cluster-adminパーミッションのあるユーザーとして OpenShift Container Platform Web コンソールにアクセスできる。
手順
- 
								Administrator パースペクティブから、Networking UserDefinedNetworks をクリックします。 
- Create リストから、ClusterUserDefinedNetwork を選択します。
- Name フィールドで、クラスタースコープの UDN の名前を指定します。
- Subnet フィールドに値を指定します。
- Project(s) Match Labels フィールドに適切なラベルを追加して、クラスター UDN が適用される namespace を選択します。
- Create をクリックします。クラスタースコープの UDN は、ステップ 5 で指定したラベルが含まれる namespace にある Pod および仮想マシンのデフォルトのプライマリーネットワークとして機能します。
11.3.2. CLI を使用したプライマリーユーザー定義ネットワークの作成
					CLI を使用して、プライマリー UserDefinedNetwork または ClusterUserDefinedNetwork CRD を作成できます。
				
11.3.2.1. CLI を使用したユーザー定義ネットワークの namespace の作成
CLI を使用して、プライマリーユーザー定義ネットワーク (UDN) で使用する namespace を作成できます。
前提条件
- 
								cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- 次の例のような YAML ファイルとして - Namespaceオブジェクトを作成します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- namespace を UDN に関連付けるには、このラベルが必要です。namespace を既存のクラスター UDN で使用する場合は、ClusterUserDefinedNetworkカスタムリソースのspec.namespaceSelectorフィールドで定義されている適切なラベルも追加する必要があります。
 
- 次のコマンドを実行して、 - Namespaceマニフェストを適用します。- oc apply -f <filename>.yaml - oc apply -f <filename>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
11.3.2.2. CLI を使用したプライマリー namespace スコープのユーザー定義ネットワークの作成
CLI を使用して、プロジェクト namespace に分離されたプライマリーネットワークを作成できます。仮想マシンライブマイグレーションのサポートを確保にするには、OVN-Kubernetes レイヤー 2 トポロジーを使用し、ユーザー定義ネットワーク (UDN) 設定で永続的な IP アドレスの割り当てを有効にする必要があります。
前提条件
- 
								OpenShift CLI (oc) がインストールされている。
- 
								namespace を作成し、k8s.ovn.org/primary-user-defined-networkラベルを適用している。
手順
- カスタムネットワーク設定を指定するには、 - UserDefinedNetworkオブジェクトを作成します。- UserDefinedNetworkマニフェストの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- UserDefinedNetworkカスタムリソースの名前を指定します。
- 2
- 仮想マシンが配置されている namespace を指定します。namespace にはk8s.ovn.org/primary-user-defined-networkラベルが必要です。namespace としてdefault、openshift-*namespace は使用できません。また Cluster Network Operator (CNO) によって定義されたグローバル namespace と同じにすることはできません。
- 3
- ネットワークのトポロジー設定を指定します。必要な値はLayer2です。Layer2トポロジーは、すべてのノードで共有される論理スイッチを作成します。
- 4
- UDN がプライマリーかセカンダリーかを指定します。Primaryロールとは、UDN が仮想マシンのプライマリーネットワークとして機能し、すべてのデフォルトトラフィックがこのネットワークを通過することを意味します。
- 5
- 仮想ワークロードが再起動および移行後も、同じ IP アドレスが使用されるように指定します。ipam.lifecycle: Persistentが指定されている場合は、spec.layer2.subnetsフィールドが必須です。
 
- 次のコマンドを実行して、 - UserDefinedNetworkマニフェストを適用します。- oc apply -f --validate=true <filename>.yaml - $ oc apply -f --validate=true <filename>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
11.3.2.3. CLI を使用したプライマリークラスタースコープのユーザー定義ネットワークの作成
CLI を使用して、複数の namespace を同じプライマリーユーザー定義ネットワーク (UDN) に接続して、ネイティブテナント分離を実現できます。
前提条件
- 
								cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- カスタムネットワーク設定を指定するには、 - ClusterUserDefinedNetworkオブジェクトを作成します。- ClusterUserDefinedNetworkマニフェストの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- ClusterUserDefinedNetworkカスタムリソースの名前を指定します。
- 2
- クラスター UDN が適用される namespace のセットを指定します。namespace セレクターは、default、openshift-*namespace、または Cluster Network Operator (CNO) によって定義されたグローバル namespace を参照できません。
- 3
- セレクターのタイプを指定します。この例では、matchExpressionsセレクターは、kubernetes.io/metadata.nameラベルと、値がred-namespaceまたはblue-namespaceのオブジェクトを選択します。
- 4
- 演算子の種類を指定します。可能な値はIn、NotIn、Existsです。
- 5
- ネットワークのトポロジー設定を指定します。必要な値はLayer2です。Layer2トポロジーは、すべてのノードで共有される論理スイッチを作成します。
- 6
- UDN がプライマリーかセカンダリーかを指定します。Primaryロールとは、UDN が仮想マシンのプライマリーネットワークとして機能し、すべてのデフォルトトラフィックがこのネットワークを通過することを意味します。
 
- 次のコマンドを実行して、 - ClusterUserDefinedNetworkマニフェストを適用します。- oc apply -f --validate=true <filename>.yaml - $ oc apply -f --validate=true <filename>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
11.3.3. CLI を使用して仮想マシンをプライマリーユーザー定義ネットワークにアタッチする
Pod ネットワークの割り当てを要求し、インターフェイスバインディングを設定することで、仮想マシン (VM) をプライマリーユーザー定義ネットワーク (UDN) に接続できます。
前提条件
- 
							OpenShift CLI (oc) がインストールされている。
手順
- 次の例のように、 - VirtualMachineマニフェストを編集して UDN インターフェイスの詳細を追加します。- VirtualMachineマニフェストの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、 - VirtualMachineマニフェストを適用します。- oc apply -f <filename>.yaml - $ oc apply -f <filename>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow