11.10. 仮想マシンを OVN-Kubernetes レイヤー 2 セカンダリーネットワークに接続する


CLI を使用して、仮想マシン (VM) を OVN-Kubernetes layer2 セカンダリーネットワークに接続できます。

layer2 トポロジーは、クラスター全体の論理スイッチによってワークロードを接続します。OVN-Kubernetes Container Network Interface (CNI) プラグインは、Geneve (Generic Network Virtualization Encapsulation) プロトコルを使用して、ノード間にオーバーレイネットワークを作成します。このオーバーレイネットワークを使用すると、追加の物理ネットワークインフラストラクチャーを設定することなく、さまざまなノード上の仮想マシンを接続できます。

注記

OVN-Kubernetes セカンダリーネットワークは、マルチネットワークポリシー API と互換性があります。この API は、仮想マシンとの間のトラフィックフローを制御するための MultiNetworkPolicy というカスタムリソース定義 (CRD) を提供します。特定の CIDR ブロックのネットワークポリシーの Ingress および Egress ルールを定義するには、ipBlock 属性を使用する必要があります。仮想化ワークロードには Pod または namespace セレクターは使用できません。

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

11.10.1. OVN-Kubernetes レイヤー 2 NAD の作成

OpenShift Container Platform Web コンソールまたは CLI を使用して、レイヤー 2 ネットワークトポロジーの OVN-Kubernetes ネットワークアタッチメント定義 (NAD) を作成できます。

注記

仮想マシンのネットワークアタッチメント定義で spec.config.ipam.subnet 属性を指定して IP アドレス管理 (IPAM) を設定することはサポートされていません。

11.10.1.1. CLI を使用したレイヤー 2 トポロジー用の NAD の作成

Pod をレイヤー 2 オーバーレイネットワークに接続する方法を説明する Network Attachment Definition (NAD) を作成できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてクラスターにアクセスできる。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. NetworkAttachmentDefinition オブジェクトを作成します。

    apiVersion: k8s.cni.cncf.io/v1
    kind: NetworkAttachmentDefinition
    metadata:
      name: l2-network
      namespace: my-namespace
    spec:
      config: |-
        {
                "cniVersion": "0.3.1", 
    1
    
                "name": "my-namespace-l2-network", 
    2
    
                "type": "ovn-k8s-cni-overlay", 
    3
    
                "topology":"layer2", 
    4
    
                "mtu": 1400, 
    5
    
                "netAttachDefName": "my-namespace/l2-network" 
    6
    
        }
    Copy to Clipboard Toggle word wrap
    1
    Container Network Interface (CNI)仕様のバージョン。必要な値は 0.3.1 です。
    2
    ネットワークの名前。この属性には namespace がありません。たとえば、l2-network という名前のネットワークを、2 つの異なる namespace に存在する 2 つの異なる NetworkAttachmentDefinition オブジェクトから参照させることができます。この機能は、異なる namespace の仮想マシンを接続する場合に役立ちます。
    3
    CNI プラグインの名前。必要な値は ovn-k8s-cni-overlay です。
    4
    ネットワークのトポロジー設定。必要な値は layer2 です。
    5
    オプション: 最大伝送単位 (MTU) の値。この値を設定しなかった場合、Cluster Network Operator (CNO) が、プライマリーネットワークインターフェイスのアンダーレイ MTU、Geneve (Generic Network Virtualization Encapsulation) などの Pod ネットワークのオーバーレイ MTU、および IPsec などの有効な機能のバイト容量の差を計算して、デフォルトの MTU 値を設定します。
    6
    NetworkAttachmentDefinition オブジェクトの metadata スタンザ内の namespace および name フィールドの値。
    注記

    上記の例では、サブネットが定義されていないクラスター全体のオーバーレイを設定します。これは、ネットワークを実装する論理スイッチがレイヤー 2 通信のみを提供することを意味します。仮想マシンの作成時に、静的 IP アドレスを設定するか、動的 IP アドレス用にネットワーク上に DHCP サーバーをデプロイすることによって、IP アドレスを設定する必要があります。

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

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

11.10.1.2. Web コンソールを使用してレイヤー 2 トポロジーの NAD を作成する

Pod をレイヤー 2 オーバーレイネットワークに接続する方法を記述した Network Attachment Definition (NAD) を作成できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてクラスターにアクセスできる。

手順

  1. Web コンソールで、Networking NetworkAttachmentDefinitions に移動します。
  2. Create Network Attachment Definition をクリックします。Network Attachment Definition は、それを使用する Pod または仮想マシンと同じ namespace にある必要があります。
  3. 一意の Name およびオプションの Description を入力します。
  4. Network Type リストで OVN Kubernetes L2 overlay network を選択します。
  5. Create をクリックします。

11.10.2. OVN-Kubernetes レイヤー 2 セカンダリーネットワークに仮想マシンを接続する

OpenShift Container Platform Web コンソールまたは CLI を使用して、仮想マシン (VM) を OVN-Kubernetes レイヤー 2 セカンダリーネットワークインターフェイスに接続できます。

11.10.2.1. CLI を使用した OVN-Kubernetes セカンダリーネットワークへの仮想マシンの接続

仮想マシン設定にネットワークの詳細を含めることで、仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてクラスターにアクセスできる。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次の例のように、VirtualMachine マニフェストを編集して OVN-Kubernetes セカンダリーネットワークインターフェイスの詳細を追加します。

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: vm-server
    spec:
      runStrategy: Always
      template:
        spec:
          domain:
            devices:
              interfaces:
              - name: secondary 
    1
    
                bridge: {}
            resources:
              requests:
                memory: 1024Mi
          networks:
          - name: secondary  
    2
    
            multus:
              networkName: <nad_name> 
    3
    
          nodeSelector:
            node-role.kubernetes.io/worker: '' 
    4
    
    # ...
    Copy to Clipboard Toggle word wrap
    1
    OVN-Kubernetes セカンダリーインターフェイスの名前。
    2
    ネットワークの名前。これは、spec.template.spec.domain.devices.interfaces.name フィールドの値と一致する必要があります。
    3
    NetworkAttachmentDefinition オブジェクトの名前。
    4
    仮想マシンをスケジュールできるノードを指定します。推奨されるノードセレクター値は node-role.kubernetes.io/worker: '' です。
  2. VirtualMachine マニフェストを適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  3. オプション: 実行中の仮想マシンを編集している場合は、変更を有効にするためにこれを再起動する必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat