第 7 章 在带有出口零的 AWS 集群上创建 Red Hat OpenShift Service
在带有出口零的 AWS 上创建 Red Hat OpenShift Service 提供了一种方式,允许集群在本地区域中使用镜像 registry (如果集群无法访问互联网)来增强集群的稳定性和安全性。您的集群首先尝试从 Quay 拉取镜像,当它们没有达到时,它会从本地区域的镜像 registry 中拉取镜像。
具有出口零的所有公共和私有集群从集群本地区域的 Amazon Elastic Container Registry (ECR)获取红帽容器镜像,而不是从互联网上的不同端点和 registry 收集这些镜像。ECR 为 OpenShift 发行镜像和 Red Hat Operator 提供存储。所有对 ECR 的请求都会保存在 AWS 网络中,方法是通过集群中的 VPC 端点提供它们。
带有出口零的 Red Hat OpenShift Service on AWS 集群使用 AWS ECR 来置备集群,而无需公共互联网。因为所需的集群生命周期进程在 AWS 专用网络上发生,所以 AWS ECR 充当核心集群平台镜像的关键服务。如需有关 AWS ECR 的更多信息,请参阅 Amazon Elastic Container Registry。
您可以通过配置虚拟私有云(VPC)并在创建集群时使用- properties zero_egress:true
标志来创建不需要公共出口的完整集群。
请参阅升级 Red Hat OpenShift Service on AWS 集群 以使用出口零升级集群。
在受限网络环境中创建的集群可能无法使用某些 Red Hat OpenShift Service on AWS 功能,包括 Red Hat Insights 和 Telemetry。这些集群还可能会因为需要公共访问 registry 的工作负载(如 quay.io
)遇到潜在的故障。当使用出口零安装的集群时,您还可以从 OperatorHub 安装由红帽拥有的 Operator。有关红帽拥有的 Operator 的完整列表,请参阅 红帽生态系统目录。对于任何使用出口零安装的 Operator,只有默认 Operator 频道才会被镜像。
网络环境术语表
虽然它在 Red Hat OpenShift Service on AWS 文档中使用,但 断开连接的环境 是一个广泛的术语,但可以引用具有不同互联网连接的环境。对于一个特定级别的互联网连接,有时可能会使用其他术语来代表,这些环境可能需要额外的、特殊的配置。这些网络类型与可完全访问互联网的"标准网络"不同。
下表描述了用于引用没有完全互联网连接的环境的不同术语:
术语 | 描述 |
---|---|
Air-gapped 网络 | 完全与外部网络隔离的环境或网络。 这种隔离取决于内部网络上的机器和外部网络的任何部分之间的物理分离或"空缺"。air-gapped 环境通常用于具有严格安全或监管要求的行业。 |
断开连接的环境 | 在一定级别上与外部网络隔离的环境或网络。 这种隔离可以通过在内部网络和外部网络上的计算机之间进行物理或逻辑分离来实现。无论与外部网络的隔离级别,在断开连接的环境中的集群都无法访问由红帽托管的公共服务,需要额外的设置来维护完整的集群功能。 |
Restricted network | 与外部网络有限连接的环境或网络。 物理网络和外部网络上的机器之间可能存在物理连接,但网络流量会被其他配置的限制,如防火墙和代理。 |
先决条件
- 您有一个有足够权限的 AWS 帐户来创建 VPC、子网和其他所需的基础架构。
- 已安装 Terraform v1.4.0+ CLI。
- 已安装 ROSA v1.2.45+ CLI。
- 已使用所需凭证安装和配置 AWS CLI。
- 已安装 git CLI。
- 您可以在所有使用托管的 control plane 架构的 Red Hat OpenShift Service on AWS 上使用出口零;但是,红帽建议为每个 OpenShift Container Platform 版本使用最新的可用 z-stream 版本。
- 虽然您可以像常规集群一样安装和升级集群,但由于内部镜像 registry 在断开连接的环境中如何运作,但使用出口 0 的集群将无法完全使用所有平台组件,如镜像 registry。您可以在升级或安装集群时使用最新的 ROSA 版本恢复这些功能。
7.1. 设置环境变量 复制链接链接已复制到粘贴板!
设置以下环境变量以简化资源创建。
流程
运行以下命令来设置环境变量:
export <variable_name>=<variable_value>
$ export <variable_name>=<variable_value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以运行以下命令来确认您的变量已设置:
echo <variable_name>
$ echo <variable_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表 7.2. 为断开连接的 Red Hat OpenShift Service on AWS 集群推荐的变量 变量名称 变量值 注 AWS_ACCOUNT_ID
$(AWS sts get-caller-identity --query Account --output text)
您必须使用
rosa 登录
登录到 AWS 帐户。CLUSTER_NAME
您要集群的名称。
集群名称不能超过 26 个字符。
OIDC_ID
OpenID Connect (OIDC)配置的 32 位 ID。
您可以通过运行
rosa create oidc-config
来生成此 ID。OPERATOR_ROLES_PREFIX
Operator 角色前缀。
如果要使 AWS 帐户角色使用与 Operator 角色相同的前缀,您可以在设置 Operator 角色前缀变量后运行
ACCOUNT_ROLES_PREFIX=$OPERATOR_ROLES_PREFIX
。PRIVATE_SUBNET
专用子网的 ID。
您必须将这个值包含在引号(")中,并使用逗号分隔子网 ID。
REGION
您的 AWS 区域。
-
SUBNET_IDS
所有子网的 ID。
您必须将这个值包含在引号(")中,并使用逗号分隔子网 ID。