2.11. 仮想マシンの複数ネットワークへの割り当て

Container-native Virtualization は、仮想マシンの複数ネットワークへの接続を可能にするレイヤー 2 ネットワーク機能を提供します。複数インターフェースへのアクセスによって異なる既存のワークロードを持つ仮想マシンをインポートできます。また、仮想マシンをネットワーク経由で起動できるように PXE ネットワークを設定することもできます。

最初に、ネットワーク管理者はタイプ cnv-bridge の NetworkAttachmentDefinition を設定します。次に、ユーザーは Pod、仮想マシンインスタンス、および仮想マシンをブリッジネットワークに割り当てることができます。Container-native Virtualization Web コンソールから、ブリッジネットワークを参照する vNIC を作成できます。

2.11.1. Container-native Virtualization ネットワークの用語集

Container-native Virtualization は、カスタムリソースおよびプラグインを使用して高度なネットワーク機能を提供します。

以下の用語は、Container-native Virtualization ドキュメント全体で使用されています。

Container Network Interface (CNI)
コンテナーのネットワーク接続に重点を置く Cloud Native Computing Foundation プロジェクト。Container-native Virtualization は CNI プラグインを使用して基本的な Kubernetes ネットワーク機能を強化します。
Multus
複数の CNI の存在を可能にし、Pod または仮想マシンが必要なインターフェースを使用できるようにする「メタ」 CNI プラグイン。
カスタムリソース定義 (CRD、Customer Resource Definition)
カスタムリソースの定義を可能にする Kubernetes API リソース、または CRD API リソースを使用して定義されるオブジェクト。
NetworkAttachmentDefinition
Pod、仮想マシン、および仮想マシンインスタンスを 1 つ以上のネットワークに割り当てることを可能にする Multus プロジェクトによって導入される CRD。
PXE (Preboot eXecution Environment)
管理者がネットワーク経由でサーバーからクライアントマシンを起動できるようにするインターフェース。ネットワークのブートにより、オペレーティングシステムおよび他のソフトウェアをクライアントにリモートでロードできます。

2.11.2. リソースのブリッジベースのネットワークへの接続

ネットワーク管理者は、タイプ cnv-bridge の NetworkAttachmentDefinition をレイヤー 2 ネットワークを Pod および仮想マシンに提供するように設定できます。

前提条件

  • Container-native Virtualization 2.0 以降
  • Linux ブリッジはすべてのノードで設定され、適切な Network Interface Card に割り当てられる必要があります。
  • VLAN を使用する場合、vlan_filtering はブリッジで有効にされる必要があります。
  • NIC はすべての関連する VLAN に対してタグ付けされる必要があります。

    • 例: bridge vlan add dev bond0 vid 1-4095 master

手順

  1. 任意のローカルディレクトリーで NetworkAttachmentDefinition の新規ファイルを作成します。このファイルには、お使いの設定に合わせて変更された以下の内容が含まれる必要があります。

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: a-bridge-network
      annotations:
        k8s.v1.cni.cncf.io/resourceName: bridge.network.kubevirt.io/br0 1
    spec:
      config: '{
        "cniVersion": "0.3.1",
        "plugins": [
          {
            "type": "cnv-bridge", 2
            "bridge": "br0", 3
            "ipam": {}
          },
          {
            "type": "tuning" 4
          }
        ]
      }'
    1
    このアノテーションを NetworkAttachmentDefinition に追加する場合、仮想マシンインスタンスは br0 ブリッジが接続されているノードでのみ実行されます。
    2
    この NetworkAttachmentDefinition のネットワークを提供する Container Network Interface (CNI) プラグインの実際の名前。異なる CNI を使用するのでない限り、このフィールドは変更しないでください。
    3
    ブリッジの名前が br0 でない場合、ブリッジの実際の名前に置き換える必要があります。
    4
    必須。これにより、MAC プールマネージャーが接続に固有の MAC アドレスを割り当てます。
    $ oc create -f <resource_spec.yaml>
  2. ブリッジネットワークに接続する必要のある仮想マシンまたは仮想マシンインスタンスの設定を編集します。

    apiVersion: v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      annotations:
        k8s.v1.cni.cncf.io/networks: a-bridge-network 1
    spec:
    ...
    1
    NetworkAttachmentDefinition の実際の name 値に置き換える必要があります。

    この例では、NetworkAttachmentDefinition および Pod が同じ namespace に置かれています。

    異なる namespace を指定するには、以下の構文を使用します。

    ...
      annotations:
        k8s.v1.cni.cncf.io/networks: <namespace>/a-bridge-network
    ...
  3. 設定ファイルをリソースに適用します。

    $ oc create -f <local/path/to/network-attachment-definition.yaml>
注記

次のセクションで vNIC を定義する際に、NETWORK の値が直前のセクションで作成した NetworkAttachmentDefinition のブリッジネットワーク名であることを確認します。

2.11.3. 仮想マシンの NIC の作成

Web コンソールから追加の NIC を作成し、これを仮想マシンに割り当てます。

手順

  1. Container-native Virtualization コンソールの適切なプロジェクトで、WorkloadsVirtual Machines をクリックします。
  2. 仮想マシンテンプレートを選択します。
  3. Network Interfaces をクリックし、仮想マシンにすでに割り当てられている NIC を表示します。
  4. Create NIC をクリックして、新規スロットを一覧に作成します。
  5. 新規 NIC の NAMENETWORKMAC ADDRESS、および BINDING METHOD に入力します。
  6. ボタンをクリックして NIC を保存し、これを仮想マシンに割り当てます。

2.11.4. ネットワークフィールド

名前説明

Create NIC

仮想マシンの新規 NIC を作成します。

NIC NAME

NIC の名前。

MAC ADDRESS

ネットワークインターフェースの MAC アドレス。MAC アドレスが指定されていない場合、セッションの一時アドレスが生成されます。

NETWORK CONFIGURATION

利用可能な NetworkAttachmentDefinition オブジェクトの一覧。

BINDING METHOD

利用可能なバインディングメソッドの一覧。デフォルトの Pod ネットワークについては、masquerade が唯一の推奨されるバインディングメソッドになります。セカンダリーネットワークの場合は、bridge バインディングメソッドを使用します。masquerade メソッドは、デフォルト以外のネットワークではサポートされません。

PXE NIC

PXE 対応ネットワークの一覧。PXEProvision Source として選択されている場合にのみ表示されます。

仮想マシンにオプションの QEMU ゲストエージェントをインストールし、ホストが追加のネットワークについての関連情報を表示できるようにします。