第7章 ネットワーク
7.1. ネットワークの概要
OpenShift Virtualization は、カスタムリソースおよびプラグインを使用して高度なネットワーク機能を提供します。仮想マシン (VM) は、Red Hat OpenShift Service on AWS ネットワークおよびそのエコシステムと統合されています。
シングルスタックの IPv6 クラスターで OpenShift Virtualization は実行できません。
次の図は、OpenShift Virtualization の一般的なネットワーク設定を示しています。他の設定も可能です。
図7.1 OpenShift Virtualization ネットワークの概要

Pod と仮想マシンは同じネットワークインフラストラクチャー上で実行するため、コンテナー化されたワークロードと仮想化されたワークロードを簡単に接続できます。
仮想マシンをデフォルトの Pod ネットワークおよび任意の数のセカンダリーネットワークに接続できます。
デフォルトの Pod ネットワークは、すべてのメンバー間の接続、サービス抽象化、IP 管理、マイクロセグメンテーション、およびその他の機能を提供します。
Multus は、互換性のある他の CNI プラグインを使用して、Pod または仮想マシンが追加のネットワークインターフェイスに接続できるようにする "メタ" CNI プラグインです。
デフォルトの Pod ネットワークはオーバーレイベースであり、基盤となるマシンネットワークを介してトンネリングされます。
マシンネットワークは、選択したネットワークインターフェイスコントローラー (NIC) のセットを介して定義できます。
セカンダリー仮想マシンネットワークは通常、VLAN カプセル化の有無にかかわらず、物理ネットワークに直接ブリッジされます。セカンダリーネットワーク用の仮想オーバーレイネットワークを作成することも可能です。
仮想マシンをアンダーレイネットワークに直接接続することは、Red Hat OpenShift Service on AWS ではサポートされていません。
セカンダリー仮想マシンネットワークは、図 1 に示すように専用の NIC セットで定義することも、マシンネットワークを使用することもできます。
7.1.1. OpenShift Virtualization ネットワークの用語集
以下の用語は、OpenShift Virtualization ドキュメント全体で使用されています。
- Container Network Interface (CNI)
- コンテナーのネットワーク接続に重点を置く Cloud Native Computing Foundation プロジェクト。OpenShift Virtualization は CNI プラグインを使用して基本的な Kubernetes ネットワーク機能を強化します。
- Multus
- 複数の CNI の存在を可能にし、Pod または仮想マシンが必要なインターフェイスを使用できるようにする "メタ" CNI プラグイン。
- カスタムリソース定義 (CRD)
- カスタムリソースの定義を可能にする Kubernetes API リソース、または CRD API リソースを使用して定義されるオブジェクト。
- ネットワーク接続定義 (NAD)
- Multus プロジェクトによって導入された CRD。Pod、仮想マシン、および仮想マシンインスタンスを 1 つ以上のネットワークに接続できるようにします。
7.1.2. デフォルトの Pod ネットワークの使用
- 仮想マシンをデフォルトの Pod ネットワークに接続する
- 各仮想マシンは、デフォルトの内部 Pod ネットワークにデフォルトで接続されます。仮想マシン仕様を編集することで、ネットワークインターフェイスを追加または削除できます。
- 仮想マシンをサービスとして公開する
-
Service
オブジェクトを作成することで、クラスター内またはクラスター外に仮想マシンを公開できます。
7.1.3. 仮想マシンのセカンダリーネットワークインターフェイスの設定
OVN-KubernetesContainer Network Interface (CNI) プラグインを使用して、仮想マシンをセカンダリーネットワークに接続できます。セカンダリーネットワークインターフェイスに接続する場合、仮想マシン仕様でプライマリー Pod ネットワークを指定する必要はありません。
- OVN-Kubernetes セカンダリーネットワークへの仮想マシンの接続
仮想マシンは Open Virtual Network (OVN)-Kubernetes セカンダリーネットワークに接続できます。OpenShift Virtualization は、OVN-Kubernetes の
layer2
トポロジーをサポートします。layer2
トポロジーは、クラスター全体の論理スイッチによってワークロードを接続します。OVN-Kubernetes CNI プラグインは、Geneve (Generic Network Virtualization Encapsulation) プロトコルを使用して、ノード間にオーバーレイネットワークを作成します。このオーバーレイネットワークを使用すると、追加の物理ネットワークインフラストラクチャーを設定することなく、さまざまなノード上の仮想マシンを接続できます。
OVN-Kubernetes セカンダリーネットワークを設定し、そのネットワークに仮想マシンを接続するには、次の手順を実行します。
- ネットワークアタッチメント定義 (NAD) を作成して、OVN-Kubernetes セカンダリーネットワークの設定 を行います。
- ネットワークの詳細を仮想マシン仕様に追加して、仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続 します。
- ホットプラグ対応のセカンダリーネットワークインターフェイス
-
仮想マシンを停止せずに、セカンダリーネットワークインターフェイスを追加または削除できます。OpenShift Virtualization は、ブリッジバインディングおよび OVN-Kubernetes
layer2
トポロジーを使用するセカンダリーインターフェイスのホットプラグとホットアンプラグをサポートしています。
- IP アドレスの設定と表示
- 仮想マシンを作成するときに、セカンダリーネットワークインターフェイスの IP アドレスを設定できます。IP アドレスは、cloud-init でプロビジョニングされます。仮想マシンの IP アドレスは、Red Hat OpenShift Service on AWS Web コンソールまたはコマンドラインを使用して表示できます。ネットワーク情報は QEMU ゲストエージェントによって収集されます。
7.1.4. OpenShift Service Mesh との統合
- 仮想マシンのサービスメッシュへの接続
- OpenShift Virtualization は OpenShift Service Mesh と統合されています。Pod と仮想マシン間のトラフィックを監視、視覚化、制御できます。
7.1.5. MAC アドレスプールの管理
- ネットワークインターフェイスの MAC アドレスプールの管理
- KubeMacPool コンポーネントは、共有 MAC アドレスプールから仮想マシンネットワークインターフェイスの MAC アドレスを割り当てます。これにより、各ネットワークインターフェイスに一意の MAC アドレスが確実に割り当てられます。その仮想マシンから作成された仮想マシンインスタンスは、再起動後も割り当てられた MAC アドレスを保持します。
7.1.6. SSH アクセスの設定
- 仮想マシンへの SSH アクセスの設定
次の方法を使用して、仮想マシンへの SSH アクセスを設定できます。
SSH キーペアを作成し、公開キーを仮想マシンに追加し、秘密キーを使用して
virtctl ssh
コマンドを実行して仮想マシンに接続します。cloud-init データソースを使用して設定できるゲストオペレーティングシステムを使用して、実行時または最初の起動時に Red Hat Enterprise Linux (RHEL) 9 仮想マシンに公開 SSH キーを追加できます。
virtctl port-foward
コマンドを.ssh/config
ファイルに追加し、OpenSSH を使用して仮想マシンに接続します。サービスを作成し、そのサービスを仮想マシンに関連付け、サービスによって公開されている IP アドレスとポートに接続します。
セカンダリーネットワークを設定し、仮想マシンをセカンダリーネットワークインターフェイスに接続し、割り当てられた IP アドレスに接続します。