×

对于不需要公共互联网访问的 AWS 上的 Red Hat OpenShift 服务 (ROSA) 和托管控制平面 (HCP) 工作负载,您可以创建一个私有集群。

使用 ROSA CLI 创建具有 HCP 集群的私有 ROSA

您可以使用 ROSA 命令行界面 (CLI) `rosa` 在具有 HCP 的 ROSA 上创建具有多个可用区 (Multi-AZ) 的私有集群。

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

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

  • 您已在安装主机上安装并配置了最新版本的 ROSA CLI。

步骤

创建具有托管控制平面的集群大约需要 10 分钟。

  1. 创建一个至少具有一个私有子网的 VPC。确保您的机器的无类别域间路由 (CIDR) 与您的虚拟私有云的 CIDR 匹配。更多信息,请参见 使用您自己的 VPC 的要求VPC 验证

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

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

  2. 通过运行以下命令创建帐户范围的 IAM 角色

    $ rosa create account-roles --hosted-cp
  3. 通过运行以下命令创建 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'
  4. 通过运行以下命令创建 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
  5. 通过运行以下命令创建具有 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>]
  6. 输入以下命令以检查集群的状态。在集群创建期间,输出中的 `State` 字段将从 `pending` 变为 `installing`,最后变为 `ready`。

    $ rosa describe cluster --cluster=<cluster_name>

    如果安装失败或 `State` 字段在 10 分钟后未更改为 `ready`,请参见“其他资源”部分中的“AWS 上 Red Hat OpenShift 服务安装故障排除”文档。

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

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

您在具有 HCP 集群的 ROSA 上的其他主体

您可以允许 AWS 身份和访问管理 (IAM) 角色作为其他主体来连接到集群的私有 API 服务器端点。

您可以从公共互联网或在 VPC 私有子网内创建的接口端点访问您 ROSA 与 HCP 集群的 API 服务器端点。默认情况下,您可以使用 `-kube-system-kube-controller-manager` Operator 角色私下访问您的 ROSA 与 HCP API 服务器。为了能够直接从另一个帐户访问 ROSA 与 HCP API 服务器,而无需使用安装集群的主要帐户,您必须将跨帐户 IAM 角色包含为其他主体。此功能允许您简化网络架构并通过避免对集群的 VPC 进行对等或附加跨帐户 VPC 来降低数据传输成本。

Overview of AWS cross account access

在此图中,创建集群的帐户被指定为帐户 A。此帐户指定另一个帐户(帐户 B)应该能够访问 API 服务器。

配置允许的其他主体后,您必须在要从中访问跨帐户 ROSA 与 HCP API 服务器的 VPC 中创建接口 VPC 端点。然后,在 Route53 中创建一个私有托管区域,以将对跨帐户 ROSA 与 HCP API 服务器的调用路由到通过已创建的 VPC 端点。

在创建具有 HCP 集群的 ROSA 时添加其他主体

使用 `--additional-allowed-principals` 参数允许通过其他角色访问。

步骤
  1. 将 `--additional-allowed-principals` 参数添加到 `rosa create cluster` 命令,类似于以下内容

    $ rosa create cluster [...] --additional-allowed-principals <arn_string>

    您可以使用 `arn:aws:iam::account_id:role/role_name` 批准特定角色。

  2. 运行集群创建命令时,您将收到包含指定 `--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

向您现有的具有 HCP 集群的 ROSA 添加其他主体

您可以使用命令行界面 (CLI) 向集群添加其他主体。

步骤
  • 运行以下命令以编辑您的集群并添加可以访问此集群端点的其他主体

    $ rosa edit cluster -c <cluster_name> --additional-allowed-principals <arn_string>

    您可以使用 `arn:aws:iam::account_id:role/role_name` 批准特定角色。

后续步骤