×

本文档介绍如何使用 AWS PrivateLink 创建 ROSA 集群。

可以在不依赖公共子网、互联网网关或网络地址转换 (NAT) 网关的情况下创建 AWS 上的 Red Hat OpenShift 服务集群。在此配置中,Red Hat 使用 AWS PrivateLink 来管理和监控集群,以避免所有公共入口网络流量。如果没有公共子网,则无法配置公共应用程序路由器。配置私有应用程序路由器是唯一的选择。

更多信息,请参见 AWS 网站上的 AWS PrivateLink

您只能在安装时创建 PrivateLink 集群。安装后无法将集群更改为 PrivateLink。

对于 AWS PrivateLink 集群,不需要互联网网关、NAT 网关和公共子网,但私有子网必须具有互联网连接才能安装所需的组件。单 AZ 集群至少需要一个私有子网,多 AZ 集群至少需要 3 个私有子网。下表显示了成功安装所需的 AWS 资源

表 1. 必需的 AWS 资源
组件 AWS 类型 描述

VPC

  • AWS::EC2::VPC

  • AWS::EC2::VPCEndpoint

您必须提供 VPC 供集群使用。

网络访问控制

  • AWS::EC2::NetworkAcl

  • AWS::EC2::NetworkAclEntry

您必须允许访问以下端口

端口 原因

80

入站 HTTP 流量

443

入站 HTTPS 流量

22

入站 SSH 流量

1024-65535

入站临时流量

0-65535

出站临时流量

私有子网

  • AWS::EC2::Subnet

  • AWS::EC2::RouteTable

  • AWS::EC2::SubnetRouteTableAssociation

您的 VPC 必须在 1 个可用区中拥有私有子网(用于单 AZ 部署)或在 3 个可用区中拥有私有子网(用于多 AZ 部署)。您必须提供合适的路由和路由表。

您可以使用 Red Hat OpenShift Service on AWS (ROSA) CLI,即 `rosa`,创建 AWS PrivateLink 集群。

AWS PrivateLink 仅支持现有 VPC。

先决条件
  • 您有可用的 AWS 服务配额。

  • 您已在 AWS 控制台中启用 ROSA 服务。

  • 您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI,即 `rosa`。

步骤

创建集群最多可能需要 40 分钟。

  1. 使用 AWS PrivateLink,您可以创建一个单可用区 (Single-AZ) 或多可用区 (Multi-AZ) 集群。在这两种情况下,您的机器的无类别域间路由 (CIDR) 必须与您的虚拟私有云的 CIDR 匹配。有关更多信息,请参见 使用您自己的 VPC 的要求VPC 验证

    如果您使用防火墙,则必须对其进行配置,以便 AWS 上的 Red Hat OpenShift 服务可以访问其正常运行所需的站点。

    有关更多信息,请参见 AWS PrivateLink 防火墙先决条件部分。

    如果您的集群名称超过 15 个字符,它将包含一个自动生成的域前缀作为您在 `*.openshiftapps.com` 上预配的集群的子域。

    要自定义子域,请使用 `--domain-prefix` 标志。域前缀不能超过 15 个字符,必须唯一,并且在集群创建后不能更改。

    • 创建单 AZ 集群

      $ rosa create cluster --private-link --cluster-name=<cluster-name> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id>
    • 创建多 AZ 集群

      $ rosa create cluster --private-link --multi-az --cluster-name=<cluster-name> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id1>,<private-subnet-id2>,<private-subnet-id3>
  2. 输入以下命令以检查集群的状态。在集群创建过程中,输出中的 `State` 字段将从 `pending` 变为 `installing`,最终变为 `ready`。

    $ rosa describe cluster --cluster=<cluster_name>

    如果安装失败或 40 分钟后 `State` 字段未更改为 `ready`,请检查安装故障排除文档以获取更多详细信息。

  3. 输入以下命令以跟踪 OpenShift 安装程序日志,从而跟踪集群的进度

    $ rosa logs install --cluster=<cluster_name> --watch

使用 AWS PrivateLink 集群时,将在 Route 53 中创建一个公共托管区域和一个私有托管区域。使用私有托管区域时,区域内的记录只能从分配给它的 VPC 内部解析。

*Let’s Encrypt DNS-01* 验证需要一个公共区域,以便可以为该域颁发有效的、公开信任的证书。 *Let’s Encrypt* 验证完成后,验证记录将被删除;但是,仍然需要该区域来颁发和续订这些证书,这些证书通常每 60 天需要一次。虽然这些区域通常看起来是空的,但它在验证过程中发挥着关键作用。

有关私有托管区域的更多信息,请参见 AWS 私有托管区域文档。有关公共托管区域的更多信息,请参见 AWS 公共托管区域文档

先决条件
  • 您的公司网络或其他 VPC 具有连接性

  • UDP 端口 53 和 TCP 端口 53 在您的网络之间启用,以允许 DNS 查询

  • 您已使用 Red Hat OpenShift Service on AWS 创建了 AWS PrivateLink 集群

步骤
  1. 要允许解析 VPC 外部的记录(例如 `api.<cluster_domain>` 和 `*.apps.<cluster_domain>`),请配置 Route 53 Resolver 入站端点

  2. 配置入站端点时,请选择创建集群时使用的 VPC 和私有子网。

  3. 端点运行并关联后,请将公司网络配置为将顶级集群域(例如drow-pl-01.htno.p1.openshiftapps.com)的DNS查询转发到这些IP地址。

  4. 如果要将DNS查询从一个VPC转发到另一个VPC,请配置转发规则

  5. 如果要配置远程网络DNS服务器,请参阅您的特定DNS服务器文档,以配置已安装集群域的选择性DNS转发。