2.2. Red Hat OpenShift Service on AWS 的先决条件
要创建 Red Hat OpenShift Service on AWS 集群,您必须有以下项目:
- 配置的虚拟私有云(VPC)
- 集群范围的角色
- OIDC 配置
- Operator 角色
2.2.1. 为 Red Hat OpenShift Service on AWS 集群创建虚拟私有云 复制链接链接已复制到粘贴板!
您必须具有 Virtual Private Cloud (VPC)才能在 AWS 集群上创建 Red Hat OpenShift Service。您可以使用以下方法创建 VPC:
- 使用 ROSA CLI 创建 VPC
- 使用 Terraform 模板创建 VPC
- 在 AWS 控制台中手动创建 VPC 资源
Terraform 指令用于测试和演示目的。您自己的安装需要对 VPC 的一些修改才能自行使用。您还应确保使用此 Terraform 配置时,它位于您要安装集群的同一区域。在这些示例中,使用了 us-east-2
。
使用 ROSA CLI 创建 AWS VPC
rosa create network
命令在 ROSA CLI 的 v.1.2.48 或更高版本中提供。命令使用 AWS CloudFormation 创建 VPC 以及在 AWS 集群上安装 Red Hat OpenShift Service 所需的相关网络组件。CloudFormation 是一个原生 AWS 基础架构即代码工具,与 AWS CLI 兼容。
如果没有指定模板,CloudFormation 将使用以下参数来创建资源的默认模板:
VPC 参数 | value |
---|---|
可用区 | 1 |
区域 |
|
VPC CIDR |
|
您可以创建和自定义 CloudFormation 模板,以用于 rosa create network
命令。如需有关默认 VPC 模板的信息,请参阅本节的其他资源。
先决条件
- 您已配置了 AWS 帐户
- 您已配置了您的红帽帐户
- 已安装 ROSA CLI 并将其配置为最新版本
流程
运行以下命令,使用默认的 CloudFormations 模板创建 AWS VPC:
rosa create network
$ rosa create network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:通过指定附加参数来自定义 VPC。
您可以使用-
-param
标志指定对默认 VPC 模板的更改。以下示例命令为region
、Name
、AvailabilityZoneCount
和VpcCidr
指定自定义值。rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
$ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令需要大约 5 分钟来运行,并在创建资源时从 AWS 提供常规状态更新。如果 CloudFormation 存在问题,则会尝试回滚。对于遇到的所有其他错误,请按照错误消息说明或联系 AWS 支持。
验证
完成后,您会收到创建的资源概述:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 Terraform 创建虚拟私有云
Terraform 是一个工具,可让您使用已建立的模板创建各种资源。以下流程根据需要使用默认选项在 AWS 集群上创建 Red Hat OpenShift Service。有关使用 Terraform 的更多信息,请参阅其他资源。
先决条件
- 您已在机器上安装 Terraform 版本 1.4.0 或更新版本。
- 您已在机器上安装了 Git。
流程
运行以下命令,打开 shell 提示符并克隆 Terraform VPC 存储库:
git clone https://github.com/openshift-cs/terraform-vpc-example
$ git clone https://github.com/openshift-cs/terraform-vpc-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来进入创建的目录:
cd terraform-vpc-example
$ cd terraform-vpc-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来启动 Terraform 文件:
terraform init
$ terraform init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在此过程完成后会显示确认初始化的消息。
要根据现有的 Terraform 模板构建 VPC Terraform 计划,请运行
plan
命令。您必须包含 AWS 区域。您可以选择指定集群名称。在terraform plan
完成后,一个rosa.tfplan
文件会被添加到hypershift-tf
目录。有关更详细的选项,请参阅 Terraform VPC 存储库的 README 文件。terraform plan -out rosa.tfplan -var region=<region>
$ terraform plan -out rosa.tfplan -var region=<region>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令应用此计划文件来构建 VPC:
terraform apply rosa.tfplan
$ terraform apply rosa.tfplan
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:您可以通过运行以下命令捕获在创建 Red Hat OpenShift Service on AWS 集群时要使用的 Terraform-provisioned private、public 和 machinepool 子网 ID 的值:
export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
$ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令验证变量是否已正确设置:
echo $SUBNET_IDS
$ echo $SUBNET_IDS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
$ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手动创建 AWS Virtual Private Cloud
如果您选择手动创建 AWS Virtual Private Cloud (VPC)而不是使用 Terraform,请访问 AWS 控制台中的 VPC 页面。
您的 VPC 必须满足下表中显示的要求。
要求 | 详情 |
---|---|
VPC 名称 | 创建集群时,您需要具有特定的 VPC 名称和 ID。 |
CIDR 范围 | 您的 VPC CIDR 范围应该与您的机器 CIDR 匹配。 |
可用区 | 您需要一个区域的可用区,并且需要三个用于多区的可用区。 |
公共子网 | 您必须有一个公共子网,其中包含公共集群的 NAT 网关。私有集群不需要公共子网。 |
DNS 主机名和解析 | 您必须确保启用 DNS 主机名和解析。 |
2.2.3. 创建集群范围的 STS 角色和策略 复制链接链接已复制到粘贴板!
在 AWS 集群上创建 Red Hat OpenShift Service 前,您必须创建所需的帐户范围的角色和策略。
Red Hat OpenShift Service on AWS 的特定 AWS 管理策略必须附加到每个角色。客户管理的策略不能与这些所需的帐户角色一起使用。有关 Red Hat OpenShift Service on AWS 集群的 AWS 管理策略的更多信息,请参阅 ROSA 的 AWS 受管策略。
先决条件
- 您已完成 Red Hat OpenShift Service on AWS 的 AWS 先决条件。
- 您有可用的 AWS 服务配额。
- 您已在 AWS 控制台中启用了 Red Hat OpenShift Service on AWS。
-
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。 - 已使用 ROSA CLI 登录您的红帽帐户。
流程
如果您的 AWS 帐户不存在它们,请创建所需的账户范围 STS 角色,并通过运行以下命令来附加策略:
rosa create account-roles --hosted-cp
$ rosa create account-roles --hosted-cp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行以下命令,将您的前缀设置为环境变量:
export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
$ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,查看变量的值:
echo $ACCOUNT_ROLES_PREFIX
$ echo $ACCOUNT_ROLES_PREFIX
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ManagedOpenShift
ManagedOpenShift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如需有关 AWS 上 Red Hat OpenShift Service 的 AWS 管理的 IAM 策略的更多信息,请参阅 ROSA 的 AWS 管理的 IAM 策略。
2.2.4. 创建 OpenID 连接配置 复制链接链接已复制到粘贴板!
在 AWS 集群上创建 Red Hat OpenShift Service 时,您可以在创建集群前创建 OpenID Connect (OIDC)配置。此配置注册到 OpenShift Cluster Manager。
先决条件
- 您已完成 Red Hat OpenShift Service on AWS 的 AWS 先决条件。
-
您已在安装主机上安装和配置了最新的 ROSA CLI
rosa
。
流程
要创建 OIDC 配置以及 AWS 资源,请运行以下命令:
rosa create oidc-config --mode=auto --yes
$ rosa create oidc-config --mode=auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令返回以下信息:
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建集群时,您必须提供 OIDC 配置 ID。CLI 输出为--
mode auto
提供了此值,否则您必须根据aws
CLI 输出用于-模式手动
确定这些值。可选: 您可以将 OIDC 配置 ID 保存为稍后使用的变量。运行以下命令来保存变量:
export OIDC_ID=<oidc_config_id>
$ export OIDC_ID=<oidc_config_id>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在上面的示例输出中,OIDC 配置 ID 是 13cdr6b。
运行以下命令,查看变量的值:
echo $OIDC_ID
$ echo $OIDC_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
13cdr6b
13cdr6b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以列出与您的用户机构关联的集群可用的 OIDC 配置。运行以下命令:
rosa list oidc-config
$ rosa list oidc-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID MANAGED ISSUER URL SECRET ARN 2330dbs0n8m3chkkr25gkkcd8pnj3lk2 true https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2 233hvnrjoqu14jltk6lhbhf2tj11f8un false https://oidc-r7u1.s3.us-east-1.amazonaws.com aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
ID MANAGED ISSUER URL SECRET ARN 2330dbs0n8m3chkkr25gkkcd8pnj3lk2 true https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2 233hvnrjoqu14jltk6lhbhf2tj11f8un false https://oidc-r7u1.s3.us-east-1.amazonaws.com aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.5. 创建 Operator 角色和策略 复制链接链接已复制到粘贴板!
在 AWS 集群上部署 Red Hat OpenShift Service 时,您必须创建 Operator IAM 角色。集群 Operator 使用 Operator 角色和策略获取执行集群操作所需的临时权限,如管理后端存储和对集群的外部访问权限。
先决条件
- 您已完成 Red Hat OpenShift Service on AWS 的 AWS 先决条件。
-
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。 - 您创建了集群范围的 AWS 角色。
流程
要创建 Operator 角色,请运行以下命令:
rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
$ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下分类提供了创建 Operator 角色的选项。
rosa create operator-roles --hosted-cp
$ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX
1 --oidc-config-id=$OIDC_ID
2 --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您必须包含
-hosted-cp
参数,以便为 Red Hat OpenShift Service on AWS 集群创建正确的角色。此命令返回以下信息:输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,Operator 角色已创建并可用于创建 Red Hat OpenShift Service on AWS 集群。
验证
您可以列出与 Red Hat OpenShift Service on AWS 帐户关联的 Operator 角色。运行以下命令:
rosa list operator-roles
$ rosa list operator-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 命令运行后,它会显示与 AWS 帐户关联的所有前缀,并记录与这个前缀关联的角色数量。如果您需要查看所有这些角色及其详情,请在详情提示符处输入"是",使这些角色以特定形式列出。