第9章 ネットワーク
9.1. ネットワークの概要 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) をクラスターネットワークに接続するには、OpenShift Virtualization でデフォルトおよびユーザー定義のネットワークオプションを設定します。
9.1.1. OpenShift Virtualization ネットワークの用語集 リンクのコピーリンクがクリップボードにコピーされました!
以下の用語は、OpenShift Virtualization ドキュメント全体で使用されています。
- Container Network Interface (CNI)
- コンテナーのネットワーク接続に重点を置く Cloud Native Computing Foundation プロジェクト。OpenShift Virtualization は CNI プラグインを使用して基本的な Kubernetes ネットワーク機能を強化します。
- カスタムリソース定義 (CRD)
- カスタムリソースの定義を可能にする Kubernetes API リソース、または CRD API リソースを使用して定義されるオブジェクト。
NetworkAttachmentDefinition- Multus プロジェクトによって導入された CRD。Pod、仮想マシン、および仮想マシンインスタンスを 1 つ以上のネットワークに接続できるようにします。
UserDefinedNetwork- ユーザー定義ネットワーク (UDN) API によって導入された namespace スコープの CRD。これを使用して、テナント namespace を他の namespace から分離するテナントネットワークを作成できます。
ClusterUserDefinedNetwork- ユーザー定義ネットワーク API によって導入されたクラスタースコープの CRD。これは、クラスター管理者が複数の namespace 全体で共有ネットワークを作成するために使用できます。
9.1.2. オーバーレイネットワークを管理する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) が標準の OpenShift Dedicated ネットワークモデルを使用して確実に接続できるようにするには、クラスター全体の接続性を確保するために、デフォルトの Pod ネットワークを設定します。
オーバーレイネットワークは、物理ネットワークの上に柔軟なソフトウェア定義の接続レイヤーを提供し、基盤となるハードウェアを変更することなく、ネットワークのセグメンテーション、カスタムルーティング、簡素化された管理などのサービスを可能にします。
- 仮想マシンをデフォルトの Pod ネットワークに接続する
各仮想マシンは、デフォルトの内部 Pod ネットワークにデフォルトで接続されます。仮想マシン仕様を編集することで、ネットワークインターフェイスを追加または削除できます。
ヘッドレスサービスを使用すると、安定した完全修飾ドメイン名 (FQDN) 上のデフォルトの内部 Pod ネットワークに接続されている仮想マシン (VM) にアクセスできます。
- 仮想マシンをカスタムプライマリーオーバーレイネットワークに接続する
ワークロードに対して、分離された柔軟なトラフィックパスを提供するために、マルチネームスペース接続をサポートするプライマリーユーザー定義ネットワーク (UDN) を設定します。
クラスター管理者は、プライマリー
UserDefinedNetworkCRD を設定して、ネットワークポリシーを必要とせずに、テナント namespace を他の namespace から分離するテナントネットワークを作成できます。さらに、クラスター管理者はClusterUserDefinedNetworkCRD を使用して、複数の 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オブジェクトを作成することで、クラスター内またはクラスター外に仮想マシンを公開できます。 - Service Mesh に仮想マシンを追加します
- OpenShift Virtualization は、Red Hat OpenShift Service Mesh と統合されました。IPv4 を使用したデフォルトの Pod ネットワークでは、Pod と仮想マシン間のトラフィックを監視、可視化、および制御できます。
9.1.3. プロバイダーの物理ネットワークに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) がインターネットや他の物理デバイスにアクセスできるようにするには、ノードネットワークを設定し、セカンダリーネットワークを定義して、仮想マシンをセカンダリーネットワークに接続します。
- Open vSwitch ブリッジを使用して仮想マシンを物理ネットワークに接続する
OVN-Kubernetes のセカンダリーユーザー定義ネットワーク (UDN) を localnet トポロジーで設定することで、仮想マシンを物理ネットワークインフラストラクチャーに接続できます。
localnet トポロジーは、セカンダリーネットワークを物理アンダーレイに接続します。これにより、east-west クラスタートラフィックとクラスター外で実行されているサービスへのアクセスの両方が可能になります。ただし、クラスターノード上の基盤となる Open vSwitch (OVS) ブリッジの追加設定が必要です。
クラスター管理者は、以下の手順を使用してローカルネット UDN を設定できます。
- クラスターノード全体にわたってステートドリブンのネットワーク設定を提供する Kubernetes NMState Operator をインストールします。
-
NodeNetworkConfigurationPolicyカスタムリソース (CR) を使用して OVS ブリッジを設定し、ノードに適切なブリッジマッピングを追加します。 -
UDN API の
ClusterUserDefinedNetworkCR を使用して、前の手順で設定した OVS ブリッジを介してワークロードをアンダーレイネットワークに接続します。
9.1.4. 仮想マシンネットワークインターフェイス設定の管理 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) のネットワーク設定を管理し、アプリケーションのダウンタイムを発生させることなく接続性を拡張し、ネットワークレイテンシーのトラブルシューティングを行い、MAC アドレスプールの定義と管理の自動化、IP アドレスの設定、およびライブマイグレーショントラフィックの分離を行います。
- ホットプラグ対応セカンダリーネットワークインターフェイス
-
仮想マシンを停止せずに、セカンダリーネットワークインターフェイスを追加または削除できます。OpenShift Virtualization は、ブリッジバインディングおよび OVN-Kubernetes
layer2トポロジーを使用するセカンダリーインターフェイスのホットプラグとホットアンプラグをサポートしています。 - 外部 FQDN を使用して仮想マシンにアクセスする
-
完全修飾ドメイン名 (FQDN) を使用して、クラスターの外部からセカンダリーネットワークインターフェイスに接続されている仮想マシン (VM) にアクセスできます。外部 FQDN を使用して仮想マシンに接続するには、DNS サーバーを設定し、クラスター FQDN を取得してから、
sshコマンドを使用して仮想マシンに接続する必要があります。 - 仮想マシンネットワークインターフェイスのリンク状態を管理する
OpenShift Dedicated の Web コンソールまたはコマンドラインを使用して、プライマリーまたはセカンダリー仮想マシンネットワークインターフェイスのリンク状態を管理できます。リンク状態を指定することで、仮想ネットワークインターフェイスコントローラー (vNIC) をネットワークに論理的に接続または切断できます。
注記OpenShift Virtualization は、Single Root I/O Virtualization (SR-IOV) セカンダリーネットワークインターフェイスのリンク状態管理をサポートしておらず、それらのリンク状態は報告されません。
- 仮想マシン IP アドレスの設定と表示
- 仮想マシンを作成する際に、セカンダリーネットワークインターフェイスの IP アドレスを設定できます。IP アドレスは、cloud-init でプロビジョニングされます。OpenShift Dedicated Web コンソールまたはコマンドラインを使用して、仮想マシンの IP アドレスを表示できます。ネットワーク情報は QEMU ゲストエージェントによって収集されます。
- 仮想マシンネットワークインターフェイスの MAC アドレスプールを管理する
- KubeMacPool コンポーネントは、共有 MAC アドレスプールから仮想マシンネットワークインターフェイスの MAC アドレスを割り当てます。これにより、各ネットワークインターフェイスに一意の MAC アドレスが確実に割り当てられます。その仮想マシンから作成された仮想マシンインスタンスは、再起動後も割り当てられた MAC アドレスを保持します。
9.1.5. 仮想マシンの 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 アドレスに接続します。