17.4. 部署集群
17.4.1. 教程:选择部署方法
本教程概述了部署集群的不同方法。选择最适合您的首选项和需求的部署方法。
17.4.1.1. 部署选项
如果您想要:
- 只有所需的 CLI 命令 - Simple CLI 指南
- 用户界面 - Simple UI 指南
- CLI 命令详情 - 详细的 CLI 指南
- 带有详情的用户界面 - 详细 UI 指南
以上所有部署选项都适用于本教程。如果您首次进行此教程,则 简单 CLI 指南 是最简单的和推荐的方法。
17.4.2. 教程:简单 CLI 指南
本页概述了使用命令行界面(CLI)部署 Red Hat OpenShift Service on AWS (ROSA)集群的命令列表。
虽然这个简单部署适用于教程设置,但生产中使用的集群应该使用更详细的方法进行部署。
17.4.2.1. 前提条件
- 您已完成了设置指南中的先决条件。
17.4.2.2. 创建帐户角色
对于每个 AWS 帐户和 y-stream OpenShift 版本,运行以下命令:
rosa create account-roles --mode auto --yes
17.4.2.3. 部署集群
运行以下命令替换您自己的集群名称,使用默认配置创建集群:
rosa create cluster --cluster-name <cluster-name> --sts --mode auto --yes
运行以下命令检查集群的状态:
rosa list clusters
17.4.3. 教程:详细的 CLI 指南
本教程概述了使用 ROSA CLI 部署 ROSA 集群的详细步骤。
17.4.3.1. CLI 部署模式
部署 ROSA 集群有两种模式。一个是自动的,它更快,并为您执行手动工作。另一个是 manual,要求您运行额外的命令,并允许您检查正在创建的角色和策略。本教程记录了这两个选项。
如果要快速创建集群,请使用自动选项。如果您希望了解正在创建的角色和策略,请使用 manual 选项。
在相关命令中使用 --mode
标志来选择部署模式。
--mode
的有效选项有:
-
手动
: 创建角色和策略,并保存在当前目录中。您必须在下一步中手动运行提供的命令。此选项允许您在创建策略和角色前查看策略和角色。 -
auto
: 使用当前 AWS 帐户自动创建和应用角色和策略。
在本教程中,您可以使用任一部署方法。自动
模式速度更快,且步骤更少。
17.4.3.2. 部署工作流
整个部署工作流遵循以下步骤:
-
ROSA create account-roles
- 这只为每个帐户 执行一次。创建后,不需要 为同一 y-stream 版本的更多集群再次创建帐户角色。 -
ROSA 创建集群
-
ROSA create operator-roles
- 用于手动模式。 -
ROSA create oidc-provider
- 只适用于手动模式。
对于同一帐户中的每个额外集群,则只有第 2 步用于自动模式。manual 模式需要第 2 到 4 步。
17.4.3.3. 自动模式
如果您希望 ROSA CLI 自动创建角色和策略来创建集群,请使用此方法。
17.4.3.3.1. 创建帐户角色
如果您 首次在这个帐户 中部署 ROSA,且您 还没有创建 帐户角色,则创建集群范围的角色和策略,包括 Operator 策略。
运行以下命令来创建集群范围的角色:
rosa create account-roles --mode auto --yes
输出示例
I: Creating roles using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role' I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role' I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role' I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
17.4.3.3.2. 创建集群
运行以下命令创建带有所有默认选项的集群:
rosa create cluster --cluster-name <cluster-name> --sts --mode auto --yes
这也将创建所需的 Operator 角色和 OIDC 供应商。如果要查看集群的所有可用选项,请使用 --help
标志,或 --interactive
用于互动模式。
输入示例
$ rosa create cluster --cluster-name my-rosa-cluster --sts --mode auto --yes
输出示例
I: Creating cluster 'my-rosa-cluster' I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster 'my-rosa-cluster' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. I: To determine when your cluster is Ready, run 'rosa describe cluster -c my-rosa-cluster'. I: To watch your cluster installation logs, run 'rosa logs install -c my-rosa-cluster --watch'. Name: my-rosa-cluster ID: 1mlhulb3bo0l54ojd0ji000000000000 External ID: OpenShift Version: Channel Group: stable DNS: my-rosa-cluster.ibhp.p1.openshiftapps.com AWS Account: 000000000000 API URL: Console URL: Region: us-west-2 Multi-AZ: false Nodes: - Master: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Master: arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-image-registry-installer-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-ingress-operator-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cloud-credential-operator-cloud-credential-oper State: waiting (Waiting for OIDC configuration) Private: No Created: Oct 28 2021 20:28:09 UTC Details Page: https://console.redhat.com/openshift/details/s/1wupmiQy45xr1nN000000000000 OIDC Endpoint URL: https://rh-oidc.s3.us-east-1.amazonaws.com/1mlhulb3bo0l54ojd0ji000000000000
17.4.3.3.2.1. 默认配置
默认设置如下:
节点:
- 3 个 control plane 节点
- 2 个基础架构节点
- 2 个 worker 节点
- 没有自动扩展
- 如需了解更多详细信息,请参阅 ec2 实例 的文档。
-
Region :为
aws
CLI 配置 网络 IP 范围:
- Machine CIDR: 10.0.0.0/16
- Service CIDR: 172.30.0.0/16
- Pod CIDR: 10.128.0.0/14
- 新的 VPC
- 用于加密的默认 AWS KMS 密钥
-
rosa
可用的 OpenShift 的最新版本 - 单个可用区
- 公共集群
17.4.3.3.3. 检查安装状态
运行以下命令之一检查集群的状态:
如需状态的详细视图,请运行:
rosa describe cluster --cluster <cluster-name>
对于状态的 abridged 视图,请运行:
rosa list clusters
- 集群状态将从 "waiting" 改为 "installing" 改为 "ready"。这大约需要 40 分钟。
- 当状态变为 "ready" 后,您的集群就会被安装。
17.4.3.4. 手动模式
如果要在将角色和策略应用到集群前查看角色和策略,请使用手动方法。此方法需要运行几个额外的命令来创建角色和策略。
本节使用 --interactive
模式。有关本节中字段的描述信息,请参阅 交互模式 的文档。
17.4.3.4.1. 创建帐户角色
如果您是 第一次在这个 帐户中部署 ROSA 且还没有创建帐户角色时,请创建集群范围的角色和策略,包括 Operator 策略。该命令会在当前目录中为您的帐户所需的角色和策略创建所需的 JSON 文件。它还输出您需要运行的
aws
CLI 命令,以创建这些对象。运行以下命令来创建所需的文件并输出附加命令:
rosa create account-roles --mode manual
输出示例
I: All policy files saved to the current directory I: Run the following commands to create the account roles and policies: aws iam create-role \ --role-name ManagedOpenShift-Worker-Role \ --assume-role-policy-document file://sts_instance_worker_trust_policy.json \ --tags Key=rosa_openshift_version,Value=4.8 Key=rosa_role_prefix,Value=ManagedOpenShift Key=rosa_role_type,Value=instance_worker aws iam put-role-policy \ --role-name ManagedOpenShift-Worker-Role \ --policy-name ManagedOpenShift-Worker-Role-Policy \ --policy-document file://sts_instance_worker_permission_policy.json
检查您当前目录的内容以查看新文件。使用
aws
CLI 创建每个对象。输出示例
$ ls openshift_cloud_credential_operator_cloud_credential_operator_iam_ro_creds_policy.json sts_instance_controlplane_permission_policy.json openshift_cluster_csi_drivers_ebs_cloud_credentials_policy.json sts_instance_controlplane_trust_policy.json openshift_image_registry_installer_cloud_credentials_policy.json sts_instance_worker_permission_policy.json openshift_ingress_operator_cloud_credentials_policy.json sts_instance_worker_trust_policy.json openshift_machine_api_aws_cloud_credentials_policy.json sts_support_permission_policy.json sts_installer_permission_policy.json sts_support_trust_policy.json sts_installer_trust_policy.json
可选: 打开文件来查看您要创建的内容。例如,打开
sts_installer_permission_policy.json
显示:输出示例
$ cat sts_installer_permission_policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AssociateDhcpOptions", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", [...]
-
运行第 1 步中列出的
aws
命令。如果您位于与您创建的 JSON 文件位于同一个目录中,您可以复制并粘贴。
17.4.3.4.2. 创建集群
在成功执行
aws
命令后,运行以下命令以互动模式开始 ROSA 集群创建:rosa create cluster --interactive --sts
在本教程中,复制并输入以下值:
Cluster name: my-rosa-cluster OpenShift version: <choose version> External ID (optional): <leave blank> Operator roles prefix: <accept default> Multiple availability zones: No AWS region: <choose region> PrivateLink cluster: No Install into an existing VPC: No Enable Customer Managed key: No Compute nodes instance type: m5.xlarge Enable autoscaling: No Compute nodes: 2 Machine CIDR: <accept default> Service CIDR: <accept default> Pod CIDR: <accept default> Host prefix: <accept default> Encrypt etcd data (optional): No Disable Workload monitoring: No
输出示例
I: Creating cluster 'my-rosa-cluster' I: To create this cluster again in the future, you can run: rosa create cluster --cluster-name my-rosa-cluster --role-arn arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role --support-role-arn arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role --master-iam-role arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role --worker-iam-role arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role --operator-roles-prefix my-rosa-cluster --region us-west-2 --version 4.8.13 --compute-nodes 2 --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 --pod-cidr 10.128.0.0/14 --host-prefix 23 I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster 'my-rosa-cluster' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. Name: my-rosa-cluster ID: 1t6i760dbum4mqltqh6o000000000000 External ID: OpenShift Version: Channel Group: stable DNS: my-rosa-cluster.abcd.p1.openshiftapps.com AWS Account: 000000000000 API URL: Console URL: Region: us-west-2 Multi-AZ: false Nodes: - Control plane: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Control plane: arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-ingress-operator-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-cloud-network-config-controller-cloud-cre - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cloud-credential-operator-cloud-credentia - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-image-registry-installer-cloud-credential State: waiting (Waiting for OIDC configuration) Private: No Created: Jul 1 2022 22:13:50 UTC Details Page: https://console.redhat.com/openshift/details/s/2BMQm8xz8Hq5yEN000000000000 OIDC Endpoint URL: https://rh-oidc.s3.us-east-1.amazonaws.com/1t6i760dbum4mqltqh6o000000000000 I: Run the following commands to continue the cluster creation: rosa create operator-roles --cluster my-rosa-cluster rosa create oidc-provider --cluster my-rosa-cluster I: To determine when your cluster is Ready, run 'rosa describe cluster -c my-rosa-cluster'. I: To watch your cluster installation logs, run 'rosa logs install -c my-rosa-cluster --watch'.
注意集群状态将保持为"waiting",直到接下来的两个步骤完成为止。
17.4.3.4.3. 创建 Operator 角色
上面的步骤输出要运行的下一个命令。需要为每个集群创建 这些角色。要创建角色,请运行以下命令:
rosa create operator-roles --mode manual --cluster <cluster-name>
输出示例
I: Run the following commands to create the operator roles: aws iam create-role \ --role-name my-rosa-cluster-openshift-image-registry-installer-cloud-credentials \ --assume-role-policy-document file://operator_image_registry_installer_cloud_credentials_policy.json \ --tags Key=rosa_cluster_id,Value=1mkesci269png3tck000000000000000 Key=rosa_openshift_version,Value=4.8 Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-image-registry Key=operator_name,Value=installer-cloud-credentials aws iam attach-role-policy \ --role-name my-rosa-cluster-openshift-image-registry-installer-cloud-credentials \ --policy-arn arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden [...]
-
运行每个
aws
命令。
17.4.3.4.4. 创建 OIDC 供应商
运行以下命令来创建 OIDC 供应商:
rosa create oidc-provider --mode manual --cluster <cluster-name>
这将显示您需要运行的
aws
命令。输出示例
I: Run the following commands to create the OIDC provider: $ aws iam create-open-id-connect-provider \ --url https://rh-oidc.s3.us-east-1.amazonaws.com/1mkesci269png3tckknhh0rfs2da5fj9 \ --client-id-list openshift sts.amazonaws.com \ --thumbprint-list a9d53002e97e00e043244f3d170d000000000000 $ aws iam create-open-id-connect-provider \ --url https://rh-oidc.s3.us-east-1.amazonaws.com/1mkesci269png3tckknhh0rfs2da5fj9 \ --client-id-list openshift sts.amazonaws.com \ --thumbprint-list a9d53002e97e00e043244f3d170d000000000000
- 您的集群现在将继续安装过程。
17.4.3.4.5. 检查安装状态
运行以下命令之一检查集群的状态:
如需状态的详细视图,请运行:
rosa describe cluster --cluster <cluster-name>
对于状态的 abridged 视图,请运行:
rosa list clusters
- 集群状态将从 "waiting" 改为 "installing" 改为 "ready"。这大约需要 40 分钟。
- 当状态变为 "ready" 后,您的集群就会被安装。
17.4.3.5. 获取 Red Hat Hybrid Cloud Console URL
要获取 Hybrid Cloud Console URL,请运行以下命令:
rosa describe cluster -c <cluster-name> | grep Console
集群现在已被成功部署。下一教程介绍了如何创建 admin 用户来立即使用集群。
17.4.4. 教程:简单 UI 指南
本页概述了使用用户界面(UI)部署 ROSA 集群的命令的最小列表。
虽然这个简单部署适用于教程设置,但生产中使用的集群应该使用更详细的方法进行部署。
17.4.4.1. 前提条件
- 您已完成了设置指南中的先决条件。
17.4.4.2. 创建帐户角色
对于每个 AWS 帐户和 y-stream OpenShift 版本,运行以下命令:
rosa create account-roles --mode auto --yes
17.4.4.3. 创建 Red Hat OpenShift Cluster Manager 角色
运行以下命令,为每个 AWS 帐户创建一个 OpenShift Cluster Manager 角色:
rosa create ocm-role --mode auto --admin --yes
运行以下命令,为每个 AWS 帐户创建一个 OpenShift Cluster Manager 用户角色:
rosa create user-role --mode auto --yes
- 使用 OpenShift Cluster Manager 选择 AWS 帐户、集群选项并开始部署。
OpenShift Cluster Manager UI 显示集群状态。
17.4.5. 教程:详细的 UI 指南
本教程概述了使用 Red Hat OpenShift Cluster Manager 用户界面(UI)部署 Red Hat OpenShift Service on AWS (ROSA)集群的详细步骤。
17.4.5.1. 部署工作流
整个部署工作流遵循以下步骤:
- 创建集群范围的角色和策略。
将您的 AWS 帐户与您的红帽帐户相关联。
- 创建并链接 Red Hat OpenShift Cluster Manager 角色。
- 创建并链接用户角色。
- 创建集群。
只需 首次 部署到 AWS 帐户时,只需执行第 1 步。第 2 步只需要在 第一次使用 UI 时执行。对于同一 y-stream 版本的连续集群,您只需要创建集群。
17.4.5.2. 创建集群范围的角色
如果您已有之前部署中的帐户角色,请跳过这一步。选择关联的 AWS 帐户后,UI 会检测您的现有角色。
如果您是 第一次在这个 帐户中部署 ROSA 且还没有创建帐户角色时,请创建集群范围的角色和策略,包括 Operator 策略。
在终端中,运行以下命令来创建集群范围的角色:
$ rosa create account-roles --mode auto --yes
输出示例
I: Creating roles using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role' I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role' I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role' I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
17.4.5.3. 将您的 AWS 帐户与您的红帽帐户相关联
此步骤告知 OpenShift Cluster Manager 部署 ROSA 时要使用的 AWS 帐户。
如果您已经关联了 AWS 帐户,请跳过这一步。
- 访问 OpenShift Cluster Manager 并登录您的红帽帐户,打开 Red Hat Hybrid Cloud 控制台。
- 点 Create Cluster。
向下滚动到 Red Hat OpenShift Service on AWS (ROSA)行,点 Create Cluster。
此时会出现下拉菜单。单击 With Web 界面。
在"选择 AWS control plane 类型"下,选择 Classic。然后单击"下一步"。
- 单击 关联 AWS 基础架构帐户 下的 dropbox。如果您还没有关联任何 AWS 帐户,则 dropbox 可能为空。
点 How to associate a new AWS account。
此时会出现一个侧边栏,其中包含关联新 AWS 帐户的说明。
17.4.5.4. 创建并关联 OpenShift Cluster Manager 角色
运行以下命令,以查看 OpenShift Cluster Manager 角色是否存在:
$ rosa list ocm-role
UI 显示创建具有不同权限级别的 OpenShift Cluster Manager 角色的命令:
- 基本 OpenShift Cluster Manager 角色: 允许 OpenShift Cluster Manager 具有帐户的只读访问权限,以便在创建集群时是否存在 ROSA 所需的角色和策略。您需要使用 CLI 手动创建所需的角色、策略和 OIDC 供应商。
admin OpenShift Cluster Manager 角色: 授予 OpenShift Cluster Manager 额外权限,以便为 ROSA 创建所需的角色、策略和 OIDC 供应商。使用这个方法可以更快地部署 ROSA 集群,因为 OpenShift Cluster Manager 能够为您创建所需资源。
要了解更多有关这些角色的信息,请参阅文档中的 OpenShift Cluster Manager 角色和权限 部分。
在本教程中,使用 Admin OpenShift Cluster Manager 角色 进行最简单的和快速的方法。
复制命令,从侧边栏中创建 Admin OpenShift Cluster Manager 角色,或切换到您的终端并输入以下命令:
$ rosa create ocm-role --mode auto --admin --yes
此命令会创建 OpenShift Cluster Manager 角色,并将其与您的红帽帐户相关联。
输出示例
I: Creating ocm role I: Creating role using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-OCM-Role-12561000' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-OCM-Role-12561000' I: Linking OCM role I: Successfully linked role-arn 'arn:aws:iam::000000000000:role/ManagedOpenShift-OCM-Role-12561000' with organization account '1MpZfntsZeUdjWHg7XRgP000000'
- 单击 Step 2: User role。
17.4.5.4.1. 其他 OpenShift Cluster Manager 角色创建选项
手动模式: 如果您希望自己运行 AWS CLI 命令,您可以将模式定义为
manual
而不是auto
。CLI 将输出 AWS 命令以及相关的 JSON 文件在当前目录中创建。使用以下命令,以手动模式创建 OpenShift Cluster Manager 角色:
$ rosa create ocm-role --mode manual --admin --yes
基本 OpenShift Cluster Manager 角色: 如果您希望 OpenShift Cluster Manager 对帐户具有只读访问权限,请创建一个基本的 OpenShift Cluster Manager 角色。然后,您需要使用 CLI 手动创建所需的角色、策略和 OIDC 供应商。
使用以下命令来创建基本 OpenShift Cluster Manager 角色:
$ rosa create ocm-role --mode auto --yes
17.4.5.5. 创建 OpenShift Cluster Manager 用户角色
如 用户角色文档中所述,需要创建用户角色,以便 ROSA 可以验证 AWS 身份。此角色没有权限,它仅用于在安装程序帐户和 OpenShift Cluster Manager 角色资源之间建立信任关系。
运行以下命令,检查用户角色是否已存在:
$ rosa list user-role
运行以下命令来创建用户角色并将其链接到您的红帽帐户:
$ rosa create user-role --mode auto --yes
输出示例
I: Creating User role I: Creating ocm user role using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-User-rosa-user-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-User-rosa-user-Role' I: Linking User role I: Successfully linked role ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-User-rosa-user-Role' with account '1rbOQez0z5j1YolInhcXY000000'
注意如上所述,如果您更喜欢自己运行 AWS CLI 命令,您可以定义
--mode manual
。CLI 输出 AWS 命令和相关 JSON 文件在当前目录中创建。确保链接角色。- 点 Step 3: Account roles。
17.4.5.6. 创建帐户角色
运行以下命令来创建帐户角色:
$ rosa create account-roles --mode auto
- 单击 OK 以关闭边栏。
17.4.5.7. 确认帐户关联的成功
- 现在,您应该在 关联 AWS 基础架构帐户下拉菜单中选择 AWS 帐户。如果您看到您的帐户,帐户关联成功。
- 选择帐户。
您将看到以下填充的帐户角色 ARN。
- 点击 Next。
17.4.5.8. 创建集群
在本教程中,以下选择如下:
集群设置
- Cluster name: & lt;pick a name\>
- Version: & lt;select latest version\>
- region: & lt;select region\>
- 可用性: 单一区
- 启用用户工作负载监控: 保留检查
- 启用额外的 etcd 加密: 保留未选中
- 使用客户密钥加密持久性卷: 保留未选中
- 点击 Next。
为机器池保留默认设置:
默认机器池设置
- Compute 节点实例类型: m5.xlarge - 4 vCPU 16 GiB RAM
- enable autoscaling: unchecked
- Compute 节点数: 2
- 将节点标签留空
- 点击 Next。
17.4.5.8.1. 网络
- 保留配置的所有默认值。
- 点击 Next。
- 保留 CIDR 范围的所有默认值。
- 点击 Next。
17.4.5.8.2. 集群角色和策略
在本教程中,请保留 Auto selected。它将使集群部署过程变得更加简单、更快。
如果您之前选择了 基本 OpenShift Cluster Manager 角色,则只能使用手动模式。您必须手动创建 Operator 角色和 OIDC 供应商。完成"集群更新"部分并启动集群创建后,请参见下面的"基本 OpenShift Cluster Manager 角色"部分。
17.4.5.8.3. 集群更新
- 本节中将所有选项保留为默认值。
17.4.5.8.4. 检查并创建集群
- 查看集群配置的内容。
- 点 Create cluster。
17.4.5.8.5. 监控安装进度
保留在当前页面以监控安装进度。它应该需要大约 40 分钟。
17.4.5.9. 基本 OpenShift Cluster Manager 角色
如果您根据上述指示创建了 Admin OpenShift Cluster Manager 角色,请忽略 此整个部分。OpenShift Cluster Manager 将为您创建资源。
如果您之前创建了 基本 OpenShift Cluster Manager 角色,则需要在集群安装可以继续前手动创建两个元素:
- Operator 角色
- OIDC 供应商
17.4.5.9.1. 创建 Operator 角色
弹出窗口将显示要运行的命令。
在终端中的窗口中运行命令以启动交互模式。或者,为了简单起见,请运行以下命令来创建 Operator 角色:
$ rosa create operator-roles --mode auto --cluster <cluster-name> --yes
输出示例
I: Creating roles using 'arn:aws:iam::000000000000:user/rosauser' I: Created role 'rosacluster-b736-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-ingress-operator-cloud-credentials' I: Created role 'rosacluster-b736-openshift-cluster-csi-drivers-ebs-cloud-credent' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cluster-csi-drivers-ebs-cloud-credent' I: Created role 'rosacluster-b736-openshift-cloud-network-config-controller-cloud' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cloud-network-config-controller-cloud' I: Created role 'rosacluster-b736-openshift-machine-api-aws-cloud-credentials' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-machine-api-aws-cloud-credentials' I: Created role 'rosacluster-b736-openshift-cloud-credential-operator-cloud-crede' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cloud-credential-operator-cloud-crede' I: Created role 'rosacluster-b736-openshift-image-registry-installer-cloud-creden' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-image-registry-installer-cloud-creden'
17.4.5.9.2. 创建 OIDC 供应商
在终端中,运行以下命令来创建 OIDC 供应商:
$ rosa create oidc-provider --mode auto --cluster <cluster-name> --yes
输出示例
I: Creating OIDC provider using 'arn:aws:iam::000000000000:user/rosauser' I: Created OIDC provider with ARN 'arn:aws:iam::000000000000:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/1tt4kvrr2kha2rgs8gjfvf0000000000'
17.4.6. 教程:托管 control plane (HCP)指南
按照以下步骤,使用托管的 control plane (HCP)集群在 AWS (ROSA)上部署示例。然后您可以在下一教程中使用集群。
教程目标
了解如何创建集群先决条件:
- 创建虚拟私有云(VPC)示例
- 创建 OpenID Connect (OIDC)资源示例
- 创建示例环境变量
- 部署示例 ROSA 集群
前提条件
- ROSA 版本 1.2.31 或更高版本
- Amazon Web Service (AWS)命令行界面(CLI)
-
ROSA CLI (
rosa
)
17.4.6.1. 创建集群先决条件
在使用 HCP 集群部署 ROSA 前,您必须同时具有 VPC 和 OIDC 资源。首先我们将创建这些资源。ROSA 使用自带 VPC (BYO-VPC)模型。
17.4.6.1.1. 创建 VPC
确保您的 AWS CLI (
aws
)被配置为使用 ROSA 可用区域。运行以下命令,查看 AWS CLI 支持的区域:$ rosa list regions --hosted-cp
创建 VPC。在本教程中,以下 脚本 会创建 VPC 及其所需组件。它使用
aws
CLI 中配置的区域。#!/bin/bash set -e ########## # This script will create the network requirements for a ROSA cluster. This will be # a public cluster. This creates: # - VPC # - Public and private subnets # - Internet Gateway # - Relevant route tables # - NAT Gateway # # This will automatically use the region configured for the aws cli # ########## VPC_CIDR=10.0.0.0/16 PUBLIC_CIDR_SUBNET=10.0.1.0/24 PRIVATE_CIDR_SUBNET=10.0.0.0/24 # Create VPC echo -n "Creating VPC..." VPC_ID=$(aws ec2 create-vpc --cidr-block $VPC_CIDR --query Vpc.VpcId --output text) # Create tag name aws ec2 create-tags --resources $VPC_ID --tags Key=Name,Value=$CLUSTER_NAME # Enable dns hostname aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames echo "done." # Create Public Subnet echo -n "Creating public subnet..." PUBLIC_SUBNET_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block $PUBLIC_CIDR_SUBNET --query Subnet.SubnetId --output text) aws ec2 create-tags --resources $PUBLIC_SUBNET_ID --tags Key=Name,Value=$CLUSTER_NAME-public echo "done." # Create private subnet echo -n "Creating private subnet..." PRIVATE_SUBNET_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block $PRIVATE_CIDR_SUBNET --query Subnet.SubnetId --output text) aws ec2 create-tags --resources $PRIVATE_SUBNET_ID --tags Key=Name,Value=$CLUSTER_NAME-private echo "done." # Create an internet gateway for outbound traffic and attach it to the VPC. echo -n "Creating internet gateway..." IGW_ID=$(aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text) echo "done." aws ec2 create-tags --resources $IGW_ID --tags Key=Name,Value=$CLUSTER_NAME aws ec2 attach-internet-gateway --vpc-id $VPC_ID --internet-gateway-id $IGW_ID > /dev/null 2>&1 echo "Attached IGW to VPC." # Create a route table for outbound traffic and associate it to the public subnet. echo -n "Creating route table for public subnet..." PUBLIC_ROUTE_TABLE_ID=$(aws ec2 create-route-table --vpc-id $VPC_ID --query RouteTable.RouteTableId --output text) aws ec2 create-tags --resources $PUBLIC_ROUTE_TABLE_ID --tags Key=Name,Value=$CLUSTER_NAME echo "done." aws ec2 create-route --route-table-id $PUBLIC_ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --gateway-id $IGW_ID > /dev/null 2>&1 echo "Created default public route." aws ec2 associate-route-table --subnet-id $PUBLIC_SUBNET_ID --route-table-id $PUBLIC_ROUTE_TABLE_ID > /dev/null 2>&1 echo "Public route table associated" # Create a NAT gateway in the public subnet for outgoing traffic from the private network. echo -n "Creating NAT Gateway..." NAT_IP_ADDRESS=$(aws ec2 allocate-address --domain vpc --query AllocationId --output text) NAT_GATEWAY_ID=$(aws ec2 create-nat-gateway --subnet-id $PUBLIC_SUBNET_ID --allocation-id $NAT_IP_ADDRESS --query NatGateway.NatGatewayId --output text) aws ec2 create-tags --resources $NAT_IP_ADDRESS --resources $NAT_GATEWAY_ID --tags Key=Name,Value=$CLUSTER_NAME sleep 10 echo "done." # Create a route table for the private subnet to the NAT gateway. echo -n "Creating a route table for the private subnet to the NAT gateway..." PRIVATE_ROUTE_TABLE_ID=$(aws ec2 create-route-table --vpc-id $VPC_ID --query RouteTable.RouteTableId --output text) aws ec2 create-tags --resources $PRIVATE_ROUTE_TABLE_ID $NAT_IP_ADDRESS --tags Key=Name,Value=$CLUSTER_NAME-private aws ec2 create-route --route-table-id $PRIVATE_ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --gateway-id $NAT_GATEWAY_ID > /dev/null 2>&1 aws ec2 associate-route-table --subnet-id $PRIVATE_SUBNET_ID --route-table-id $PRIVATE_ROUTE_TABLE_ID > /dev/null 2>&1 echo "done." # echo "***********VARIABLE VALUES*********" # echo "VPC_ID="$VPC_ID # echo "PUBLIC_SUBNET_ID="$PUBLIC_SUBNET_ID # echo "PRIVATE_SUBNET_ID="$PRIVATE_SUBNET_ID # echo "PUBLIC_ROUTE_TABLE_ID="$PUBLIC_ROUTE_TABLE_ID # echo "PRIVATE_ROUTE_TABLE_ID="$PRIVATE_ROUTE_TABLE_ID # echo "NAT_GATEWAY_ID="$NAT_GATEWAY_ID # echo "IGW_ID="$IGW_ID # echo "NAT_IP_ADDRESS="$NAT_IP_ADDRESS echo "Setup complete." echo "" echo "To make the cluster create commands easier, please run the following commands to set the environment variables:" echo "export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID" echo "export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID"
其他资源
- 有关 VPC 要求的更多信息,请参阅 VPC 文档。
脚本输出命令。将命令设置为环境变量,以存储子网 ID 以供以后使用。复制并运行命令:
$ export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID $ export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID
运行以下命令确认您的环境变量:
$ echo "Public Subnet: $PUBLIC_SUBNET_ID"; echo "Private Subnet: $PRIVATE_SUBNET_ID"
输出示例
Public Subnet: subnet-0faeeeb0000000000 Private Subnet: subnet-011fe340000000000
17.4.6.1.2. 创建 OIDC 配置
在本教程中,我们将在创建 OIDC 配置时使用自动模式。我们还会将 OIDC ID 存储为环境变量,供以后使用。命令使用 ROSA CLI 创建集群的唯一 OIDC 配置。
运行以下命令来创建 OIDC 配置:
$ export OIDC_ID=$(rosa create oidc-config --mode auto --managed --yes -o json | jq -r '.id')
17.4.6.2. 创建其他环境变量
运行以下命令来设置环境变量。这些变量可以更轻松地运行命令来创建 ROSA 集群:
$ export CLUSTER_NAME=<cluster_name> $ export REGION=<VPC_region>
提示运行
rosa whoami
来查找 VPC 区域。
17.4.6.3. 创建集群
可选: 运行以下命令来创建集群范围的角色和策略,包括 Operator 策略和 AWS IAM 角色和策略:
重要只有在您 首次在 这个帐户中部署 ROSA 且您尚未创建您的帐户角色和策略 时,才完成这个步骤。
$ rosa create account-roles --mode auto --yes
运行以下命令来创建集群:
$ rosa create cluster --cluster-name $CLUSTER_NAME \ --subnet-ids ${PUBLIC_SUBNET_ID},${PRIVATE_SUBNET_ID} \ --hosted-cp \ --region $REGION \ --oidc-config-id $OIDC_ID \ --sts --mode auto --yes
集群在大约 10 分钟后就绪。集群将在所选区域中的三个 AWS 可用区有一个 control plane,并在 AWS 帐户中创建两个 worker 节点。
17.4.6.4. 检查安装状态
运行以下命令之一检查集群的状态:
有关集群状态的详细视图,请运行:
$ rosa describe cluster --cluster $CLUSTER_NAME
对于集群状态的 abridged 视图,请运行:
$ rosa list clusters
要在其进行时监控日志,请运行:
$ rosa logs install --cluster $CLUSTER_NAME --watch
- 当状态变为 "ready" 后,您的集群就会被安装。worker 节点上线可能需要几分钟时间。