你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Red Hat OpenShift 的网络概念

本指南概述 OpenShift 4 群集上的 Azure Red Hat OpenShift 网络,并提供重要终结点的示意图和列表。 若要详细了解核心 OpenShift 网路概念,请参阅 Azure Red Hat OpenShift 4 网络文档

Azure Red Hat OpenShift 网络示意图。

在 OpenShift 4 上部署 Azure Red Hat OpenShift 时,整个群集将包含在虚拟网络中。 在此虚拟网络中,控制平面节点和工作器节点位于各自的子网中。 每个子网都使用一个内部负载均衡器和一个公共负载均衡器。

备注

有关 ARO 引入的最新更改的信息,请查看 Azure Red Hat OpenShift 的新增功能

联网组件

以下列表涵盖 Azure Red Hat OpenShift 群集中的重要网络组件。

  • aro-pls

    • Microsoft 和 Red Hat 站点可靠性工程师使用此 Azure 专用链接终结点来管理群集。
  • aro-internal

    • 此终结点对发往 API 服务器的流量和内部服务流量进行均衡。 控制平面节点和工作器节点位于后端池中。
    • 默认不会创建此负载均衡器。 创建具有正确注释的 LoadBalancer 类型的服务后,将创建此负载均衡器。 例如:service.beta.kubernetes.io/azure-load-balancer-internal: "true"。
  • aro

    • 此终结点用于公共流量。 创建应用程序和路由时,此终结点是入口流量的路径。
    • 此终结点还会将流量路由到 API 服务器并对其进行均衡(如果使用公共 API)。 此终结点分配一个公共传出 IP,以便控制平面节点可以访问 Azure 资源管理器并发回有关群集运行状况的报告。
    • 此负载均衡器还通过 Azure 负载均衡器出站规则应用于来自工作器节点中运行的任何 Pod 的出口 Internet 连接。
      • 当前出站规则不可配置。 这些规则为每个节点分配 1,024 个 TCP 端口。
      • LB 规则中未配置 DisableOutboundSnat,因此 Pod 可以获取此 ALB 中配置的任何公共 IP 作为出口 IP。
      • 作为前两点的结果,添加临时 SNAT 端口的唯一方法就是将公共 LoadBalanceer 类型的服务添加到 ARO。
  • aro-nsg

    • 公开服务时,API 将在此网络安全组中创建一个规则,使流量流经并通过端口 6443 进入控制平面和节点。
    • 默认情况下,此网络安全组允许所有出站流量。 目前,只能将出站流量限制到 Azure Red Hat OpenShift 控制平面。
  • Azure 容器注册表

    • 此容器注册表由 Microsoft 在内部提供和使用。 此注册表是只读的,不可供 Azure Red Hat OpenShift 用户使用。
      • 此注册表提供主机平台映像和群集组件。 例如监视用或记录用容器。
      • 与此注册表的连接是经由服务终结点建立的(Azure 服务之间的内部连接)。
      • 默认情况下,此内部注册表在群集外部不可用。
  • 专用链接

    • 使用专用链接可以建立从管理平面到群集的网络连接。 Microsoft 和 Red Hat 站点可靠性工程师使用专用链接来帮助管理你的群集。

网络策略

  • 流入量:流入量网络策略作为 OpenShift SDN 的一部分受到支持。 默认启用此网络策略,由用户执行。 尽管入口网络策略符合 V1 NetworkPolicy,但不支持 Egress 和 IPBlock 类型。

  • 流出量:通过使用 OpenShift 中的出口防火墙功能来支持流出量网络策略。 每个命名空间/项目只有一个出口策略。 出口策略不受“默认”命名空间支持,而是按顺序(从前到后)评估的。

OpenShift 中的网络基础知识

OpenShift 软件定义的网络 (SDN) 用于通过 Open vSwitch (OVS) 配置叠加网络,这是一种基于容器网络接口 (CNI) 规范的 OpenFlow 实现。 SDN 支持不同的插件。 网络策略是 OpenShift 4 上的 Azure Red Hat 中使用的插件。 所有网络通信都由 SDN 管理,因此虚拟网络上不需要额外的路由来实现 Pod 到 Pod 通信。

Azure Red Hat OpenShift 的网络

以下网络功能特定于 Azure Red Hat OpenShift:

  • 用户可以在现有虚拟网络中创建 Azure Red Hat OpenShift 群集,也可以在创建群集时创建新的虚拟网络。
  • Pod 和服务网络 CIDR 是可配置的。
  • 节点和控制平面位于不同的子网中。
  • 节点和控制平面虚拟网络子网的最小值应设为 /27。
  • 默认 Pod CIDR 为 10.128.0.0/14。
  • 默认服务 CIDR 为 172.30.0.0/16。
  • Pod 和服务网络 CIDR 不应与网络中使用的其他地址范围重叠。 它们不得在群集的虚拟网络 IP 地址范围内。
  • Pod CIDR 的最小大小应设为 /18。 (Pod 网络是不可路由的 IP,并且仅在 OpenShift SDN 内使用。)
  • 每个节点都为其 Pod 分配 /23 子网 (512 个 IP)。 不能更改此值。
  • 不能将一个 Pod 附加到多个网络。
  • 对于使用 OVN-Kubernetes 网络插件的专用 ARO 群集,可以配置出口 IP。 有关信息,请参阅配置出口 IP 地址

网络设置

以下网络设置适用于 Azure Red Hat OpenShift 4 群集:

  • “API 可见性”- 设置当运行 az aro create command 时的 API 可见性。
    • “公共”- 外部网络可访问 API 服务器。
    • “专用”- 从控制平面子网向 API 服务器分配了专用 IP,只能使用连接的网络(对等互连的虚拟网络和群集中的其他子网)访问该服务器。
  • “入口可见性”- 设置当运行 az aro create command 时的 API 可见性。
    • “公共”路由默认为公共标准负载均衡器。 (可以更改默认值。)
    • “专用”路由默认为内部负载均衡器。 (可以更改默认值。)

网络安全组

在节点的资源组中创建网络安全组,该资源组已向用户锁定。 直接向不在节点 NIC 上的子网分配网络安全组。 网络安全组是不可变的。 用户无权更改它们。

如果 API 服务器公开可见,则无法创建网络安全组并将其分配给 NIC。

域转发

Azure Red Hat OpenShift 使用 CoreDNS。 可以配置域转发。 你无法将自己的 DNS 引入虚拟网络。 有关详细信息,请参阅关于如何使用 DNS 转发的文档。

后续步骤

详细了解出站流量和 Azure Red Hat OpenShift 的出口支持,请参阅支持策略文档。