安装单群集共享网络 CN2

总结 查看如何在 Kubernetes 流量和 CN2 流量共享同一网络的部署中安装单群集 CN2 的示例。

在单个群集共享网络部署中:

  • CN2 是该群集的网络平台和 CNI 插件。Contrail 控制器在 Kubernetes 控制平面中运行,而 Contrail 数据平面组件在群集中的所有节点上运行。

  • Kubernetes 和 CN2 流量共享单个网络。

图 1 显示了按照单个群集共享网络示例创建的群集。该群集由一个控制平面节点和两个工作节点组成。

显示的所有节点都可以是虚拟机或裸机服务器。

图 1:单群集共享网络 CN2 Kubernetes nodes with Juniper Contrail integration: Control Plane Node with Contrail Controller at IP 172.16.0.11, two Worker Nodes at IPs 172.16.0.12 and 172.16.0.13, Fabric Network 172.16.0.0/24, Gateway to external network, local network access.

群集中节点之间以及节点与外部站点之间的所有通信都通过单个 172.16.0.0/24 交换矩阵虚拟网络进行。交换矩阵网络提供运行群集的底层。

本地管理员将附加到可通过网关访问的单独网络。这在许多安装中很典型,其中本地管理员从公司 LAN 管理交换矩阵和群集。在以下过程中,我们将本地管理员工作站称为本地计算机。

注意:

将所有群集节点连接在一起的是数据中心交换矩阵,在示例中显示为单个子网。在实际安装中,数据中心交换矩阵是由主干和分叶交换机组成的网络,为群集提供物理连接。

在 Apstra 管理的数据中心中,这种连接将通过您在底层交换矩阵交换机之间创建的叠加虚拟网络来指定。

本部分中的过程显示了如何使用提供的清单创建指定的 CN2 部署的基本示例。你不限于本部分中所述的部署,也不限于使用提供的清单。CN2 支持各种部署,数量众多,无法一一详述。使用提供的示例作为起点,根据您的具体情况滚动您自己的清单。

安装运行内核模式数据平面的 CN2 单群集共享网络

使用此过程可在运行内核模式数据平面的单个群集共享网络部署中安装 CN2。

您将在此示例过程中使用的清单是 single-群集/single_群集_deployer_example.yaml。该过程假定您已将此清单放入 清单 目录中。

  1. 创建 Kubernetes 群集。您可以按照创建 Kubernetes 集群中的示例过程进行作,也可以使用任何其他方法。创建具有以下特征的群集:
    • 群集没有 CNI 插件。
    • 禁用节点本地 DNS。
  2. 应用 Contrail 部署程序清单。

    节点和 Pod 可能需要几分钟时间才能启动。

  3. 使用标准 kubectl 命令检查部署。
    1. 显示节点的状态。
      您可以看到节点现在已启动。如果节点未启动,请等待几分钟,然后再次检查。
    2. 显示容器的状态。

      现在,所有 Pod 的 STATUS 都应为“正在运行”。如果没有,请等待几分钟,让 pod 启动。

    3. 如果某些 Pod 仍然关闭,请像往常一样调试部署。使用该kubectl describe命令查看 Pod 未启动的原因。常见错误是网络或防火墙问题导致节点无法访问瞻博网络存储库。

      下面是一个 DNS 问题的示例。

      登录到每个有问题的节点,并检查名称解析是否 enterprise-hub.juniper.net。例如:

      注意:

      虽然 enterprise-hub.juniper.net 没有配置为响应ping,但我们可以使用ping命令来检查域名解析。

      在此示例
      中,域名未解析。检查域名服务器配置以确保其正确无误。

      例如,在运行 systemd resolved 的 Ubuntu 系统中,检查 /etc/resolv.conf 是否链接到 /run/systemd/resolve/resolv.conf,如安装之前的步骤 5 中所述,并检查您的 DNS 服务器是否正确列在该文件中。

    4. 如果遇到无法解决的问题或在安装过程中出错,只需卸载 CN2 然后重新开始即可。要卸载 CN2,请参阅卸载 CN2。
  4. (可选)运行飞行后检查。请参阅运行飞行前检查和飞行后检查。

安装运行 DPDK 数据平面的 CN2 单群集共享网络

使用此过程在运行 DPDK 数据平面的单个群集共享网络部署中安装 CN2。

您将在此示例过程中使用的清单是 single-群集/single_群集_deployer_example.yaml。该过程假定您已将此清单放入 清单 目录中。

  1. 创建 Kubernetes 群集。您可以按照创建 Kubernetes 集群中的示例过程进行作,也可以使用任何其他方法。创建具有以下特征的群集:
    • 群集没有 CNI 插件。
    • 禁用节点本地 DNS。
    • 启用 multus 版本 0.3.1。
  2. 指定 DPDK 节点。
    对于运行 DPDK 的每个节点,请按如下方式标记它: 通过以这种方式标记节点,CN2 将使用清单中指定的 DPDK 配置。
  3. 应用 Contrail 部署程序清单。

    节点和 Pod 可能需要几分钟时间才能启动。

  4. 使用标准 kubectl 命令检查部署。
    1. 显示节点的状态。
      您可以看到节点现在已启动。如果节点未启动,请等待几分钟,然后再次检查。
    2. 显示容器的状态。

      现在,所有 Pod 的 STATUS 都应为“正在运行”。如果没有,请等待几分钟,让 pod 启动。

    3. 如果某些 Pod 仍然关闭,请像往常一样调试部署。使用该kubectl describe命令查看 Pod 未启动的原因。常见错误是网络或防火墙问题导致节点无法访问瞻博网络存储库。

      下面是一个 DNS 问题的示例。

      登录到每个有问题的节点,并检查名称解析是否 enterprise-hub.juniper.net。例如:

      注意:

      虽然 enterprise-hub.juniper.net 没有配置为响应ping,但我们可以使用ping命令来检查域名解析。

      在此示例
      中,域名未解析。检查域名服务器配置以确保其正确无误。

      例如,在运行 systemd resolved 的 Ubuntu 系统中,检查 /etc/resolv.conf 是否链接到 /run/systemd/resolve/resolv.conf,如安装之前的步骤 5 中所述,并检查您的 DNS 服务器是否正确列在该文件中。

    4. 如果遇到无法解决的问题或在安装过程中出错,只需卸载 CN2 然后重新开始即可。要卸载 CN2,请参阅卸载 CN2。
  5. (可选)运行飞行后检查。请参阅运行飞行前检查和飞行后检查。