第9章 ネットワーキング


9.1. ネットワークの概要

仮想マシン (VM) をクラスターネットワークに接続するには、OpenShift Virtualization でデフォルトおよびユーザー定義のネットワークオプションを設定します。

OpenShift Virtualization は、OVN-Kubernetes localnet ネットワーク、Linux ブリッジ Container Network Interface (CNI) プラグイン、および Single Root I/O Virtualization (SR-IOV) ネットワークデバイスに接続された仮想マシン向けに、シングルスタック IPv6 クラスターをサポートします。

次の図は、OpenShift Virtualization の一般的なネットワーク設定を示しています。他の設定も可能です。

図9.1 OpenShift Virtualization ネットワークの概要

OpenShift Virtualization ネットワークアーキテクチャー

20 Pod と仮想マシンは同じネットワークインフラストラクチャー上で動作するため、コンテナー化されたワークロードと仮想化されたワークロードを簡単に接続できます。

20 仮想マシンをデフォルトの Pod ネットワークおよび任意の数のセカンダリーネットワークに接続できます。

20 デフォルトの Pod ネットワークは、すべてのメンバー間の接続、サービス抽象化、IP 管理、マイクロセグメンテーション、およびその他の機能を提供します。

注記

パブリッククラウド上に仮想マシンネットワークをデプロイする場合、以下のソリューションから選択できます。

  • デフォルトの Pod ネットワーク: そのまま使用できる標準設定。
  • プライマリーレイヤー 2 ユーザー定義ネットワーク (UDN): 推奨されるアプローチ。これは、仮想マシン向けのフラットなレイヤー 2 ネットワーク、固定 IP アドレス、east-west 接続を提供します。
  • セカンダリーレイヤー 2 ネットワーク接続定義 (NAD): 追加の物理ネットワークインフラストラクチャーを設定することなく、異なるノード上の仮想マシンを接続するための分離されたレイヤー 2 オーバーレイネットワークを提供します。

デフォルトの Pod ネットワークとプライマリーのユーザー定義ネットワークの場合、Egress トラフィックはネットワークアドレス変換 (NAT) に依存します。Ingress トラフィックには、クラウドプロバイダーのネイティブロードバランサーと統合されたロードバランサーサービスが必要です。

レイヤー 2 セカンダリーネットワークは、外部への Ingress または Egress ルーティングを提供しません。

20 Multus は、互換性のある他の CNI プラグインを使用して、Pod または仮想マシンが追加のネットワークインターフェイスに接続できるようにする "メタ" CNI プラグインです。

20 デフォルトの Pod ネットワークはオーバーレイベースであり、基盤となるマシンネットワークを介してトンネリングされます。

20 選択したネットワークインターフェイスコントローラー (NIC) のセット上で、マシンネットワークを定義できます。

20 セカンダリー仮想マシンネットワークは通常、VLAN カプセル化の有無にかかわらず、物理ネットワークに直接ブリッジされます。セカンダリーネットワーク用の仮想オーバーレイネットワークを作成することも可能です。

重要

以下の機能はパブリッククラウドではサポートされていません。

  • 仮想マシンをアンダーレイネットワークに直接接続する
  • Ethernet Virtual Private Network (EVPN) と BGP を使用して、プライマリークラスタースコープの UDN のレイヤー 2 接続を拡張する

20 セカンダリー仮想マシンネットワークは、図 1 に示すように専用の NIC セットで定義することも、マシンネットワークを使用することもできます。

9.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 リソースを使用して定義されるオブジェクト。
NetworkAttachmentDefinition
Multus プロジェクトによって導入された CRD。Pod、仮想マシン、および仮想マシンインスタンスを 1 つ以上のネットワークに接続できるようにします。
UserDefinedNetwork
ユーザー定義ネットワーク (UDN) API によって導入された namespace スコープの CRD。これを使用して、テナント namespace を他の namespace から分離するテナントネットワークを作成できます。
ClusterUserDefinedNetwork
ユーザー定義ネットワーク API によって導入されたクラスタースコープの CRD。これは、クラスター管理者が複数の namespace 全体で共有ネットワークを作成するために使用できます。
NodeNetworkConfigurationPolicy
nmstate プロジェクトによって導入された CRD。ノード上で要求されるネットワーク設定を表します。NodeNetworkConfigurationPolicy マニフェストをクラスターに適用して、インターフェイスの追加および削除など、ノードネットワーク設定を更新します。

9.1.2. オーバーレイネットワーク

仮想マシン (VM) が標準の OpenShift Container Platform ネットワークモデルを使用して確実に接続できるようにするには、クラスター全体の接続性を確保するために、デフォルトの Pod ネットワークを設定します。

オーバーレイネットワークは、物理ネットワークの上に柔軟なソフトウェア定義の接続レイヤーを提供し、基盤となるハードウェアを変更することなく、ネットワークのセグメンテーション、カスタムルーティング、簡素化された管理などのサービスを可能にします。

仮想マシンをデフォルトの Pod ネットワークに接続する

各仮想マシンは、デフォルトの内部 Pod ネットワークにデフォルトで接続されます。仮想マシン仕様を編集することで、ネットワークインターフェイスを追加または削除できます。

ヘッドレスサービスを使用すると、安定した完全修飾ドメイン名 (FQDN) 上のデフォルトの内部 Pod ネットワークに接続されている仮想マシン (VM) にアクセスできます。

仮想マシンをカスタムプライマリーオーバーレイネットワークに接続する

ワークロードに対して、分離された柔軟なトラフィックパスを提供するために、マルチ namespace 接続をサポートするプライマリーユーザー定義ネットワーク (UDN) を設定します。

クラスター管理者は、プライマリー UserDefinedNetwork CRD を設定して、ネットワークポリシーを必要とせずに、テナント namespace を他の namespace から分離するテナントネットワークを作成できます。さらに、クラスター管理者は ClusterUserDefinedNetwork CRD を使用して、複数の namespace にわたって共有 OVN layer 2 ネットワークを作成できます。

layer 2 オーバーレイトポロジーを使用したユーザー定義ネットワークは、仮想マシンのワークロードに役立ち、物理ネットワークアクセスが制限されている環境 (例: パブリッククラウド) では、セカンダリーネットワークの適切な代替手段となります。layer 2 トポロジーにより、ネットワークアドレス変換 (NAT) を必要とせずに仮想マシンをシームレスに移行できるほか、再起動後やライブマイグレーション中に保持される永続的な IP アドレスも提供されます。

仮想マシンをカスタムセカンダリーオーバーレイネットワークに接続する
layer 2 トポロジーを持つセカンダリー UDN を設定して、異なるノードにまたがる仮想マシングループ間でプライベートで隔離された通信チャネルを作成します。layer 2 トポロジーは、クラスター全体の論理スイッチでワークロードを接続します。OVN-Kubernetes CNI プラグインは、Geneve (Generic Network Virtualization Encapsulation) プロトコルを使用して、ノード間にオーバーレイネットワークを作成します。このオーバーレイネットワークを使用すると、追加の物理ネットワークインフラストラクチャーを設定することなく、さまざまなノード上の仮想マシンを接続できます。
仮想マシンをサービスとして公開することで、外部 Ingress を設定する
Service オブジェクトを作成することで、クラスター内またはクラスター外に仮想マシンを公開できます。オンプレミスクラスターの場合、MetalLB Operator を使用して負荷分散サービスを設定できます。OpenShift Container Platform Web コンソールまたは CLI を使用して、MetalLB Operator をインストールできます。

9.1.3. 仮想マシンの物理ネットワークアクセス方法

仮想マシン (VM) がインターネットや他の物理デバイスにアクセスできるようにするには、ノードネットワークを設定し、セカンダリーネットワークを定義して、仮想マシンをセカンダリーネットワークに接続します。

Open vSwitch ブリッジを使用して仮想マシンを物理ネットワークに接続する

OVN-Kubernetes のセカンダリーユーザー定義ネットワーク (UDN) を localnet トポロジーで設定することで、仮想マシンを物理ネットワークインフラストラクチャーに接続できます。

localnet トポロジーは、セカンダリーネットワークを物理アンダーレイに接続します。これにより、east-west クラスタートラフィックとクラスター外で実行されているサービスへのアクセスの両方が可能になります。ただし、クラスターノード上の基盤となる Open vSwitch (OVS) ブリッジの追加設定が必要です。

クラスター管理者は、以下の手順を使用して localnet UDN を設定できます。

  1. クラスターノード全体にわたってステートドリブンのネットワーク設定を提供する Kubernetes NMState Operator をインストールします。
  2. NodeNetworkConfigurationPolicy カスタムリソース (CR) を使用して OVS ブリッジを設定し、ノードに適切なブリッジマッピングを追加します。
  3. UDN API の ClusterUserDefinedNetwork CR を使用して、前の手順で設定した OVS ブリッジを介してワークロードをアンダーレイネットワークに接続します。
Linux ブリッジを使用して仮想マシンを物理ネットワークに接続する

Kubernetes NMState Operator をインストールして、セカンダリーネットワークの Linux ブリッジ、VLAN、およびボンディングを設定します。基盤となる物理ネットワークに仮想マシンを接続する方法としては、OVN-Kubernetes の localnet トポロジーが推奨されます。ただし、OpenShift Virtualization は Linux ブリッジネットワークもサポートしています。

注記

Linux ブリッジネットワークを使用する場合、デフォルトのマシンネットワークに直接接続することはできません。

次の手順を実行すると、Linux ブリッジネットワークを作成し、そのネットワークに仮想マシンを接続できます。

  1. Linux ブリッジノードネットワーク設定ポリシー (NNCP) を作成して、ノードネットワークを準備します。
  2. Network Attachment Definition (NAD) を作成して、セカンダリー Linux ブリッジネットワークを定義します。
  3. 仮想マシンを Linux ブリッジネットワークにアタッチします。
SR-IOV デバイスを使用して仮想マシンを物理ネットワークに接続する

高帯域幅または低レイテンシーを必要とするアプリケーション向けに、ベアメタルまたは Red Hat OpenStack Platform (RHOSP) インフラストラクチャーにインストールされた OpenShift Container Platform クラスター上の追加ネットワークで、Single Root I/O Virtualization (SR-IOV) ネットワークデバイスを使用できます。

SR-IOV ネットワークデバイスとネットワークアタッチメントを管理するには、クラスターに SR-IOV Network Operator をインストールする必要があります。

次の手順を実行すると、仮想マシンを SR-IOV ネットワークに接続できます。

  1. SriovNetworkNodePolicy CR を作成して、SR-IOV 物理ネットワークデバイスを設定します。
  2. SriovNetwork オブジェクトを作成して、SR-IOV セカンダリーネットワークを定義します。
  3. 仮想マシン設定にネットワークの詳細を追加して、仮想マシンを SR-IOV ブリッジネットワークに接続します。
DPDK および SR-IOV との仮想マシン接続

Data Plane Development Kit (DPDK) は、高速パケット処理用のライブラリーとドライバーのセットを提供するものです。以下の手順を実行することで、クラスターと仮想マシンを設定して、SR-IOV ネットワーク上で DPDK ワークロードを実行できます。

  1. ノードのハードウェアを設定します。
  2. DPDK 用に仮想マシンの namespace を設定します。
  3. DPDK アプリケーションを実行するように、仮想マシンとゲスト OS を設定します。

9.1.3.1. Linux ブリッジ CNI と OVN-Kubernetes ローカルネットの比較

以下の表は、Linux ブリッジ CNI と OVN-Kubernetes ローカルネットトポロジーを使用した場合に利用できる機能を比較したものです。

表9.1 Linux ブリッジ CNI と OVN-Kubernetes localnet トポロジーの比較
機能Linux ブリッジ CNI で利用可能OVN-Kubernetes localnet で利用可能

アンダーレイネイティブネットワークへの layer 2 アクセス

セカンダリーネットワークインターフェイスコントローラー (NIC) のみ

はい

アンダーレイ VLAN への layer 2 アクセス

はい

はい

layer 2 トランクアクセス

はい

いいえ

ネットワークポリシー

いいえ

はい

MAC スプーフィングフィルタリング

はい

はい (常時オン)

9.1.4. 仮想マシンネットワークインターフェイス管理オプション

仮想マシン (VM) のネットワーク設定を管理し、アプリケーションのダウンタイムを発生させることなく接続性を拡張し、ネットワークレイテンシーのトラブルシューティングを行い、MAC アドレスプールの定義と管理の自動化、IP アドレスの設定、およびライブマイグレーショントラフィックの分離を行います。

ホットプラグ対応セカンダリーネットワークインターフェイス
仮想マシンを停止せずに、セカンダリーネットワークインターフェイスを追加または削除できます。OpenShift Virtualization は、ブリッジバインディングおよび VirtIO デバイスドライバーを使用するセカンダリーインターフェイスのホットプラグとホットアンプラグをサポートしています。OpenShift Virtualization は、SR-IOV バインディングを使用するセカンダリーインターフェイスのホットプラグもサポートしています。
外部 FQDN を使用して仮想マシンにアクセスする
完全修飾ドメイン名 (FQDN) を使用して、クラスターの外部からセカンダリーネットワークインターフェイスに接続されている仮想マシン (VM) にアクセスできます。外部 FQDN を使用して仮想マシンに接続するには、DNS サーバーを設定し、クラスター FQDN を取得してから、ssh コマンドを使用して仮想マシンに接続する必要があります。
仮想マシンネットワークインターフェイスのリンク状態を管理する

OpenShift Container Platform の Web コンソールまたはコマンドラインを使用して、プライマリーまたはセカンダリー仮想マシンネットワークインターフェイスのリンク状態を管理できます。リンク状態を指定することで、仮想ネットワークインターフェイスコントローラー (vNIC) をネットワークに論理的に接続または切断できます。

注記

OpenShift Virtualization は、Single Root I/O Virtualization (SR-IOV) セカンダリーネットワークインターフェイスのリンク状態管理をサポートしておらず、それらのリンク状態は報告されません。

仮想マシン IP アドレスの設定と表示
仮想マシンを作成する際に、セカンダリーネットワークインターフェイスの IP アドレスを設定できます。IP アドレスは、cloud-init でプロビジョニングされます。仮想マシンの IP アドレスは、OpenShift Container Platform Web コンソールまたはコマンドラインを使用して表示できます。ネットワーク情報は QEMU ゲストエージェントによって収集されます。
仮想マシンネットワークインターフェイスの MAC アドレスプールを管理する
KubeMacPool コンポーネントは、共有 MAC アドレスプールから仮想マシンネットワークインターフェイスの MAC アドレスを割り当てます。これにより、各ネットワークインターフェイスに一意の MAC アドレスが確実に割り当てられます。その仮想マシンから作成された仮想マシンインスタンスは、再起動後も割り当てられた MAC アドレスを保持します。
ライブマイグレーション専用のネットワークを設定する
ライブマイグレーション専用の Multus ネットワークを設定できます。専用ネットワークは、ライブマイグレーション中のテナントワークロードに対するネットワークの飽和状態の影響を最小限に抑えます。
Web コンソールでネットワークの詳細を表示します
VirtualMachine details ページで、Configuration Network タブに、仮想マシンのネットワークインターフェイスが表示されます。各ネットワーク名はリンクになっており、リンクをクリックすると、ネットワークアタッチメント定義 (NAD)、ユーザー定義ネットワーク (UDN)、クラスターユーザー定義ネットワーク (CUDN) など、関連するネットワークリソースの詳細ページが開きます。デフォルトの Pod ネットワークを使用するネットワークでは、対応するネットワークリソースが存在しないため、Pod networking がプレーンテキストとして表示されます。

9.1.5. 仮想マシンネットワークインターフェイスタブからのネットワーク詳細の表示

仮想マシン (VM) のネットワークインターフェイスのリストから、関連するネットワークリソースの詳細ページへ直接移動できます。これらのリンクを使用して、リソースを手動で検索することなく、ネットワーク設定をすばやく確認またはトラブルシューティングします。

VirtualMachine details ページで、Configuration Network タブに、仮想マシンのネットワークインターフェイスが表示されます。各ネットワーク名は、ネットワークアタッチメント定義 (NAD)、ユーザー定義ネットワーク (UDN)、クラスターユーザー定義ネットワーク (CUDN) などの関連するネットワークリソースの詳細ページを開くリンクになっています。

デフォルトの Pod ネットワークを使用するネットワークでは、遷移先のネットワークリソースが存在しないため、"Pod networking" はプレーンテキストとして表示されます。

9.1.6. 仮想マシンの SSH アクセス

SSH を使用すると、コマンドラインから仮想マシン (VM) にセキュアにアクセスできます。

SSH 設定をセットアップするには、以下のいずれかの方法を使用します。

virtctl ssh コマンドの使用

SSH 鍵ペアを作成し、公開鍵を仮想マシンに追加し、秘密鍵を使用して virtctl ssh コマンドを実行して仮想マシンに接続します。

cloud-init データソースを使用して設定できるゲストオペレーティングシステムを使用して、実行時または最初の起動時に Red Hat Enterprise Linux (RHEL) 9 仮想マシンに SSH 公開鍵を追加できます。

virtctl port-forward コマンドの使用
virtctl port-foward コマンドを .ssh/config ファイルに追加し、OpenSSH を使用して仮想マシンに接続します。
サービス
サービスを作成し、そのサービスを仮想マシンに関連付け、サービスによって公開されている IP アドレスとポートに接続します。
セカンダリーネットワーク
セカンダリーネットワークを設定し、仮想マシンをセカンダリーネットワークインターフェイスに接続し、割り当てられた IP アドレスに接続します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る