你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Red Hat OpenShift 的网络拓扑和连接注意事项
使用 Azure Red Hat OpenShift 登陆区域加速器时,请查看有关网络拓扑和连接的设计注意事项和建议。
设计注意事项
Azure Red Hat OpenShift 需要主子网和辅助子网。
- 使用主子网部署群集的主节点。
- 使用辅助子网部署群集的工作器节点。
- 辅助子网和主子网应都是最小
/27
路由。 - 部署群集后,无法更改辅助子网或主子网。
- 主子网和辅助子网不能有与其关联的网络安全组。 Azure Red Hat OpenShift 群集会自动创建和管理网络安全组。
- 辅助子网和主子网不能与本地网络或 Azure 中的其他任何网络重叠。
仔细规划 IP 地址和虚拟网络子网的大小,以支持缩放群集。 可能需要添加节点。
可以使用公共或内部负载均衡器公开 Azure Red Hat OpenShift 服务和 路由 。 在与辅助节点相同的子网中设置内部负载均衡器。 在受限的出口群集中,由于非对称路由,无法使用公共负载均衡器。
Azure Red Hat OpenShift 使用 CoreDNS 为群集中运行的 Pod 提供名称解析。
- CoreDNS 直接解析群集内部域。
- Azure Red Hat OpenShift 还支持 虚拟网络中的自定义 DNS 服务器 。
- 其他域将转发到在 Azure 虚拟网络中配置的 DNS 服务器。 DNS 服务器将是默认的 Azure DNS 解析程序或任何在虚拟网络级别配置的自定义 DNS 服务器。
- 可以在 Azure Red Hat OpenShift CoreDNS 中自定义 DNS 转发。
- 如果未在虚拟网络中配置任何自定义 DNS 服务器,Azure Red Hat OpenShift 将使用默认的 Azure DNS 解析程序。
有关 DNS 的详细信息,请参阅 Azure 专用终结点 DNS 配置。
可以通过Azure 防火墙或通过网络虚拟设备群集发送出站(出口)网络流量。
- 默认情况下,Azure Red Hat OpenShift 群集具有不受限制的出口 Internet 访问。
- 可以通过添加具有
0.0.0.0/0
路由到Azure 防火墙或网络虚拟设备的用户定义的路由(UDR)来部署具有受限出口流量的 Azure Red Hat OpenShift。 Azure Red Hat OpenShift 具有 出口锁定 功能,可确保访问,即使出站流量受防火墙设备或其他方式限制。 - 可以从两种 Azure Red Hat OpenShift 部署模型中进行选择:
- 如果使用不受限制的出口访问,则必须仔细管理出站端口,以确保不使用所有可用的出站端口。 有关详细信息,请参阅 使用源网络地址转换(SNAT)进行出站连接。
默认情况下,Azure Red Hat OpenShift 群集中的所有 Pod 都可以发送和接收流量,且不受限制。 项目中的所有 Pod 都可以从其他 Pod 和网络终结点访问。 若要隔离项目中的一个或多个 Pod,可以在项目中创建
NetworkPolicy
对象来指示允许的传入连接。 Red Hat OpenShift 软件定义网络(SDN)支持在其默认网络隔离模式下使用 网络策略 。服务网格提供流量管理、复原能力、策略、安全性、强标识和可观测性等功能。 有关 Red Hat OpenShift 服务网格的详细信息,请参阅 服务网格和 Istio 差异。
全球负载均衡机制(例如Azure 流量管理器和 Azure Front Door)通过跨多个群集(可能在不同的 Azure 区域中)路由流量来提高复原能力。
专用群集
Azure Red Hat OpenShift API 群集 IP 地址可以是公共地址,也可以是专用地址。 专用群集 通过专用 IP 地址公开 Azure Red Hat OpenShift API,而不是通过公共 IP 地址公开。 不应通过其 IP 地址访问 Azure Red Hat OpenShift API。 而是通过其 完全限定的域名(FQDN)访问 Azure Red Hat OpenShift API。 Azure DNS 将 Azure Red Hat OpenShift API FQDN 解析为其 IP 地址。
根据经验证 的 Azure 登陆区域经过验证的做法,Azure 工作负载的 DNS 解析由在连接订阅中部署的集中式 DNS 服务器提供。 Azure DNS 服务器位于中心虚拟网络或连接到 Azure 虚拟 WAN实例的共享服务虚拟网络中。 DNS 服务器使用 Azure DNS(IP 地址 168.63.129.16
)有条件地解析特定于 Azure 的公共名称。 服务器使用公司 DNS 服务器解析专用名称。 此连接模型很常见,如果使用专用终结点,请务必允许对其他 Azure 资源进行专用访问。
从应用程序用户到群集的流量
使用传入(入口)控制器公开在 Azure Red Hat OpenShift 群集中运行的应用程序。
- 入口控制器 提供应用程序级路由,复杂性略有增加。
- Azure Red Hat OpenShift 创建一个通用 DNS 条目,简化了对群集中公开应用程序的访问。 例如,DNS 条目。
*.apps.<cluster-ID>.<region>.aroapp.io
专用群集可用于路由应用程序的流量。 - Azure Red Hat OpenShift 提供内置的 入口控制器和路由。
- 可以将 Azure Red Hat OpenShift 入口与 Azure Front Door 配合使用。
- 将配置与出口筛选设计保持一致,以避免非对称路由。 UDR 可能会导致非对称路由。
- 如果你的方案需要 TLS 终止,请考虑如何管理 TLS 证书。
重要
如果使用Azure 防火墙来限制出口流量并创建 UDR 来强制所有出口流量,请确保在Azure 防火墙中创建适当的目标网络地址转换(DNAT)规则,以正确允许入口流量。 结合使用 Azure 防火墙和 UDR 时,会因为路由不对称而中断入口设置。 如果 Azure Red Hat OpenShift 子网的默认路由转到防火墙的专用 IP 地址,但使用的是公共负载均衡器(类型 Load Balancer
为入口或 Kubernetes 服务),则会出现此问题。 在这种情况下,将通过负载均衡器的公共 IP 地址接收传入的负载均衡器流量,但返回路径将通过防火墙的专用 IP 地址。 由于防火墙是有状态的,因此会删除返回的数据包,因为防火墙不会检测到已建立的会话。 若要了解如何将 Azure 防火墙与入口或服务负载均衡器集成,请参阅将 Azure 防火墙与 Azure 标准负载均衡器集成。
以下步骤介绍了将 Azure Front Door 与 Azure Red Hat OpenShift 专用群集和入口控制器配合使用时流:
- 来自公共 Internet 的客户端解析指向 Azure Front Door 的应用程序的 DNS 名称。
- Azure Front Door 使用 Azure 专用链接 服务访问 Azure 内部网络负载均衡器的专用 IP 地址,并在 Azure Red Hat OpenShift 入口控制器中访问应用程序。
以下步骤描述了访问 Azure Red Hat OpenShift 专用群集的非 Web 应用程序的流:
- 来自公共 Internet 的客户端解析指向Azure 防火墙或网络虚拟设备的公共 IP 地址的应用程序的 DNS 名称。
- Azure 防火墙或网络虚拟设备使用 Azure 内部网络负载均衡器的专用 IP 地址访问 Azure Red Hat OpenShift 入口控制器中的应用程序,将流量(DNAT)转发到 Azure Red Hat OpenShift 专用群集。
从 Azure Red Hat OpenShift Pod 到后端服务的流量
在 Azure Red Hat OpenShift 群集中运行的 Pod 可能需要访问后端服务,例如 Azure 存储、Azure 密钥库、Azure SQL 数据库 和 Azure Cosmos DB。 可以使用虚拟网络服务终结点和Azure 专用链接来保护与这些 Azure 托管服务的连接。
如果对后端流量使用 Azure 专用终结点,则可以将 Azure 私人 DNS 区域用于 Azure 服务的 DNS 解析。 由于整个环境的 DNS 解析程序位于中心虚拟网络(或共享服务虚拟网络中,如果使用虚拟 WAN连接模型),请在连接订阅中创建这些专用区域。 若要创建解析专用服务的 FQDN 所需的 A 记录,可以将连接订阅中的专用 DNS 区域与应用程序订阅中的专用终结点相关联。 此操作需要这些订阅中的特定权限。
可以手动创建 A 记录,但将专用 DNS 区域与专用终结点相关联会导致设置不太容易配置错误。
从 Azure Red Hat OpenShift Pod 到通过专用终结点公开的 Azure 平台即服务(PaaS)服务的后端连接遵循以下顺序:
- Azure Red Hat OpenShift Pod 使用连接订阅中的中央 DNS 服务器(在 Azure Red Hat OpenShift 虚拟网络中定义为自定义 DNS 服务器)解析 Azure PaaS 的 FQDN。
- 解析的 IP 地址是从 Azure Red Hat OpenShift Pod 直接访问的专用终结点的专用 IP 地址。
默认情况下,Azure Red Hat OpenShift Pod 与专用终结点之间的流量不会通过中心虚拟网络中的Azure 防火墙实例(或安全虚拟中心(如果使用虚拟 WAN),即使 Azure Red Hat OpenShift 群集配置为使用 Azure 防火墙 进行出口筛选。 专用终结点在部署 Azure Red Hat OpenShift 的应用程序虚拟网络的子网中创建 /32
路由。
设计建议
- 如果安全策略要求为 Azure Red Hat OpenShift API 使用专用 IP 地址, 请部署专用 Azure Red Hat OpenShift 群集。
- 使用 Azure DDoS 防护来保护用于 Azure Red Hat OpenShift 群集的虚拟网络,除非在集中式订阅中使用Azure 防火墙或Web 应用程序防火墙。
- 使用 Azure 虚拟 WAN或中心辐射体系结构、Azure DNS 区域和你自己的 DNS 基础结构链接到整个网络设置的 DNS 配置。
- 使用Azure 专用链接来保护网络连接,并使用基于 IP 的专用连接连接到支持专用链接的其他托管 Azure 服务,例如Azure 存储、Azure 容器注册表、Azure SQL 数据库和 Azure 密钥库。
- 使用入口控制器提供高级 HTTP 路由和安全性,并为应用程序提供单个终结点。
- 配置为使用入口的所有 Web 应用程序都应使用 TLS 加密,不应允许通过未加密的 HTTP 进行访问。
- 将 Azure Front Door 与 Web 应用程序防火墙 配合使用,安全地将 Azure Red Hat OpenShift 应用程序发布到 Internet。
- 如果安全策略要求检查在 Azure Red Hat OpenShift 群集中生成的所有出站 Internet 流量,请使用Azure 防火墙或托管中心虚拟网络中部署的第三方网络虚拟设备来保护出口网络流量。 有关详细信息,请参阅 控制发到 Azure Red Hat OpenShift 群集的出口流量。
- 对非 Web 应用程序使用Azure 负载均衡器标准层而不是基本层。
后续步骤
- 规划 Azure Red Hat OpenShift 的资源组织。