7.4. 将虚拟机连接到 OVN-Kubernetes 二级网络


您可以将虚拟机连接到 Open Virtual Network (OVN) -Kubernetes 二级网络。OpenShift Virtualization 支持 OVN-Kubernetes 的 layer2 拓扑。

layer2 拓扑通过集群范围的逻辑交换机连接工作负载。OVN-Kubernetes Container Network Interface (CNI)插件使用 Geneve (通用网络虚拟化封装)协议在节点间创建覆盖网络。您可以使用此覆盖网络在不同的节点上连接虚拟机,而无需配置任何其他物理网络基础架构。

要配置 OVN-Kubernetes 二级网络并将虚拟机附加到该网络,请执行以下步骤:

7.4.1. 创建 OVN-Kubernetes NAD

您可以使用 Red Hat OpenShift Service on AWS web 控制台或 CLI 创建 OVN-Kubernetes 网络附加定义(NAD)。

注意

不支持在虚拟机的网络附加定义中配置 IP 地址管理(IPAM)。

7.4.1.1. 使用 CLI 为第 2 层拓扑创建 NAD

您可以创建一个网络附加定义(NAD),它描述了如何将 pod 附加到第 2 层覆盖网络。

先决条件

  • 您可以使用具有 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": 1300, 5
                "netAttachDefName": "my-namespace/l2-network" 6
        }
    1
    CNI 规格版本。所需的值为 0.3.1
    2
    网络的名称。此属性不是命名空间。例如,您可以有一个名为 l2-network 的网络,该网络从两个不同的命名空间中存在的两个不同的 NetworkAttachmentDefinition 对象引用。此功能可用于连接不同命名空间中的虚拟机。
    3
    要配置的 CNI 插件的名称。所需的值为 ovn-k8s-cni-overlay
    4
    网络的拓扑配置。所需的值为 layer2
    5
    可选:最大传输单元 (MTU) 值。默认值由内核自动设置。
    6
    NetworkAttachmentDefinition 对象的 metadata 小节中的 namespacename 字段的值。
    注意

    上例配置了一个集群范围的覆盖,没有定义子网。这意味着实现网络的逻辑交换机仅提供第 2 层通信。您必须在创建虚拟机时配置 IP 地址,方法是设置静态 IP 地址,或在网络上为动态 IP 地址部署 DHCP 服务器。

  2. 应用清单:

    $ oc apply -f <filename>.yaml

7.4.1.2. 使用 Web 控制台为第 2 层拓扑创建 NAD

您可以创建一个网络附加定义 (NAD) 来描述如何将 pod 附加到第 2 层覆盖网络。

先决条件

  • 您可以使用具有 cluster-admin 权限的用户访问集群。

流程

  1. 在 web 控制台中进入 Networking NetworkAttachmentDefinition
  2. Create Network Attachment Definition。网络附加定义必须与 pod 或虚拟机位于同一个命名空间中。
  3. 输入唯一 Name 和可选 Description
  4. Network Type 列表中选择 OVN Kubernetes L2 overlay 网络
  5. Create

7.4.2. 将虚拟机附加到 OVN-Kubernetes 二级网络

您可以使用 Red Hat OpenShift Service on AWS web 控制台或 CLI 将虚拟机(VM)附加到 OVN-Kubernetes 二级网络接口。

7.4.2.1. 使用 CLI 将虚拟机附加到 OVN-Kubernetes 二级网络

您可以通过在虚拟机配置中包含网络详情,将虚拟机 (VM) 连接到 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
          nodeSelector:
            node-role.kubernetes.io/worker: '' 4
    # ...
    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
  3. 可选:如果编辑了正在运行的虚拟机,您必须重启它才能使更改生效。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.