4.3.2. Web コンソールを使用した Linux ブリッジ NAD の作成
OpenShift Dedicated Web コンソールを使用して、Pod と仮想マシンをレイヤー 2 ネットワークに接続するネットワークアタッチメント定義 (NAD) を作成します。
仮想マシンの Network Attachment Definition での IP アドレス管理 (IPAM) の設定はサポートされていません。
手順
-
Web コンソールで、Networking
NetworkAttachmentDefinitions をクリックします。 Create Network Attachment Definition をクリックします。
注記network attachment definition は Pod または仮想マシンと同じ namespace にある必要があります。
- 一意の Name およびオプションの Description を入力します。
- Network Type リストから CNV Linux bridge を選択します。
- Bridge Name フィールドにブリッジの名前を入力します。
- オプション: リソースに VLAN ID が設定されている場合、VLAN Tag Number フィールドに ID 番号を入力します。
- オプション: MAC Spoof Check を選択して、MAC スプーフフィルタリングを有効にします。この機能により、Pod を終了するための MAC アドレスを 1 つだけ許可することで、MAC スプーフィング攻撃に対してセキュリティーを確保します。
- Create をクリックします。
4.3.2.1. ライブマイグレーション用の専用セカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
Linux ブリッジネットワークを設定した後、ライブマイグレーション用の専用ネットワークを設定できます。専用ネットワークは、ライブマイグレーション中のテナントワークロードに対するネットワークの飽和状態の影響を最小限に抑えます。
ライブマイグレーション用に専用のセカンダリーネットワークを設定するには、まず CLI を使用してブリッジ network attachment definition (NAD) を作成する必要があります。その後、NetworkAttachmentDefinition オブジェクトの名前を HyperConverged カスタムリソース (CR) に追加できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにログインしている。 - 各ノードには少なくとも 2 つのネットワークインターフェイスカード (NIC) があります。
- ライブマイグレーション用の NIC は同じ VLAN に接続されます。
手順
次の例に従って、
NetworkAttachmentDefinitionマニフェストを作成します。apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: my-secondary-network namespace: openshift-cnv spec: config: '{ "cniVersion": "0.3.1", "name": "migration-bridge", "type": "macvlan", "master": "eth1", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "10.200.5.0/24" } }'-
metadata.nameは、NetworkAttachmentDefinitionオブジェクトの名前を定義します。 -
config.masterは、ライブマイグレーションで使用する NIC の名前を定義します。 -
config.typeは、NAD にネットワークを提供する CNI プラグインの名前を定義します。 -
config.rangeは、セカンダリーネットワークの IP アドレス範囲を定義します。この範囲は、メインネットワークの IP アドレスと重複してはなりません。
-
以下のコマンドを実行して、デフォルトのエディターで
HyperConvergedCR を開きます。$ oc edit hyperconvergeds.v1beta1.hco.kubevirt.io kubevirt-hyperconverged -n openshift-cnvNetworkAttachmentDefinitionオブジェクトの名前をHyperConvergedCR のspec.liveMigrationConfigスタンザに追加します。HyperConvergedマニフェストの例:apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: liveMigrationConfig: completionTimeoutPerGiB: 800 network: <network> parallelMigrationsPerCluster: 5 parallelOutboundMigrationsPerNode: 2 progressTimeout: 150 # ...-
spec.liveMigrationConfig.networkは、ライブマイグレーションで使用する MultusNetworkAttachmentDefinitionオブジェクトの名前を定義します。
-
-
変更を保存し、エディターを終了します。
virt-handlerPod が再起動し、セカンダリーネットワークに接続されます。
検証
仮想マシンが実行されるノードがメンテナンスモードに切り替えられると、仮想マシンは自動的にクラスター内の別のノードに移行します。仮想マシンインスタンス (VMI) メタデータのターゲット IP アドレスを確認して、デフォルトの Pod ネットワークではなく、セカンダリーネットワーク上で移行が発生したことを確認できます。
$ oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'