11.4. 仮想マシンをセカンダリー localnet ユーザー定義ネットワークに接続する


CLI を使用して、仮想マシン (VM) を OVN-Kubernetes localnet セカンダリーネットワークに接続できます。クラスター管理者は、ClusterUserDefinedNetwork (CUDN) カスタムリソース定義 (CRD) を使用して、複数の namespace にわたって共有 OVN-Kubernetes ネットワークを作成できます。

OVN-Kubernetes セカンダリーネットワークは、マルチネットワークポリシー API と互換性があります。この API は、仮想マシンとの間のトラフィックフローを制御するための MultiNetworkPolicy というカスタムリソース定義 (CRD) を提供します。

重要

特定の CIDR ブロックのネットワークポリシーの Ingress および Egress ルールを定義するには、ipBlock 属性を使用する必要があります。Pod または namespace セレクターポリシーピアの使用はサポートされていません。

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

11.4.1. CLI を使用して localnet トポロジー用のユーザー定義ネットワークを作成する

CLI を使用して、localnet ネットワークトポロジーのセカンダリークラスタースコープユーザー定義ネットワーク (CUDN) を作成できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。
  • OpenShift CLI (oc) がインストールされている。
  • Kubernetes NMState Operator がインストールされている。

手順

  1. NodeNetworkConfigurationPolicy オブジェクトを作成して、OVN-Kubernetes セカンダリーネットワークを Open vSwitch (OVS) ブリッジにマッピングします。

    NodeNetworkConfigurationPolicy マニフェストの例

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
      name: mapping 
    1
    
    spec:
      nodeSelector:
        node-role.kubernetes.io/worker: '' 
    2
    
      desiredState:
        ovn:
          bridge-mappings:
          - localnet: localnet1 
    3
    
            bridge: br-ex 
    4
    
            state: present 
    5
    Copy to Clipboard Toggle word wrap

    1
    設定オブジェクトの名前。
    2
    Node Network Configuration Policy が適用されるノードを指定します。推奨されるノードセレクター値は node-role.kubernetes.io/worker: '' です。
    3
    トラフィックを OVS ブリッジに転送する追加ネットワークの名前。この属性は、OVN-Kubernetes 追加ネットワークを定義する ClusterUserDefinedNetwork オブジェクトの spec.network.localnet.physicalNetworkName フィールドの値と一致する必要があります。この例では、localnet1 という名前を使用します。
    4
    ノード上の OVS ブリッジの名前。state 属性が present または指定されていない場合は、この値は必須です。
    5
    マッピングの状態。マッピングを追加するには present に、マッピングを削除するには absent にする必要があります。デフォルト値は present です。
    重要

    OpenShift Virtualization は、Linux ブリッジボンディングモード 0、5、および 6 をサポートしていません。詳細は、Which bonding modes work when used with a bridge that virtual machine guests or containers connect to? を参照してください。

  2. 次のコマンドを実行して、NodeNetworkConfigurationPolicy マニフェストを適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <filename>
    NodeNetworkConfigurationPolicy マニフェスト YAML ファイルの名前を指定します。
  3. localnet セカンダリーネットワークを作成するには、ClusterUserDefinedNetwork オブジェクトを作成します。

    ClusterUserDefinedNetwork マニフェストの例

    apiVersion: k8s.ovn.org/v1
    kind: ClusterUserDefinedNetwork
    metadata:
      name: cudn-localnet 
    1
    
    spec:
      namespaceSelector: 
    2
    
        matchExpressions: 
    3
    
        - key: kubernetes.io/metadata.name
          operator: In 
    4
    
          values: ["red", "blue"]
      network:
        topology: Localnet 
    5
    
        localnet:
            role: Secondary 
    6
    
            physicalNetworkName: localnet1 
    7
    
            ipam:
              mode: Disabled 
    8
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    ClusterUserDefinedNetwork カスタムリソースの名前。
    2
    クラスター UDN が適用される namespace のセット。namespace セレクターは、defaultopenshift-* namespace、または Cluster Network Operator (CNO) によって定義されたグローバル namespace の値を指すことはできません。
    3
    セレクターのタイプ。この例では、matchExpressions セレクターは、ラベル kubernetes.io/metadata.name と値 red または blue を持つオブジェクトを選択します。
    4
    Operator のタイプ。可能な値は InNotInExists です。
    5
    ネットワークのトポロジー設定。Localnet トポロジーは、論理ネットワークを物理アンダーレイに接続します。
    6
    UDN がプライマリーかセカンダリーかを指定します。topology: Localnet の場合、必要な値は Secondary です。
    7
    ノード上で設定されている OVN-Kubernetes ブリッジマッピングの名前。この値は、以前に作成した NodeNetworkConfigurationPolicy マニフェストの spec.desiredState.ovn.bridge-mappings.localnet フィールドと一致する必要があります。これにより、意図した物理ネットワークのセグメントに確実にブリッジできます。
    8
    IP アドレス管理 (IPAM) が有効化または無効化されているかを指定します。必要な値は Disabled です。OpenShift Virtualization は、仮想マシンの IPAM の設定をサポートしません。
  4. 次のコマンドを実行して、ClusterUserDefinedNetwork マニフェストを適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <filename>
    ClusterUserDefinedNetwork マニフェスト YAML ファイルの名前を指定します。

11.4.2. CLI を使用してセカンダリーユーザー定義ネットワークの namespace を作成する

CLI を使用して、既存のセカンダリークラスタースコープユーザー定義ネットワーク (CUDN) で使用する namespace を作成できます。

前提条件

  • cluster-admin パーミッションを持つユーザーとしてクラスターにログインしている。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次の例のような Namespace オブジェクトを作成します。

    Namespace マニフェストの例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: red
    # ...
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを実行して、Namespace マニフェストを適用します。

    oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <filename>
    Namespace マニフェスト YAML ファイルの名前を指定します。

11.4.3. CLI を使用して仮想マシンをセカンダリーユーザー定義ネットワークに接続する

インターフェイスバインディングを設定することで、仮想マシン (VM) を複数のセカンダリークラスタースコープユーザー定義ネットワーク (CUDN) に接続できます。

前提条件

  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次の例に示すように、VirtualMachine マニフェストを編集して、CUDN インターフェイスの詳細を追加します。

    VirtualMachine マニフェストの例

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: red 
    1
    
    spec:
      template:
        spec:
          domain:
            devices:
              interfaces:
                - name: secondary_localnet 
    2
    
                  bridge: {}
            machine:
              type: ""
            resources:
              requests:
                memory: 2048M
          networks:
          - name: secondary_localnet 
    3
    
            multus:
              networkName: <localnet_cudn_name> 
    4
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    仮想マシンが配置されている namespace。この値は、セカンダリー CUDN に関連付けられている namespace と一致する必要があります。
    2
    セカンダリーユーザー定義ネットワークインターフェイスの名前。
    3
    ネットワークの名前。これは、spec.template.spec.domain.devices.interfaces.name フィールドの値と一致する必要があります。
    4
    以前に作成した localnet ClusterUserDefinedNetwork オブジェクトの名前。
  2. 次のコマンドを実行して、VirtualMachine マニフェストを適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <filename>
    VirtualMachine マニフェスト YAML ファイルの名前を指定します。
注記

OSA カードを使用して IBM Z® 上で OpenShift Virtualization を実行する場合、OSA カードは OSA デバイスに登録されているデバイスにのみネットワークトラフィックを転送することに注意してください。その結果、未登録のデバイス宛のトラフィックは転送されません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat