9.3. 仮想マシンをプライマリーユーザー定義ネットワークに接続する
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールまたは CLI を使用して、仮想マシン (VM) を仮想マシンのプライマリーインターフェイス上のユーザー定義ネットワーク (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コマンドを使用してポートを仮想マシンに転送できません。 - ヘッドレスサービスを使用して仮想マシンにアクセスできません。
9.3.1. Web コンソールを使用したプライマリーユーザー定義ネットワークの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールを使用して、プライマリー namespace スコープの UserDefinedNetwork またはクラスタースコープの ClusterUserDefinedNetwork CRD を作成できます。UDN は、ネットワークに関連付けられた namespace で作成する Pod と仮想マシンのデフォルトのプライマリーネットワークとして機能します。
9.3.1.1. Web コンソールを使用したユーザー定義ネットワークの namespace の作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールを使用して、プライマリーユーザー定義ネットワーク (UDN) で使用する namespace を作成できます。
前提条件
-
cluster-admin権限を持つユーザーとして、Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールにログインする。
手順
-
Administrator パースペクティブから、Administration
Namespaces をクリックします。 - Create Namespace をクリックします。
- Name フィールドに、namespace の名前を指定します。名前は、小文字の英数字または '-' で構成される必要があり、先頭と末尾は英数字でなければなりません。
-
Labels フィールドに、
k8s.ovn.org/primary-user-defined-networkラベルを追加します。 -
オプション: namespace を既存のクラスタースコープ UDN で使用する場合は、
ClusterUserDefinedNetworkカスタムリソースのspec.namespaceSelectorフィールドで定義されている適切なラベルを追加します。 - オプション: デフォルトのネットワークポリシーを指定します。
- namespace を作成するには、Create をクリックします。
9.3.1.2. Web コンソールを使用したプライマリー namespace スコープのユーザー定義ネットワークの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールで UserDefinedNetwork カスタムリソースを作成することで、プロジェクトの namespace に分離されたプライマリーネットワークを作成できます。
前提条件
-
cluster-admin権限を持つユーザーとして、Red Hat OpenShift Service on AWS Web クラシックアーキテクチャーのコンソールにアクセスできる。 -
namespace を作成し、
k8s.ovn.org/primary-user-defined-networkラベルを適用している。詳細は、「Web コンソールを使用したユーザー定義ネットワークの namespace の作成」を参照してください。
手順
-
Administrator パースペクティブから、Networking
UserDefinedNetworks をクリックします。 - Create UserDefinedNetwork をクリックします。
- Project name リストから、以前に作成した namespace を選択します。
- Subnet フィールドに値を指定します。
- Create をクリックします。ユーザー定義ネットワークは、この namespace で作成する Pod と仮想マシンのデフォルトのプライマリーネットワークとして機能します。
9.3.1.3. Web コンソールを使用したプライマリークラスタースコープのユーザー定義ネットワークの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャーの Web コンソールで ClusterUserDefinedNetwork カスタムリソースを作成することで、複数の namespace を同じプライマリーユーザー定義ネットワーク (UDN) に接続できます。
前提条件
-
cluster-admin権限を持つユーザーとして、Red Hat OpenShift Service on AWS Web クラシックアーキテクチャーのコンソールにアクセスできる。
手順
-
Administrator パースペクティブから、Networking
UserDefinedNetworks をクリックします。 - Create リストから、ClusterUserDefinedNetwork を選択します。
- Name フィールドで、クラスタースコープの UDN の名前を指定します。
- Subnet フィールドに値を指定します。
- Project(s) Match Labels フィールドに適切なラベルを追加して、クラスター UDN が適用される namespace を選択します。
- Create をクリックします。クラスタースコープの UDN は、ステップ 5 で指定したラベルが含まれる namespace にある Pod および仮想マシンのデフォルトのプライマリーネットワークとして機能します。
9.3.2. CLI を使用したプライマリーユーザー定義ネットワークの作成 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して、プライマリー UserDefinedNetwork または ClusterUserDefinedNetwork CRD を作成できます。
9.3.2.1. CLI を使用したユーザー定義ネットワークの namespace の作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して、プライマリーユーザー定義ネットワーク (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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.3. 仮想マシンをプライマリーユーザー定義ネットワークに接続する リンクのコピーリンクがクリップボードにコピーされました!
Pod ネットワークの割り当てを要求し、インターフェイスバインディングを設定することで、仮想マシン (VM) をプライマリーユーザー定義ネットワーク (UDN) に接続できます。
OpenShift Virtualization は、ネットワークインターフェイスを仮想マシンに接続するために次のネットワークバインディングプラグインをサポートしています。
- Layer 2 bridge
- Layer 2 bridge バインディングは、仮想マシンの仮想インターフェイスと UDN の仮想スイッチの間に直接の Layer 2 接続を作成します。
- Passt
Plug a Simple Socket Transport (passt) バインディングは、Pod ネットワークとシームレスに統合されるユーザー空間ネットワークソリューションを提供し、Red Hat OpenShift Service on AWS クラシックアーキテクチャーを適切に統合します。
Passt バインディングには次の利点があります。
- readiness および liveness HTTP プローブを定義して、VM ヘルスチェックを設定できます。
- Red Hat Advanced Cluster Security を使用すると、詳細にわたるインサイトでクラスター内の TCP トラフィックを監視できます。
passt バインディングプラグインを使用して仮想マシンをプライマリー UDN に接続する機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
9.3.3.1. Web コンソールを使用して仮想マシンをプライマリーユーザー定義ネットワークに接続する リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラシックアーキテクチャー Web コンソールを使用して、仮想マシン (VM) をプライマリーユーザー定義ネットワーク (UDN) に接続できます。プライマリー UDN が設定された namespace で作成される仮想マシンは、Layer 2 bridge ネットワークバインディングプラグインで UDN に自動的に割り当てられます。
Plug a Simple Socket Transport (passt) バインディングを使用して仮想マシンをプライマリー UDN に接続するには、プラグインを有効にし、Web コンソールで仮想マシンネットワークインターフェイスを設定します。
passt バインディングプラグインを使用して仮想マシンをプライマリー UDN に接続する機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- Red Hat OpenShift Service on AWS クラシックアーキテクチャー Web コンソールにログインしている。
手順
passt ネットワークバインディングプラグインのテクノロジープレビュー機能を有効にするには、次の手順に従います。
- Virtualization パースペクティブから、Overview をクリックします。
- Virtualization ページで、Settings タブをクリックします。
- Preview features をクリックし、Enable Passt binding for primary user-defined networks を on に設定します。
- Virtualization パースペクティブから、VirtualMachines をクリックします。
- 仮想マシンを選択して、VirtualMachine details ページを開きます。
- Configuration タブをクリックします。
- Network をクリックします。
-
Network interfaces ページの Options メニュー
をクリックし、Edit を選択します。
- Edit network interface ダイアログで、Network リストからデフォルトの Pod ネットワーク割り当てを選択します。
- Advanced を展開し、Passt バインディングを選択します。
- Save をクリックします。
- 仮想マシンが実行中の場合は、再起動して変更を適用します。
9.3.3.2. CLI を使用して仮想マシンをプライマリーユーザー定義ネットワークにアタッチする リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して、仮想マシン (VM) をプライマリーユーザー定義ネットワーク (UDN) に接続できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
次の例のように、
VirtualMachineマニフェストを編集して UDN インターフェイスの詳細を追加します。VirtualMachineマニフェストの例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: Plug a Simple Socket Transport (passt) ネットワークバインディングプラグインを使用している場合は、次のコマンドを実行して、
HyperConvergedカスタムリソース (CR) でhco.kubevirt.io/deployPasstNetworkBindingアノテーションをtrueに設定します。oc annotate hco kubevirt-hyperconverged -n kubevirt-hyperconverged hco.kubevirt.io/deployPasstNetworkBinding=true --overwrite
$ oc annotate hco kubevirt-hyperconverged -n kubevirt-hyperconverged hco.kubevirt.io/deployPasstNetworkBinding=true --overwriteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要passt バインディングプラグインを使用して仮想マシンをプライマリー UDN に接続する機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
次のコマンドを実行して、
VirtualMachineマニフェストを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow