$ rosa create account-roles --hosted-cp
对于不需要公共互联网访问的 AWS 上的 Red Hat OpenShift 服务 (ROSA) 和托管控制平面 (HCP) 工作负载,您可以创建一个私有集群。
您可以使用 ROSA 命令行界面 (CLI) `rosa` 在具有 HCP 的 ROSA 上创建具有多个可用区 (Multi-AZ) 的私有集群。
您有可用的 AWS 服务配额。
您已在 AWS 控制台中启用 ROSA 服务。
您已在安装主机上安装并配置了最新版本的 ROSA CLI。
创建具有托管控制平面的集群大约需要 10 分钟。
创建一个至少具有一个私有子网的 VPC。确保您的机器的无类别域间路由 (CIDR) 与您的虚拟私有云的 CIDR 匹配。更多信息,请参见 使用您自己的 VPC 的要求 和 VPC 验证。
如果您使用防火墙,则必须对其进行配置,以便 ROSA 可以访问其正常运行所需的站点。 更多信息,请参见“AWS PrivateLink 防火墙先决条件”部分。 |
通过运行以下命令创建帐户范围的 IAM 角色
$ rosa create account-roles --hosted-cp
通过运行以下命令创建 OIDC 配置
$ rosa create oidc-config --mode=auto --yes
保存 OIDC 配置 ID,因为您需要它来创建 Operator 角色。
I: Setting up managed OIDC configuration
I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
rosa create operator-roles --prefix <user-defined> --oidc-config-id 28s4avcdt2l318r1jbk3ifmimkurk384
If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
I: Creating OIDC provider using 'arn:aws:iam::46545644412:user/user'
I: Created OIDC provider with ARN 'arn:aws:iam::46545644412:oidc-provider/oidc.op1.openshiftapps.com/28s4avcdt2l318r1jbk3ifmimkurk384'
通过运行以下命令创建 Operator 角色
$ rosa create operator-roles --hosted-cp --prefix <operator_roles_prefix> --oidc-config-id <oidc_config_id> --installer-role-arn arn:aws:iam::$<account_roles_prefix>:role/$<account_roles_prefix>-HCP-ROSA-Installer-Role
通过运行以下命令创建具有 HCP 集群的私有 ROSA
$ rosa create cluster --private --cluster-name=<cluster-name> --sts --mode=auto --hosted-cp --operator-roles-prefix <operator_role_prefix> --oidc-config-id <oidc_config_id> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id1>[,<private-subnet-id2>,<private-subnet-id3>]
输入以下命令以检查集群的状态。在集群创建期间,输出中的 `State` 字段将从 `pending` 变为 `installing`,最后变为 `ready`。
$ rosa describe cluster --cluster=<cluster_name>
如果安装失败或 `State` 字段在 10 分钟后未更改为 `ready`,请参见“其他资源”部分中的“AWS 上 Red Hat OpenShift 服务安装故障排除”文档。 |
输入以下命令以跟踪 OpenShift 安装程序日志,从而跟踪集群的进度
$ rosa logs install --cluster=<cluster_name> --watch
您可以允许 AWS 身份和访问管理 (IAM) 角色作为其他主体来连接到集群的私有 API 服务器端点。
您可以从公共互联网或在 VPC 私有子网内创建的接口端点访问您 ROSA 与 HCP 集群的 API 服务器端点。默认情况下,您可以使用 `-kube-system-kube-controller-manager` Operator 角色私下访问您的 ROSA 与 HCP API 服务器。为了能够直接从另一个帐户访问 ROSA 与 HCP API 服务器,而无需使用安装集群的主要帐户,您必须将跨帐户 IAM 角色包含为其他主体。此功能允许您简化网络架构并通过避免对集群的 VPC 进行对等或附加跨帐户 VPC 来降低数据传输成本。
在此图中,创建集群的帐户被指定为帐户 A。此帐户指定另一个帐户(帐户 B)应该能够访问 API 服务器。
配置允许的其他主体后,您必须在要从中访问跨帐户 ROSA 与 HCP API 服务器的 VPC 中创建接口 VPC 端点。然后,在 Route53 中创建一个私有托管区域,以将对跨帐户 ROSA 与 HCP API 服务器的调用路由到通过已创建的 VPC 端点。 |
使用 `--additional-allowed-principals` 参数允许通过其他角色访问。
将 `--additional-allowed-principals` 参数添加到 `rosa create cluster` 命令,类似于以下内容
$ rosa create cluster [...] --additional-allowed-principals <arn_string>
您可以使用 `arn:aws:iam::account_id:role/role_name` 批准特定角色。
运行集群创建命令时,您将收到包含指定 `--additional-allowed-principals` 的集群摘要
Name: mycluster
Domain Prefix: mycluster
Display Name: mycluster
ID: <cluster-id>
External ID: <cluster-id>
Control Plane: ROSA Service Hosted
OpenShift Version: 4.15.17
Channel Group: stable
DNS: Not ready
AWS Account: <aws_id>
AWS Billing Account: <aws_id>
API URL:
Console URL:
Region: us-east-2
Availability:
- Control Plane: MultiAZ
- Data Plane: SingleAZ
Nodes:
- Compute (desired): 2
- Compute (current): 0
Network:
- Type: OVNKubernetes
- Service CIDR: 172.30.0.0/16
- Machine CIDR: 10.0.0.0/16
- Pod CIDR: 10.128.0.0/14
- Host Prefix: /23
- Subnets: subnet-453e99d40, subnet-666847ce827
EC2 Metadata Http Tokens: optional
Role (STS) ARN: arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Installer-Role
Support Role ARN: arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Support-Role
Instance IAM Roles:
- Worker: arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Worker-Role
Operator IAM Roles:
- arn:aws:iam::<aws_id>:role/mycluster-kube-system-control-plane-operator
- arn:aws:iam::<aws_id>:role/mycluster-openshift-cloud-network-config-controller-cloud-creden
- arn:aws:iam::<aws_id>:role/mycluster-openshift-image-registry-installer-cloud-credentials
- arn:aws:iam::<aws_id>:role/mycluster-openshift-ingress-operator-cloud-credentials
- arn:aws:iam::<aws_id>:role/mycluster-openshift-cluster-csi-drivers-ebs-cloud-credentials
- arn:aws:iam::<aws_id>:role/mycluster-kube-system-kms-provider
- arn:aws:iam::<aws_id>:role/mycluster-kube-system-kube-controller-manager
- arn:aws:iam::<aws_id>:role/mycluster-kube-system-capa-controller-manager
Managed Policies: Yes
State: waiting (Waiting for user action)
Private: No
Delete Protection: Disabled
Created: Jun 25 2024 13:36:37 UTC
User Workload Monitoring: Enabled
Details Page: https://console.redhat.com/openshift/details/s/Bvbok4O79q1Vg8
OIDC Endpoint URL: https://oidc.op1.openshiftapps.com/vhufi5lap6vbl3jlq20e (Managed)
Audit Log Forwarding: Disabled
External Authentication: Disabled
Additional Principals: arn:aws:iam::<aws_id>:role/additional-user-role