12.4. 在专用额外网络中迁移虚拟机

您可以为实时迁移配置专用 Multus 网络。专用的网络可最小化实时迁移期间对租户工作负载的网络饱和影响。

12.4.1. 为虚拟机实时迁移配置专用的二级网络

要为实时迁移配置专用的二级网络,您必须首先使用 CLI 为 openshift-cnv 命名空间创建一个桥接网络附加定义。然后,将 NetworkAttachmentDefinition 对象的名称添加到 HyperConverged 自定义资源(CR)。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 您以具有 cluster-admin 角色的用户身份登录到集群。
  • Multus Container Network Interface (CNI) 插件已安装在集群中。
  • 集群中的每个节点至少有两个网络接口卡(NIC),用于实时迁移的 NIC 则连接到同一个 VLAN。
  • 虚拟机(VM)使用 LiveMigrate 驱除策略运行。

步骤

  1. 创建 NetworkAttachmentDefinition 清单。

    配置文件示例

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: my-secondary-network 1
      namespace: openshift-cnv 2
    spec:
      config: '{
        "cniVersion": "0.3.1",
        "name": "migration-bridge",
        "type": "macvlan",
        "master": "eth1", 3
        "mode": "bridge",
        "ipam": {
          "type": "whereabouts", 4
          "range": "10.200.5.0/24" 5
        }
      }'

    1
    NetworkAttachmentDefinition 对象的名称。
    2
    NetworkAttachmentDefinition 对象所在的命名空间。这必须是 openshift-cnv
    3
    用于实时迁移的 NIC 名称。
    4
    为这个网络附加定义提供网络的 CNI 插件名称。
    5
    二级网络的 IP 地址范围。这个范围不得与主网络的 IP 地址有任何重叠。
  2. 运行以下命令,在默认编辑器中打开 HyperConverged CR:

    oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  3. NetworkAttachmentDefinition 对象的名称添加到 HyperConverged CR 的 spec.liveMigrationConfig 小节中。例如:

    配置文件示例

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
    spec:
      liveMigrationConfig:
        completionTimeoutPerGiB: 800
        network: my-secondary-network  1
        parallelMigrationsPerCluster: 5
        parallelOutboundMigrationsPerNode: 2
        progressTimeout: 150
    ...

    1
    用于实时迁移的 Multus NetworkAttachmentDefinition 对象的名称。
  4. 保存更改并退出编辑器。virt-handler Pod 会重启并连接到二级网络。

验证

  • 当运行虚拟机的节点置于维护模式时,虚拟机会自动迁移到集群中的另一个节点。您可以通过检查虚拟机实例(VMI)元数据中的目标 IP 地址,验证迁移是否在二级网络中发生,而不是默认 pod 网络。

    oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'

12.4.2. 使用 Web 控制台选择专用网络

您可以使用 OpenShift Container Platform Web 控制台为实时迁移选择一个专用网络。

先决条件

  • 为实时迁移配置了 Multus 网络。

流程

  1. 在 OpenShift Container Platform web 控制台中进入到 Virtualization > Overview
  2. Settings 选项卡,然后点 Live migration
  3. Live migration network 列表中选择网络。

12.4.3. 其他资源