4.7.3. 关于使用自定义 VPC

在 OpenShift Container Platform 4.7 中,您可以在 Amazon Web Services(AWS)的现有 Amazon Virtual Private Cloud(VPC)中将集群部署到现有子网中。通过将 OpenShift Container Platform 部署到现有的 AWS VPC 中,您可能会避开新帐户中的限制,或者更容易地利用公司所设置的操作限制。如果您无法获得您自己创建 VPC 所需的基础架构创建权限,请使用这个安装选项。

因为安装程序无法了解您现有子网中还有哪些其他组件,所以无法选择子网 CIDR 。您必须为安装集群的子网配置网络。

4.7.3.1. 使用 VPC 的要求

安装程序不再创建以下组件:

  • 互联网网关
  • NAT 网关
  • 子网
  • 路由表
  • VPCs
  • VPC DHCP 选项
  • VPC 端点

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

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

  • VPC 的 CIDR 块必须包含 Networking.machineCIDR ,它是集群机器的 IP 地址池。
  • VPC 不能使用 kubernetes.io/cluster/.*: owned 标签。
  • 您需要在您的 VPC 中启用 enableDnsSupportenableDnsHostnames 属性,以便集群可以使用附加到 VPC 中的 Route 53 区来解析集群内部的 DNS 记录。请参阅 AWS 文档中的您的 VPC 中的 DNS 支持部分 。如果要使用您自己的 Route 53 托管私有区,您必须在安装集群前将现有托管区与 VPC 相关联。您可以使用 install-config.yaml 文件中的 platform.aws.hostedZone 字段定义托管区。

如果您使用具有公共访问权限的集群,您必须为每个集群使用的可用区创建一个公共和私有子网。

安装程序会修改子网以添加 kubernetes.io/cluster/.*: shared 标签,因此您的子网必须至少有一个可用的空闲标签插槽。请参阅 AWS 文档中的关于当前标签限制的部分,以确保安装程序可以为您指定的每个子网添加标签。

如果您在断开连接的环境中工作,您将无法访问 EC2 和 ELB 端点的公共 IP 地址。要解决这个问题,您必须创建一个 VPC 端点,并将其附加到集群使用的子网。端点应命名如下:

  • ec2.<region>.amazonaws.com
  • elasticloadbalancing.<region>.amazonaws.com
  • s3.<region>.amazonaws.com

所需的 VPC 组件

您必须提供合适的 VPC 和子网,以便与您的机器通信。

组件AWS 类型描述

VPC

  • AWS::EC2::VPC
  • AWS::EC2::VPCEndpoint

您必须提供一个公共 VPC 供集群使用。VPC 使用引用每个子网的路由表的端点,以改进与托管在 S3 中的 registry 的通信。

公共子网

  • AWS::EC2::Subnet
  • AWS::EC2::SubnetNetworkAclAssociation

您的 VPC 必须有 1 到 3 个可用区的公共子网,并将其与适当的入口规则关联。

互联网网关

  • AWS::EC2::InternetGateway
  • AWS::EC2::VPCGatewayAttachment
  • AWS::EC2::RouteTable
  • AWS::EC2::Route
  • AWS::EC2::SubnetRouteTableAssociation
  • AWS::EC2::NatGateway
  • AWS::EC2::EIP

您必须有一个公共互联网网关,以及附加到 VPC 的公共路由。在提供的模板中,每个公共子网都有一个具有 EIP 地址的 NAT 网关。这些 NAT 网关允许集群资源(如专用子网实例)访问互联网,而有些受限网络或代理场景则不需要它们。

网络访问控制

  • AWS::EC2::NetworkAcl
  • AWS::EC2::NetworkAclEntry

您必须允许 VPC 访问下列端口:

端口

原因

80

入站 HTTP 流量

443

入站 HTTPS 流量

22

入站 SSH 流量

1024 - 65535

入站临时流量

0 - 65535

出站临时流量

专用子网

  • AWS::EC2::Subnet
  • AWS::EC2::RouteTable
  • AWS::EC2::SubnetRouteTableAssociation

您的 VPC 可以具有私有子网。提供的 CloudFormation 模板可为 1 到 3 个可用区创建专用子网。如果您使用专用子网,必须为其提供适当的路由和表。