4.8.2. 关于使用自定义 VPC

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

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

4.8.2.1. 使用 VPC 的要求

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

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

安装程序要求您使用由云提供的 DNS 服务器。不支持使用自定义 DNS 服务器,并导致安装失败。

如果您使用自定义 VPC,您必须为安装程序和集群正确配置它及其子网。有关创建和管理 AWS VPC VPC 的更多信息,请参阅 AWS 文档中的 Amazon VPC 控制台向导配置 以及处理 VPC 和子网

安装程序无法:

  • 子类网络范围供群集使用。
  • 设置子网的路由表。
  • 设置 VPC 选项,如 DHCP。

您必须在安装集群前完成这些任务。有关在 AWS VPC 中配置网络的更多信息,请参阅 VPC 的 VPC 网络组件 和路由表

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

  • 为集群使用的每个可用区创建一个公共和私有子网。每个可用区不能包含多于一个的公共子网和私有子网。有关此类配置的示例,请参阅 AWS 文档中的 具有公共和私有子网(NAT)的 VPC

    记录每个子网 ID。完成安装要求您在 install-config.yaml 文件的 platform 部分输入这些值。请参阅 AWS 文档中的 查找子网 ID

  • VPC 的 CIDR 块必须包含 Networking.machineCIDR ,它是集群机器的 IP 地址池。子网 CIDR 块必须属于您指定的机器 CIDR。
  • VPC 必须附加一个公共互联网网关。对于每个可用区:

    • 公共子网需要路由到互联网网关。
    • 公共子网需要一个具有 EIP 地址的 NAT 网关。
    • 专用子网需要路由到公共子网中的 NAT 网关。
  • VPC 不能使用 kubernetes.io/cluster/.*: owned 标签。

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

  • 您必须在 VPC 中启用 enable DnsSupport 和 enableDnsHostnames 属性,以便集群可以使用附加到 VPC 的 Route 53 区域来解析集群内部 DNS 记录。请参阅 AWS 文档中的您的 VPC 中的 DNS 支持部分 。

    如果您希望使用自己的 Route 53 托管私有区,则必须在安装集群前将现有托管区与 VPC 关联。您可以使用 install-config.yaml 文件中的 platform.aws.hostedZone 字段定义托管区。

如果您在断开连接的环境中工作,您将无法访问 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 个可用区创建专用子网。如果您使用专用子网,必须为其提供适当的路由和表。