第8章 ネットワーク


8.1. ネットワークの概要

OpenShift Virtualization は、カスタムリソースおよびプラグインを使用して高度なネットワーク機能を提供します。仮想マシン (VM) は、OpenShift Container Platform のネットワークおよびエコシステムと統合されています。

注記

シングルスタックの IPv6 クラスターで OpenShift Virtualization は実行できません。

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

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

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

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

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

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

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

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

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

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

注記

VM をアンダーレイネットワークに直接接続することは、Red Hat OpenShift Service on AWS ではサポートされていません。

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

8.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 つ以上のネットワークに接続できるようにします。
ノードネットワーク設定ポリシー (NNCP)
nmstate プロジェクトによって導入された CRD。ノード上で要求されるネットワーク設定を表します。NodeNetworkConfigurationPolicy マニフェストをクラスターに適用して、インターフェイスの追加および削除など、ノードネットワーク設定を更新します。

8.1.2. デフォルトの Pod ネットワークの使用

仮想マシンをデフォルトの Pod ネットワークに接続する
各仮想マシンは、デフォルトの内部 Pod ネットワークにデフォルトで接続されます。仮想マシン仕様を編集することで、ネットワークインターフェイスを追加または削除できます。
仮想マシンをサービスとして公開する
Service オブジェクトを作成することで、クラスター内またはクラスター外に仮想マシンを公開できます。オンプレミスクラスターの場合、MetalLB Operator を使用して負荷分散サービスを設定できます。OpenShift Container Platform Web コンソールまたは CLI を使用して、MetalLB Operator をインストール できます。

8.1.3. 仮想マシンのセカンダリーネットワークインターフェイスの設定

Linux ブリッジ、SR-IOV、OVN-Kubernetes CNI プラグインを使用して、仮想マシンをセカンダリーネットワークに接続できます。仮想マシン仕様では、複数のセカンダリーネットワークとインターフェイスをリストできます。セカンダリーネットワークインターフェイスに接続する場合、仮想マシン仕様でプライマリー Pod ネットワークを指定する必要はありません。

OVN-Kubernetes セカンダリーネットワークへの仮想マシンの接続

仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続できます。OpenShift Virtualization は、OVN-Kubernetes のレイヤー 2 およびローカルネットトポロジーをサポートします。localnet トポロジーは、VLAN カプセル化の有無にかかわらず、基盤となる物理ネットワークに仮想マシンを公開する推奨の方法です。

  • レイヤー 2 トポロジーは、クラスター全体の論理スイッチでワークロードを接続します。OVN-Kubernetes CNI プラグインは、Geneve (Generic Network Virtualization Encapsulation)プロトコルを使用して、ノード間でオーバーレイネットワークを作成します。このオーバーレイネットワークを使用すると、追加の物理ネットワークインフラストラクチャーを設定することなく、さまざまなノード上の仮想マシンを接続できます。
  • ローカルネットトポロジーは、セカンダリーネットワークを物理アンダーレイに接続します。これにより、east-west クラスタートラフィックとクラスター外で実行されているサービスへのアクセスの両方が可能になります。ただし、クラスターノード上の基盤となる Open vSwitch (OVS) システムの追加設定が必要です。

OVN-Kubernetes セカンダリーネットワークを設定し、そのネットワークに仮想マシンを接続するには、次の手順を実行します。

  1. ネットワークアタッチメント定義 (NAD) を作成して、OVN-Kubernetes セカンダリーネットワークの設定 を行います。

    注記

    ローカルネットトポロジーの場合は、NAD を作成する前に NodeNetworkConfigurationPolicy オブジェクトを作成して OVS ブリッジを設定する 必要があります。

  2. ネットワークの詳細を仮想マシン仕様に追加して、仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続 します。
仮想マシンの 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 CRD を作成して、SR-IOV ネットワークデバイスを設定 します。
  2. SriovNetwork オブジェクトを作成して、SR-IOV ネットワークを設定 します。
  3. 仮想マシン設定にネットワークの詳細を追加して、仮想マシンを SR-IOV ブリッジネットワークに接続 します。
Linux ブリッジネットワークへの仮想マシンの割り当て

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

注記

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

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

  1. NodeNetworkConfigurationPolicy カスタムリソース定義 (CRD) を作成して、Linux ブリッジネットワークデバイスを設定 します。
  2. NetworkAttachmentDefinition CRD を作成して、Linux ブリッジネットワークを設定 します。
  3. 仮想マシン設定にネットワークの詳細を追加して、仮想マシンを Linux ブリッジネットワークに接続 します。
ホットプラグ対応のセカンダリーネットワークインターフェイス
仮想マシンを停止せずに、セカンダリーネットワークインターフェイスを追加または削除できます。OpenShift Virtualization は、ブリッジバインディングと VirtIO デバイスドライバーを使用するセカンダリーインターフェイスのホットプラグとホットアンプラグをサポートします。OpenShift Virtualization は、SR-IOV バインディングを使用するセカンダリーインターフェイスのホットプラグもサポートします。
SR-IOV での DPDK の使用
Data Plane Development Kit (DPDK) は、高速パケット処理用のライブラリーとドライバーのセットを提供するものです。SR-IOV ネットワーク上で DPDK ワークロードを実行するようにクラスターと仮想マシンを設定できます。
ライブマイグレーション用の専用ネットワークの設定
ライブマイグレーション専用の Multus ネットワーク を設定できます。専用ネットワークは、ライブマイグレーション中のテナントワークロードに対するネットワークの飽和状態の影響を最小限に抑えます。
クラスター FQDN を使用した仮想マシンへのアクセス
完全修飾ドメイン名 (FQDN) を使用して、クラスターの外部からセカンダリーネットワークインターフェイスに接続されている仮想マシンにアクセスできます。
IP アドレスの設定と表示
仮想マシンを作成するときに、セカンダリーネットワークインターフェイスの IP アドレスを設定できます。IP アドレスは、cloud-init でプロビジョニングされます。仮想マシンの IP アドレスは、OpenShift Container Platform Web コンソールまたはコマンドラインを使用して表示できます。ネットワーク情報は QEMU ゲストエージェントによって収集されます。

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

次の表は、Linux ブリッジ CNI を使用する場合と OVN-Kubernetes プラグインのローカルネットトポロジーを使用する場合に利用できる機能の比較を示しています。

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

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

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

はい

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

はい

はい

ネットワークポリシー

いいえ

はい

管理された IP プール

いいえ

いいえ

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

はい

はい

8.1.4. OpenShift Service Mesh との統合

仮想マシンのサービスメッシュへの接続
OpenShift Virtualization は OpenShift Service Mesh と統合されています。Pod と仮想マシン間のトラフィックを監視、視覚化、制御できます。

8.1.5. MAC アドレスプールの管理

ネットワークインターフェイスの MAC アドレスプールの管理
KubeMacPool コンポーネントは、共有 MAC アドレスプールから仮想マシンネットワークインターフェイスの MAC アドレスを割り当てます。これにより、各ネットワークインターフェイスに一意の MAC アドレスが確実に割り当てられます。その仮想マシンから作成された仮想マシンインスタンスは、再起動後も割り当てられた MAC アドレスを保持します。

8.1.6. SSH アクセスの設定

仮想マシンへの SSH アクセスの設定

次の方法を使用して、仮想マシンへの 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 をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.