你当前正在访问 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 网络文档。
在 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 在内部提供和使用。 此注册表是只读的,不可供 Azure Red Hat OpenShift 用户使用。
专用链接
- 使用专用链接可以建立从管理平面到群集的网络连接。 Microsoft 和 Red Hat 站点可靠性工程师使用专用链接来帮助管理你的群集。
流入量:流入量网络策略作为 OpenShift SDN 的一部分受到支持。 默认启用此网络策略,由用户执行。 尽管入口网络策略符合 V1 NetworkPolicy,但不支持 Egress 和 IPBlock 类型。
流出量:通过使用 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 群集,也可以在创建群集时创建新的虚拟网络。
- 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 的出口支持,请参阅支持策略文档。