5.7.3. 关于为 OpenShift Container Platform 集群重复使用 VNet

在 OpenShift Container Platform 4.7 中,您可以在 Microsoft Azure 中将集群部署到现有的 Azure Virtual Network(VNet)中。如果您这样做,还必须在 VNet 和路由规则中使用现有子网。

通过将 OpenShift Container Platform 部署到现有的 Azure VNet 中,您可能会避开新帐户中的服务限制,或者更容易地利用公司所设置的操作限制。如果您无法获得创建 VNet 所需的基础架构创建权限,则可以使用这个选项。

重要

使用现有 VNet 需要使用更新的 Azure 私有 DNS(预览)功能。如需了解有关此功能限制的更多信息,请参阅 Azure DNS 私有区的预览刷新

5.7.3.1. 使用 VNet 的要求

当使用现有 VNet 部署集群时,必须在安装集群前执行额外网络配置。在安装程序置备的基础架构集群中,安装程序通常会创建以下组件,但在安装到现有 VNet 时不会创建它们:

  • 子网
  • 路由表
  • VNets
  • 网络安全组

如果您使用自定义 VNet,您必须正确配置它及其子网,以便安装程序和集群使用。安装程序不能为集群分配要使用的网络范围,为子网设置路由表,或者设置类似 DHCP 的 VNet 选项,因此您必须在安装集群前配置它们。

集群必须能够访问包含现有 VNet 和子网的资源组。虽然集群创建的所有资源都放在它创建的单独资源组中,但有些网络资源则从另外一个独立的组中使用。一些集群 Operator 必须能够访问这两个资源组中的资源。例如,Machine API 控制器会为它创建的虚拟机附加 NICS,使其从网络资源组中划分子网。

您的 VNet 必须满足以下特征:

  • VNet 的 CIDR 块必须包含 Networking.machineCIDR ,它是集群机器的 IP 地址池。
  • VNet 及其子网必须属于同一资源组,子网必须配置为使用 Azure 分配的 DHCP IP 地址而不是静态 IP 地址。

您必须在 VNet 中提供两个子网,一个用于 control plane 机器,一个用于计算机器。因为 Azure 在您指定的区域内的不同可用区中分发机器,所以集群将默认具有高可用性功能。

要确保您提供的子网适合您的环境,安装程序会确认以下信息:

  • 您指定的所有子网都存在。
  • 您提供两个私有子网,一个用于 control plane 机器,一个用于计算机器。
  • 子网 CIDR 属于您指定的机器 CIDR。机器不会在没有为其提供私有子网的可用区中置备。

如果您销毁了使用现有 VNet 的集群,则不会删除 VNet。

5.7.3.1.1. 网络安全组要求

托管 compute 和 control plane 机器的子网的网络安全组需要特定的访问权限,以确保集群通信正确。您必须创建规则来允许访问所需的集群通信端口。

重要

在安装集群前必须先设置网络安全组规则。如果您试图在没有所需访问权限的情况下安装集群,安装程序就无法访问 Azure API,且会导致安装失败。

表 5.19. 所需端口

端口描述Control planeCompute

80

允许 HTTP 流量

 

x

443

允许 HTTPS 流量

 

x

6443

允许与 control plane 机器通信。

x

 

22623

允许与机器配置服务器通信。

x

 
注意

由于集群组件不会修改用户提供的网络安全组(Kubernetes 控制器更新它),因此会创建一个伪网络安全组,供 Kubernetes 控制器修改,而不影响其余的环境。