検索

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

download PDF

仮想マシンを Open Virtual Network (OVN)-Kubernetes セカンダリーネットワークに接続できます。OpenShift Virtualization は、OVN-Kubernetes のレイヤー 2 およびローカルネットトポロジーをサポートします。

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

OVN-Kubernetes セカンダリーネットワークは、マルチネットワークポリシー API と互換性があります。これにより、仮想マシンとの間のトラフィックフローの制御に MultiNetworkPolicy カスタムリソース定義 (CRD) を使用できます。ipBlock 属性を使用して、特定の CIDR ブロックに対するネットワークポリシーの受信および送信ルールを定義できます。

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

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

    注記

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

  2. ネットワークの詳細を仮想マシン仕様に追加して、仮想マシンを OVN-Kubernetes セカンダリーネットワークに接続 します。

8.8.1. OVN-Kubernetes NAD の作成

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

注記

仮想マシンのネットワークアタッチメント定義での IP アドレス管理 (IPAM) の設定はサポートされていません。

8.8.1.1. CLI を使用してレイヤー 2 トポロジーの NAD を作成する

Pod をレイヤー 2 オーバーレイネットワークに接続する方法を説明するネットワーク接続定義 (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: |2
        {
                "cniVersion": "0.3.1", 1
                "name": "my-namespace-l2-network", 2
                "type": "ovn-k8s-cni-overlay", 3
                "topology":"layer2", 4
                "mtu": 1300, 5
                "netAttachDefName": "my-namespace/l2-network" 6
        }
    1
    CNI 仕様のバージョン。必要な値は 0.3.1 です。
    2
    ネットワークの名前。この属性には namespace がありません。たとえば、l2-network という名前のネットワークを、2 つの異なる namespace に存在する 2 つの異なる NetworkAttachmentDefinition オブジェクトから参照させることができます。この機能は、異なる namespace の仮想マシンを接続する場合に役立ちます。
    3
    設定する CNI プラグインの名前。必要な値は ovn-k8s-cni-overlay です。
    4
    ネットワークのトポロジー設定。必要な値は layer2 です。
    5
    オプション: 最大伝送単位 (MTU) の値。デフォルト値はカーネルによって自動的に設定されます。
    6
    NetworkAttachmentDefinition オブジェクトの metadata スタンザ内の namespace および name フィールドの値。
    注記

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

  2. マニフェストを適用します。

    $ oc apply -f <filename>.yaml

8.8.1.2. CLI を使用してローカルネットトポロジーの NAD を作成する

Pod を基盤となる物理ネットワークに接続する方法を説明するネットワーク接続定義 (NAD) を作成できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてクラスターにアクセスできる。
  • OpenShift CLI (oc) がインストールされている。
  • Kubernetes NMState Operator がインストールされている。
  • OVN-Kubernetes セカンダリーネットワークを Open vSwitch (OVS) ブリッジにマップするための NodeNetworkConfigurationPolicy オブジェクトを作成している。

手順

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

    apiVersion: k8s.cni.cncf.io/v1
    kind: NetworkAttachmentDefinition
    metadata:
      name: localnet-network
      namespace: default
    spec:
      config: |2
        {
                "cniVersion": "0.3.1", 1
                "name": "localnet-network", 2
                "type": "ovn-k8s-cni-overlay", 3
                "topology": "localnet", 4
                "netAttachDefName": "default/localnet-network" 5
        }
    1
    CNI 仕様のバージョン。必要な値は 0.3.1 です。
    2
    ネットワークの名前。この属性は、OVS ブリッジマッピングを定義する NodeNetworkConfigurationPolicy オブジェクトの spec.desiredState.ovn.bridge-mappings.localnet フィールドの値と一致する必要があります。
    3
    設定する CNI プラグインの名前。必要な値は ovn-k8s-cni-overlay です。
    4
    ネットワークのトポロジー設定。必要な値は localnet です。
    5
    NetworkAttachmentDefinition オブジェクトの metadata スタンザ内の namespace および name フィールドの値。
  2. マニフェストを適用します。

    $ oc apply -f <filename>.yaml

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

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

前提条件

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

手順

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

8.8.1.4. Web コンソールを使用してローカルネットトポロジーの NAD を作成する

OpenShift Container Platform Web コンソールを使用してネットワーク接続定義 (NAD) を作成し、ワークロードを物理ネットワークに接続できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてクラスターにアクセスできる。
  • nmstate を使用して、ローカルネットから OVS ブリッジへのマッピングを設定します。

手順

  1. Web コンソールで、Networking NetworkAttachmentDefinitions に移動します。
  2. Create Network Attachment Definition をクリックします。ネットワーク接続定義は、それを使用する Pod または仮想マシンと同じ namespace にある必要があります。
  3. 一意の Name およびオプションの Description を入力します。
  4. Network Type リストで OVN Kubernetes secondary localnet network を選択します。
  5. Bridge mapping フィールドに、事前に設定されたローカルネット識別子の名前を入力します。
  6. オプション: MTU を指定した値に明示的に設定できます。デフォルト値はカーネルにより選択されます。
  7. オプション: VLAN 内のトラフィックをカプセル化します。デフォルト値は none です。
  8. Create をクリックします。

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

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

8.8.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:
      running: true
      template:
        spec:
          domain:
            devices:
              interfaces:
              - name: secondary 1
                bridge: {}
            resources:
              requests:
                memory: 1024Mi
          networks:
          - name: secondary  2
            multus:
              networkName: <nad_name> 3
    # ...
    1
    OVN-Kubernetes セカンダリーインターフェイスの名前。
    2
    ネットワークの名前。これは、spec.template.spec.domain.devices.interfaces.name フィールドの値と一致する必要があります。
    3
    NetworkAttachmentDefinition オブジェクトの名前。
  2. VirtualMachine マニフェストを適用します。

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

8.8.3. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.