Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

将虚拟网络扩展到 Apstra

总结 从 CN2 版本 23.1 或更高版本开始,您可以将虚拟网络从 Kubernetes 群集扩展到由 Apstra 管理的数据中心交换矩阵。

概述

数据中心通常混合了容器化工作负载(SR-IOV Pod、非 SR-IOV Pod)和 BMS。SR-IOV 服务器在数据中心中广泛使用,因为这些服务器可实现高效的 I/O 虚拟化。在 SR-IOV 服务器上创建工作负载并将虚拟功能附加到容器时,工作负载会直接使用交换矩阵底层。但是,您可能会遇到需要 SRIOV Pod 、非 SRIOV Pod 和 BMS 之间进行通信的情况。

不同类型的工作负载如下:

  • SR-IOV Pod :SR-IOV Pod 直接使用 IP 交换矩阵底层进行通信。SR-IOV 技术支持将物理网卡拆分为多个虚拟功能。Pod 附加到启用了 SR-IOV 的网卡的虚拟功能。服务器上启用了 SR-IOV 的 NIC 用于提供高效的 I/O 虚拟化。这些虚拟网卡或虚拟功能可以直接从 CN2 数据网络所连接的交换矩阵发送和接收数据包。

  • 非 SR-IOV Pod :非 SR-IOV Pod 使用 vRouter 叠加网络与其他非 SR-IOV Pod 进行通信。

  • 裸金属服务器:裸金属服务器是物理节点,不属于 CN2 集群。BMS 使用交换矩阵底层与 Pod 进行通信。在裸金属服务器上,您可以直接在原生操作系统上运行应用,也可以在容器上运行应用。

Juniper Apstra 用于配置交换矩阵,以便为不同的工作负载提供所需的底层连接。Apstra 是瞻博网络基于意图的网络软件,可自动执行和验证数据中心网络的设计、部署和运维。CN2 与 Apstra 软件集成,用于配置交换矩阵底层。有关 Apstra 的更多信息,请参阅《 瞻博网络 Apstra 用户指南》。

注意:

我们在文档中提到了 主节点 。Kubernetes 指的是 主节点。本指南中对主节点的引用与 Kubernetes 术语中的主节点相关联。

示例:使用 SR-IOV Pod 部署 CN2 Kubernetes

图 1 显示了 CN2 Kubernetes 部署的示例。此部署使用 Apstra 为 SR-IOV Pod 配置 IP 交换矩阵底层。 表 1 介绍了不同的组件。

图 1:CN2 Kubernetes 部署 CN2 Kubernetes Deployment
表 1:CN2 Apstra 组件
组件 说明
SR-IOV 工作器节点 SR-IOV 工作器节点连接到 IP 交换矩阵中的叶设备。这些节点属于 CN2 群集,具有支持 SRIOV 的 NIC,这些 NIC 可以拆分为虚拟功能。

在 SR-IOV 工作节点上创建容器时,容器的接口可以连接到启用了 SR-IOV 的网卡上的虚拟功能。启用了 SRIOV 的网卡又连接到 IP 交换矩阵中的叶设备。

CN2 Apstra 插件 CN2 Apstra 插件将虚拟网络扩展到 IP 交换矩阵。此插件侦听 CN2 Kubernetes 事件,例如创建 NAD、将 Pod 附加到虚拟网络以及创建虚拟网络路由器 (VNR)。然后,该插件会通过 Apstra 为底层配置 IP 交换矩阵。
Apstra Apstra 配置 IP 交换矩阵,以便为 SR-IOV Pod 提供所需的底层连接。Apstra 还提供有关哪个叶端口连接到哪个工作节点的拓扑信息。CN2 Apstra 插件使用此信息来配置虚拟网络成员资格。该插件根据生成 SR-IOV Pod 的工作器节点,在相关结构端口上配置虚拟网络成员资格。

先决条件

要使用此功能,必须安装以下内容:

  • Juniper Apstra 版本 4.1.2 或更高版本

  • 安装了以下项目的 CN2 群集:

    • 具有启用了 SR-IOV 的网卡的 SR-IOV 工作器节点

    • 非 SR-IOV 工作器节点

  • 以下插件:

    • 多图斯插件

    • SR-IOV 网络设备插件

    • CN2 IPAM 插件

  • 拓扑中使用的交换机上的许可证

    瞻博网络 QFX 交换机需要软件许可证才能使用高级功能。为确保您的 IP 交换矩阵具有所需的许可证,请参阅《 瞻博网络许可指南》。

    注意:

    请确保按照 安装工作流程的步骤 4 中所述,将结构载入 Apstra 蓝图。

考虑

在开始安装之前,请通读以下注意事项列表:

  • 此功能假定:

    • CN2 单群集部署

    • SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间的 VN 内和 VN 间通信的基本方法。不支持其他形式的路由,例如中心辐射型路由。

    • 一种简单的脊叶拓扑,其中 SR-IOV 工作节点仅连接到一个叶设备。如果 SR-IOV 工作节点连接到多个叶端口,请确保在此 SR-IOV 工作节点连接到的所有叶设备上配置所有叶端口。

  • Pod 可以是 SR-IOV Pod 或非 SR-IOV Pod 。SR_IOV Pod 使用交换矩阵底层,而非 SR-IOV Pod 通过 vRouter 使用叠加层。

  • BMS 不属于 CN2 集群。

  • 整个 BMS 可用于直接在主机操作系统上运行应用程序,其中 IP 在物理接口上配置。

    裸金属服务器正在运行多个虚拟机或容器,其中IP地址在虚拟接口上配置。

  • 在VN内部方法中,CN2 使用相同的子网将 IP 分配给 SR-IOV 和非 SRI-OV Pod 。在同一子网下,您必须使用未分配的IP在裸金属服务器中配置IP。

  • 在 Apstra 中创建 BMS 虚拟网络时,即使裸金属服务器仅连接到一台交换机,也必须选择该蓝图中的所有叶交换机。

  • 无法编辑在 CN2 中创建的虚拟网络和 NAD(例如 vlanID 和 VNI)中的字段。若要更改这些字段,必须重新创建虚拟网络和 NAD。

  • Apstra 仅接受大于或等于 4096 的 VNI。从 CN2 版本 23.1 开始,在较新的 CN2 安装上,我们将分配来自 4096 的 VNI。因此,此功能不适用于现有的 CN2 设置。如果从先前版本升级了现有 CN2 设置,则必须运行脚本以释放值小于 4096 的空闲 VNI。

  • 确保分配的 vlanID 不会与 Apstra 中分配的 vlanID 冲突。例如,您可能希望在 CN2 中使用更高范围(例如 2000 及以上)的 VLAN。

  • Pod 的 IP 地址由 CN2 IPAM 插件自动分配。

  • 在 CN2 中,您必须手动配置容器上的路由以进行 VN 间路由。例如:您可以使用命令 ip route add 10.30.30.0/8 via 10.20.20.1 访问 10.30.30.0/8 子网。

  • 重叠的 IP 地址和绑定接口(从启用了 SR-IOV 的 NIC 到叶交换机的链路)未在使用中。

  • 此功能仅支持 IPv4 寻址。

安装工作流程

按照此过程中的步骤安装和配置 CN2 Apstra 插件及其先决条件:

  1. 安装 Apstra 软件。

    安装和配置 Apstra 版本 4.1.2 或更高版本。请参阅《 Juniper Apstra 安装和升级指南》。

    如果您已有数据中心网络,Apstra 已经在管理交换矩阵。请确保为蓝图分配所需的资源池,例如 ASN 和环路 IP 地址。

  2. 安装 CN2 群集。

    安装和配置包含 Kubernetes 工作器节点的 CN2 群集。有关说明,请参阅《 适用于上游 Kubernetes 的 CN2 安装指南 》或《 适用于 OpenShift 容器平台的 CN2 安装指南 》中的“安装”部分。

  3. 安装插件。

    1. 多图斯插件:

      通过此插件,您可以将多个网络接口附加到容器。有关安装说明,请参阅 Multus CNI for KubernetesMultus CNI for OpenShift 文档。

    2. SR-IOV 网络设备插件:

      此插件用于发现并通告 Kubernetes 主机上的 SR-IOV 虚拟功能的网络资源。有关说明,请参阅 适用于 Kubernetes 的 SR-IOV 网络设备插件 或适用于 OpenShift 的 SR-IOV 网络设备插件 文档。

    3. CN2 Apstra 插件:

      此插件作为 CN2 部署程序的一部分进行安装。请参阅 安装和配置 CN2 Apstra 插件 以安装插件。

    4. CN2 IPAM 插件:

      此插件为 Pod 分配 IP 地址。您可以在 SR-IOV 节点上安装此插件。请参阅 安装 CN2 IPAM 插件 以安装插件。

  4. 在 Apstra 中加入 IP 交换矩阵。

    您可以从 Apstra Web GUI 在 Apstra 中加入交换矩阵。有关入门说明,请参阅《 Juniper Apstra 用户指南》。

    • 请确保为蓝图分配所需的资源池,例如 ASN 和环回 IP 地址。

    • 确保 Apstra 蓝图中通用系统(即服务器)的主机名与相应 CN2 节点的主机名匹配。还必须标记将工作器节点上启用了 SRIOV 的网卡连接到结构端口的 SR-IOV 链路。安装插件时,您将在 CN2 Apstra 插件 CRD 中 sriov_link_tag 输入相同的值。下图显示了 Apstra 蓝图中的拓扑示例,其中编辑了通用系统的主机名以匹配 CN2 工作器节点的相应主机名。该图还显示了为上述 SR-IOV 链路配置的 SRIOV 标记。

  5. 验证您的安装。

    有关说明,请参阅 验证安装

安装和配置 CN2 Apstra 插件

本节介绍如何安装和配置 CN2 Apstra 插件。

CN2 Apstra 插件作为部署程序的一部分进行安装。CN2 Apstra 插件将虚拟网络扩展到交换矩阵,侦听 CN2 Kubernetes 事件(例如 NAD 创建),并通过 Apstra SDK 为底层配置交换矩阵。

根据您的安装,使用以下文件安装和配置插件:

  • 对于 Kubernetes,请使用 single_cluster_deployer_example.yaml 该文件。

  • 对于 OpenShift,将目录中的所有文件 ocp/plugins 复制到目录结构中的上一级。

要安装和配置 CN2 Apstra 插件,请执行以下操作:

  1. 取消注释文件中的apstra-plugin-secretsingle_cluster_deployer_example.yamlcontrail-apstra-plugin

  2. apstra-plugin-secret 相应部署程序文件的部分中输入您的 Apstra 凭据(用户名和密码)。确保您的凭据采用 base64 编码。

    例如:

  3. 在 中contrail-apstra-plugin输入 的blueprint name, server_ip, sriov_link tag参数,如以下示例所示。请确保 的sriov_link tag参数与您在 Apstra 中指定的参数相同。

    此示例还显示了从中获取contrail-apstra-plugin图像的图像 URL。如果需要,您可以编辑图像 URL。例如,您可以将图像23.1中 的值release_number更改为 。

    为了帮助理解每个字段的含义,请运行 kubectl explain apstraplugin.spec 命令。

    注意:

    以下示例仅供参考。只有在部署 CN2 Apstra 插件后,才能运行此命令。

通过上述步骤,您已在部署程序中进行了安装 CN2 Apstra 插件所需的更改。现在,您可以按照《 适用于上游 Kubernetes 的 CN2 安装指南 》或《 适用于 OpenShift 容器平台的 CN2 安装指南》中的说明继续安装 CN2。

注意:

即使已完成 CN2 安装,您仍然可以如上述步骤所述在部署程序 YAML 中编辑 CN2 Apstra 插件参数,然后重新安装 CN2。

验证您的安装

运行以下命令 kubectl 以验证您的安装是否已启动并正在运行。例如:

安装 CN2 IPAM 插件

按照此过程为 Kubernetes 和 OpenShift 部署安装 CN2 IPAM 插件。此过程假定 CN2 已安装在 Kubernetes 群集上。在此过程中,我们将展示单群集部署。

要安装和配置 CN2 IPAM 插件,请执行以下操作:

  1. kubectl get nodes运行命令以查看可用节点列表。
  2. 为启用了 SR-IOV 的 NIC 的每个工作器节点添加标签sriov:"true"。例如:
  3. 在 CRD 上contrail-vrouters-nodes添加。sriovLabelSelector
    在 CRD 的规范字段下,添加以下信息:
  4. 验证插件安装。

    等待 vRouter Pod 在主节点上重新启动。验证是否已 cn2-ipam安装 和 sriov 二进制文件,如以下示例所示:

    注意:

    二进制文件的默认位置取决于您使用的是 Kubernetes 还是 OpenShift:

    • 对于 Kubernetes,二进制文件驻留在 /opt/cni/bin/ 目录中。

    • 对于 OpenShift,二进制文件驻留在 /var/lib/cni/bin/ 目录中。

VN 内和VN 间方法

本节介绍配置 SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间通信的两种方法:VN 内和 VN 间。

您可以根据需要使用 VN 内部方法或 VN 间方法。如果要查看每种方法的配置工作流摘要,请参阅 表 2表 3

VN 内方法

在 VN 内部方法中,Pod 连接到同一虚拟网络。默认情况下,同一虚拟网络上的 Pod 可以相互通信,无论以下情况如何:

Pod 在相同的工作器节点或不同的工作器节点上生成。

工作器节点连接到同一叶设备或不同的叶。

VN 内方法:SR-IOV Pod 之间的通信

图 2 显示了 VN 内部拓扑的示例,其中 SR-IOV Pod 连接到同一虚拟网络。此脊叶式拓扑显示了两个 SR-IOV 工作器节点。每个节点都有一个启用了 SR-IOV 的物理网卡。这些物理网卡(ens801f2 和 ens801f3)可以拆分为虚拟功能并连接到 Pod 以实现直接 I/O。当数据包通过这些虚拟功能时,将使用相应的 VLAN 标记数据包。在这种方法中,数据包不会通过 vRouter,而是直接进入 Apstra 配置的 IP 交换矩阵底层。

图 2:VN 内:SR-IOV Pod Intra-VN: Communication Between SR-IOV Pods 之间的通信

VN 内方法:SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间的通信

图 3 显示了连接到同一虚拟网络的 SR-IOV Pod 、非 SR-IOV Pod 和 BMS 的示例。本示例中的 Pod 和裸金属服务器使用相同的 VNI 和子网。

在此方法中,在 CN2 控制节点和 IP 交换矩阵之间建立 EVPN 会话,以相互交换 VXLAN 协议使用的 EVPN 类型 2 路由。SR-IOV Pod 和裸金属服务器 VTEP 接口位于交换矩阵上。非 SR-IOV Pod 的 VTEP 接口驻留在虚拟路由器上。

如下图所示,裸金属服务器与SR-IOV和非SR-IOV Pod挂载在同一虚拟网络,但不属于CN2集群。

图 3:SR-IOV Pod 、非 SR-IOV Pod 和 BMS Intra-VN Communication Between SR-IOV Pods, Non-SR-IOV Pods, and BMS 之间的 VN 内部通信
注意:

有关配置 VN 内通信的信息,请参阅 配置VN 内通信简介

VN 间方法

在VN间方法中,CN2 Pod 和 BMS 工作负载附加到不同的虚拟网络。以下章节展示了配置容器与裸金属服务器之间通信所需的配置。

VN 间方法:SR-IOV Pod 之间的通信

下图显示了 SR-IOV Pod 之间的 VN 间拓扑示例。

图 4:VN 间:SR-IOV Pod Inter-VN: Communication Between SR-IOV Pods 之间的通信

VN 间方法:SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间的通信

在VN间方法中,Pod 和裸金属服务器属于不同的虚拟网络。为了实现这种通信,我们在 CN2 控制节点和交换矩阵之间使用了 EVPN 5 类路由交换。例如:

图 5:示例:SR-IOV Pod 、非 SR-IOV Pod 和 BMS Example: Inter-VN Communication Between SR-IOV Pods, Non-SR-IOV Pods, and BMS 之间的 VN 间通信
注意:

有关配置 VN 间通信的信息,请参阅 配置VN 间通信简介

VN 内通信配置简介

表 2 总结了在以下版本之间配置 VN 内通信所需的过程:

  • SR-IOV 吊舱和其他 SR-IOV 吊舱

  • SR-IOV Pod 和非 SR-IOV Pod

  • SR-IOV 吊舱、非 SR-IOV 吊舱和 BMS

在继续填写表格之前,请查看 先决条件VN 内方法

表 2:VN 内配置工作流摘要
  SR-IOV Pod 非 SR-IOV Pod 非 SR-IOV Pod 和 BMS
SR-IOV Pod
  1. 创建 SR-IOV NAD(带有 Asptra 插件标签)

  2. 创建 SR-IOV 容器并将该容器连接到 SR-IOV NAD。

有关每个步骤的详细信息,请参阅 配置 SR-IOV Pod 之间的 VN 内通信

预配置设置 (仅执行一次)

  1. 将封装优先级 vxlan 更改为 CN2 中。

  2. 在 Apstra 中创建远程 EVPN 网关。

  3. 在 CN2 中配置 a BGPRouter

配置步骤

  1. 创建一个通用 VirtualNetwork 的 Apstra 插件标签。

  2. 创建 SR-IOV NAD 并引用通用虚拟网络。

  3. 创建 SR-IOV 容器并将该容器连接到 SR-IOV NAD。

  4. 创建非 SR-IOV NAD 并引用公共 VirtualNetwork .

  5. 创建非 SR-IOV 容器并将该容器连接到非 SR-IOV NAD。

有关每个步骤的详细信息,请参阅 配置 SR-IOV Pod 和非 SR-IOV Pod 之间的VN 内通信

  1. 完成预配置设置,然后按照上一列中的配置步骤操作(SR-IOV 容器到非 SR-IOV 容器)。

  2. 在 Apstra 中,将交换矩阵端口(连接到裸金属服务器)分配给 CN2 在 Apstra 中创建的虚拟网络。

有关各步骤的详细信息,请参见 配置SR-IOV Pod、非SR-IOV Pod和BMS之间的VN内通信

配置 VN 内通信

按照本节中的步骤配置 SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间的 VN 内通信。

开始之前

在开始配置之前,请仔细阅读以下注意事项列表:

  • 在VN内方法中,您可以在Pod 和裸金属服务器之间使用相同的子网。在裸金属服务器中配置IP地址时,必须使用未分配的IP地址,以避免与CN2分配的IP发生冲突。

    例如:如果子网为 10.20.20.0/24,CN2 将从低端为 Pod 分配 IP 地址,如 10.20.20.2、10.20.20.3 等。对于裸金属服务器,建议您使用高端的IP地址,如10.20.20.200、10.20.20.201、10.20.20.202,以避免冲突。

    根据您是在物理接口上还是在虚拟接口上配置 IP,您必须在 Apstra 中使用适当的连接模板(分别为未标记或已标记)。该模板用于配置将 BMS 连接到交换矩阵的端口。有关更多信息,请参阅《 Juniper Apstra 用户指南 》。

  • 配置SR-IOV容器与裸金属服务器之间的通信或非SR-IOV容器与裸金属服务器之间的通信,请参见 配置SR-IOV容器、非SR-IOV容器与裸金属服务器之间的VN内通信

配置 SR-IOV Pod 之间的VN 内通信

要配置 SR-IOV Pod 之间的VN 内通信,请执行以下操作:

  1. 使用 Apstra 插件标签创建 NAD,如以下示例所示:

    创建此对象时,CN2 Apstra 插件会侦听 NAD,并通过 Apstra 将 NAD 扩展到 VirtualNetwork 交换矩阵。

  2. kubectl apply -f sriov_net20_nad.yaml发出命令以创建 NAD。
    创建 NAD 后,CN2 Apstra 插件会侦听更改,并通过 Apstra SDK 配置交换矩阵。
  3. 接下来,创建 SR-IOV 容器。
    在以下示例中,除了虚拟函数的资源名称 ( intel.com/intel_sriov_netdevice) 之外,我们还引用了我们在步骤 1 中创建的 NAD ( sriov-net20)。

    创建容器时,CN2 Apstra 插件会侦听容器创建事件,并置备结构以将相关结构端口 VirtualNetwork分配给 .

现在,您已配置 SR-IOV Pod 之间的VN 内通信。

配置 SR-IOV Pod 和非 SR-IOV Pod 之间的 VN 内通信

在 SR-IOV Pod 和非 SR-IOV Pod 之间配置 VN 内通信涉及两组步骤:预配置设置和配置。无论配置多少个虚拟网络和 Pod,都只需执行一次预配置设置。
要完成预配置设置,请执行以下操作:
  1. 使用命令将kubectl edit GlobalVrouterConfig default-global-vrouter-config封装优先级更改为 CN2 中的封装优先级vxlan

  2. 在 Apstra 中创建远程 EVPN 网关。有关说明,请参阅《 Juniper Apstra 用户指南 》中的“远程 EVPN 网关(虚拟)”一章。

  3. 在 CN2 中,配置 BGPRouter.

    在以下示例中,我们将引用交换矩阵的环路 IP 地址:()、10.1.1.3ASN 编号 (65003) 和用于交换 EVPN 2 类路由的家族 (- e-vpn)。

要在 SR-IOV Pod 和非 SR-IOV Pod 之间配置 VN 内通信,请执行以下操作:

  1. 创建一个通用VirtualNetwork(带有 Apstra 插件标签)以将虚拟网络扩展到交换矩阵。
    在以下示例中,我们将创建一个引用该子网的 a Subnet VirtualNetwork a。
  2. 为 SR-IOV 容器创建 NAD(使用 Apstra 插件标签)。
    在以下示例中,我们引用 VirtualNetwork了在步骤 1 中创建的 ( net20)。
  3. 创建 SR-IOV 容器。
    在以下示例中,我们引用了在步骤 2 中创建的 NAD ( sriov-net20)。

    创建容器时,CN2 Apstra 插件会侦听容器创建事件,并置备结构以将相关结构端口 VirtualNetwork分配给 .

  4. 为非 SR-IOV 容器创建 NAD。
    在以下示例中,我们将引用创建步骤 1 的同一虚拟网络 ( net20)。
  5. 创建非 SR-IOV 容器。
    在以下示例中,引用了我们在步骤 4 中创建的 NAD ( non-sriov-net20)。
    注意:

    如果您要配置容器与裸金属服务器之间的通信,请继续 执行配置SR-IOV容器、非SR-IOV容器和裸金属服务器之间的VN内通信 步骤2,完成配置。

现在,您已配置 SR-IOV 容器和非 SR-IOV 容器之间的VN 内通信。

配置 SR-IOV Pod 、非 SR-IOV Pod 和裸金属服务器之间的VN 内通信

注意:

本文介绍如何配置 SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间的VN 内通信。

  • 对于 SR-IOV Pod 与裸金属服务器之间的通信,请按照以下步骤操作,但请勿创建非 SR-IOV NAD 和非 SR-IOV 容器。

  • 对于非 SR-IOV 容器与裸金属服务器之间的通信,请按照以下步骤操作,但请勿创建 SR-IOV NAD 和 SR-IOV 容器。

要在 SR-IOV Pod 、非 SR-IOV Pod 和裸金属服务器之间配置 VN 内通信:

  1. 完成配置 SR-IOV 容器与非 SR-IOV 容器之间的VN 内部通信过程中的预配置设置和配置步骤。
  2. 在 Apstra 中,标识 VirtualNetwork CN2 基于 VNI 创建的内容。
  3. 将 Apstra 中的相关交换矩阵端口(连接到裸金属服务器)分配给此虚拟网络。
    请确保使用适当的连接模板(未标记或已标记)将端口分配给虚拟网络。有关说明,请参阅《 Juniper Apstra 用户指南 》。
您现在已经配置了 SR-IOV 容器、非 SR-IOV 容器和裸金属服务器之间的VN 内通信。

配置VN间通信简介

表 3 总结了在以下两者之间配置 VN 间通信所需的过程:

  • SR-IOV 吊舱和其他 SR-IOV 吊舱

  • SR-IOV Pod 和非 SR-IOV Pod

  • SR-IOV 吊舱、非 SR-IOV 吊舱和裸金属服务器

在继续讨论之前,请查看 先决条件VN 间方法

表 3:VN 间配置工作流摘要
  SR-IOV Pod 非 SR-IOV Pod 非 SR-IOV Pod 和 BMS
SR-IOV Pod
  1. 创建 SR-IOV NAD(带有 Asptra 插件标签和 VNR 标签)。

  2. 创建 SR-IOV 容器并将该容器附加到 NAD。

  3. 创建 VNR。

  4. 在容器中配置所需的路由。

有关每个步骤的详细信息,请参阅 配置 SR-IOV Pod 之间的 VN 间通信

预配置设置 (仅执行一次)

  1. 将封装优先级 vxlan 更改为 CN2 中。

  2. 在 Apstra 中创建远程 EVPN 网关。

  3. 在 CN2 中创建。BGPRouter

配置步骤

  1. 创建 SR-IOV NAD(带有 Apstra 插件标签和 VNR 标签)。

  2. 创建 SR-IOV 容器并将该容器连接到 SR-IOV NAD。

  3. 创建非 SR-IOV NAD(带有 VNR 标签)。

  4. 创建非 SR-IOV 容器并将该容器连接到非 SR-IOV NAD。
  5. 创建 VNR 并将路由类型指定为 routingType:evpn

  6. 在容器中配置所需的路由。

有关每个步骤的详细信息,请参阅 配置 SR-IOV Pod 和非 SR-IOV Pod 之间的 VN 间通信

  1. 完成预配置设置,然后按照上一列(SR-IOV 容器到非 SR-IOV 容器)中的配置步骤(1 到 5)操作。

  2. 在 Apstra 中手动为裸金属服务器创建虚拟网络。

  3. 在 CN2 中,创建对在上述步骤 2 中创建的虚拟网络的引用 NAD(带有 vnr 标签)。

  4. 在裸金属服务器和 CN2 Pod 中配置所需的路由。

有关每个步骤的详细信息,请参阅 配置 SR-IOV Pod 、非 SRIOV Pod 和裸金属服务器之间的VN 间通信

配置 VN 间通信

按照本节中的步骤配置 SR-IOV Pod 、非 SR-IOV Pod 和 BMS 之间的 VN 间通信。

开始之前

在开始配置之前,请仔细阅读以下注意事项列表:

  • 对于 VN 间路由,必须在 CN2 中创建。VirtualNetworkRouter

  • 在 VN 间方法中,您必须手动配置 Pod 上的路由。例如:您可以使用命令 ip route add 10.30.30.0/8 via 10.20.20.1 访问 10.30.30.0/8 子网。

  • QFX5200交换机不支持 EVPN 5 类路由和边缘路由桥接 (ERB)。有关详细信息 ,请参阅 QFX 系列交换机的边缘路由桥接

    有关在 VN 间拓扑中使用受支持瞻博网络设备的列表,请参阅 EVPN-VXLAN 拓扑中的第 3 层连接。此外,请确保 QFX 设备运行的是 Junos OS 版本 20.2R2.11 或更高版本。

配置 SR-IOV Pod 之间的 VN 间通信

要在 SR-IOV Pod 之间配置 VN 间通信,请执行以下操作:

  1. 创建 SR-IOV NAD(带有 VN 标签和 Apstra 插件标签),如以下示例所示:
  2. kubectl apply -f sriov_net30_nad.yaml 发出命令以创建 NAD。
    CN2 Apstra 插件侦听 NAD 事件,并通过 Apstra 将虚拟网络扩展到交换矩阵。您可以按照相同的模式根据需要创建其他 NAD。
  3. 创建 SR-IOV 容器并将该容器连接到 SR-IOV NAD。
    在以下示例中,除了虚函数 的资源名称 ( intel.com/intel_sriov_netdevice) 之外,我们还引用了我们在步骤 1 中创建的 NAD ( sriov-net30)。
  4. kubectl apply -f pod.yaml运行命令以创建容器。
    CN2 Apstra 插件侦听容器创建事件并调配交换矩阵,以便将相关交换矩阵端口分配给虚拟网络。
  5. 创建 VNR 以使用通用标签路由不同的虚拟网络。
    在以下示例中,通用标签为: vn: web
  6. 在 Pod 中配置所需的路由以到达其他子网。例如:
现在,您已经配置 SR-IOV Pod 之间的 VN 间通信。

配置 SR-IOV Pod 与非 SR-IOV Pod 之间的 VN 间通信

配置 SR-IOV Pod 和非 SR-IOV Pod 之间的 VN 间通信涉及两组步骤:预配置设置和配置。无论配置多少个虚拟网络和 Pod,都只需执行一次预配置设置。
要完成预配置设置,请执行以下操作:
  1. 使用命令将kubectl edit GlobalVrouterConfig default-global-vrouter-config封装优先级更改为 CN2 中的封装优先级vxlan

  2. 在 Apstra 中创建远程 EVPN 网关。有关说明,请参阅《 Juniper Apstra 用户指南 》中的“远程 EVPN 网关(虚拟)”一章。

  3. 在 CN2 中,配置 BGPRouter.

    在以下示例中,我们将引用交换矩阵的环路 IP 地址:()、10.1.1.3ASN 编号 (65003) 和用于交换 EVPN 2 类路由的家族 (- e-vpn)。

要在 SR-IOV Pod 和非 SR-IOV Pod 之间配置 VN 间通信,请执行以下操作:

  1. 创建 SR-IOV NAD(带有 VN 标签和 Apstra 插件标签),如以下示例所示:
  2. 创建 SR-IOV 容器并将该容器连接到 SR-IOV NAD。
    在此示例中,我们将引用在步骤 1 中创建的 NAD ( ) net30和虚拟函数的 SR-IOV Pod (intel.com/intel_sriov_netdevice的资源名称。 创建容器时,CN2 apstra 插件会侦听容器创建事件,并置备交换矩阵以将相关交换矩阵端口分配给虚拟网络。
  3. 创建非 SR-IOV NAD(带 vn 标签),如以下示例所示:
  4. 创建非 SR-IOV 容器并将该容器连接到非 SR-IOV NAD。
    请注意,我们引用的是我们在步骤 3 中创建的 NAD ( net20)。
  5. 创建 VNR 以使用通用标签路由不同的虚拟网络。在以下示例中,通用标签为:vn: web
    注意:

    如果您正在配置容器与裸金属服务器之间的通信,现在可以继续执行 配置 SR-IOV 容器、非 SRIOV 容器与裸金属服务器之间的VN 间通信 中的步骤 2 以完成配置。

  6. 在容器中配置所需的路由。例如:
现在,您已配置 SR-IOV 容器和非 SR-IOV 容器之间的 VN 间通信。

配置 SR-IOV Pod 、非 SRIOV Pod 和裸金属服务器之间的VN 间通信

要在 SR-IOV Pod 、非 SR-IOV Pod 和裸金属服务器之间配置 VN 间通信:

  1. 完成预配置设置,然后按照配置 SR-IOV Pod 和非 SR-IOV Pod 之间的 VN 间通信过程中的步骤 1 到 5 进行操作。
  2. 在 Apstra 中手动为裸金属服务器创建虚拟网络。有关说明,请参阅《Juniper Apstra 用户指南》。
    注意:

    虽然可以使用 CN2 在 Apstra 中创建所需的 VirtualNetwork 内容,但我们也会解决已在 Apstra 中创建 BMS 所需内容的用例 VirtualNetwork

  3. 在 CN2 中创建与 Apstra 中的裸金属服务器虚拟网络同名的引用 NAD(带 vn 标签)。此外,添加标签juniper.net/ssor: apstra以将此 NAD 从 Apstra 同步到 CN2。例如:
  4. 在裸金属服务器和 CN2 Pod 中配置所需的路由。例如:
您现在已经配置了 SR-IOV 容器、非 SR-IOV 容器和裸金属服务器之间的VN 间通信。