×

如果您想删除带有托管控制平面 (HCP) 集群的Red Hat OpenShift Service on AWS (ROSA),您可以使用Red Hat OpenShift集群管理器或ROSA命令行界面 (CLI) (rosa)。删除集群后,您还可以删除集群使用的AWS身份和访问管理(IAM)资源。

删除带有HCP集群和集群特定IAM资源的ROSA

您可以使用ROSA命令行界面 (CLI) (rosa) 或Red Hat OpenShift集群管理器删除带有HCP集群的ROSA。

删除集群后,您可以使用ROSA CLI清理AWS帐户中的集群特定身份和访问管理(IAM)资源。集群特定资源包括操作员角色和OpenID Connect (OIDC)提供程序。

必须在删除IAM资源之前完成集群删除,因为这些资源用于集群删除和清理过程。

如果安装了附加组件,则集群删除将花费更长时间,因为在删除集群之前会卸载附加组件。所需时间取决于附加组件的数量和大小。

先决条件
  • 您已安装带有HCP集群的ROSA。

  • 您已在安装主机上安装并配置了最新的ROSA CLI (rosa)。

步骤
  1. 通过运行以下命令获取集群ID、集群特定操作员角色的Amazon资源名称(ARN)以及OIDC提供程序的端点URL

    $ rosa describe cluster --cluster=<cluster_name>
    示例输出
    Name:                       test_cluster
    Domain Prefix:              test_cluster
    Display Name:               test_cluster
    ID:                         <cluster_id> (1)
    External ID:                <external_id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.17.0
    Channel Group:              stable
    DNS:                        test_cluster.l3cn.p3.openshiftapps.com
    AWS Account:                <AWS_id>
    AWS Billing Account:        <AWS_id>
    API URL:                    https://api.test_cluster.l3cn.p3.openshiftapps.com:443
    Console URL:
    Region:                     us-east-1
    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_ids>
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Worker-Role
    Operator IAM Roles: (2)
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-cloud-network-config-controller-cloud-crede
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-image-registry-installer-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-kube-controller-manager
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-capa-controller-manager
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-control-plane-operator
     - arn:aws:iam::<AWS_id>:role/hcpcluster-kube-system-kms-provider
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-cluster-csi-drivers-ebs-cloud-credentials
    Managed Policies:           Yes
    State:                      ready
    Private:                    No
    Created:                    Apr 16 2024 20:32:06 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://console.redhat.com/openshift/details/s/<cluster_id>
    OIDC Endpoint URL:          https://oidc.op1.openshiftapps.com/<cluster_id> (Managed) (3)
    Audit Log Forwarding:       Disabled
    External Authentication:    Disabled
    1 列出集群ID。
    2 指定集群特定操作员角色的ARN。例如,在示例输出中,机器配置操作员所需的该角色的ARN是arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-machine-api-aws-cloud-credentials
    3 显示集群特定OIDC提供程序的端点URL。

    删除集群后,您需要集群ID才能使用ROSA CLI删除集群特定的STS资源。

  2. 使用OpenShift集群管理器或ROSA CLI (rosa)删除集群

    • 要使用OpenShift集群管理器删除集群

      1. 导航到OpenShift集群管理器

      2. 点击集群旁边的选项菜单kebab 并选择**删除集群**。

      3. 在提示符中键入集群名称,然后单击**删除**。

    • 要使用ROSA CLI删除集群

      1. 运行以下命令,将<cluster_name>替换为集群的名称或ID

        $ rosa delete cluster --cluster=<cluster_name> --watch

        您必须等到集群删除完成才能删除操作员角色和OIDC提供程序。

  3. 通过运行以下命令删除集群特定的操作员IAM角色

    $ rosa delete operator-roles --prefix <operator_role_prefix>
  4. 通过运行以下命令删除OIDC提供程序

    $ rosa delete oidc-provider --oidc-config-id <oidc_config_id>
故障排除
  • 如果由于缺少IAM角色而无法删除集群,请参阅修复无法删除的集群

  • 如果由于其他原因无法删除集群

    • 确保混合云控制台中没有您的集群的待处理附加组件。

    • 确保Amazon Web控制台中已删除所有AWS资源和依赖项。

删除帐户范围的IAM资源

删除所有依赖于帐户范围AWS身份和访问管理(IAM)资源的带有托管控制平面(HCP)集群的Red Hat OpenShift Service on AWS (ROSA)后,您可以删除帐户范围的资源。

如果您不再需要使用Red Hat OpenShift集群管理器安装带有HCP集群的ROSA,您还可以删除OpenShift集群管理器和用户IAM角色。

帐户范围的IAM角色和策略可能被同一AWS帐户中的其他带有HCP集群的ROSA使用。只有在其他集群不需要这些资源时才删除它们。

如果您想使用OpenShift集群管理器在同一AWS帐户中安装、管理和删除其他Red Hat OpenShift Service on AWS集群,则需要OpenShift集群管理器和用户IAM角色。只有在您不再需要使用OpenShift集群管理器在您的帐户中安装Red Hat OpenShift Service on AWS集群时才删除这些角色。有关在删除这些角色之前修复集群的更多信息,请参阅《故障排除集群部署》中的“修复无法删除的集群”。

删除帐户范围的IAM角色和策略

本节提供删除为 ROSA with HCP 部署创建的帐户范围的 IAM 角色和策略以及帐户范围的操作员策略的步骤。只有在删除所有依赖它们的 ROSA with HCP 集群后,才能删除帐户范围的 AWS Identity and Access Management (IAM) 角色和策略。

帐户范围的 IAM 角色和策略可能被同一 AWS 帐户中的其他 Red Hat OpenShift Service on AWS 使用。只有在其他集群不需要这些角色时,才能删除它们。

先决条件
  • 您有一些要删除的帐户范围的 IAM 角色。

  • 您已在安装主机上安装并配置了最新的ROSA CLI (rosa)。

步骤
  1. 删除帐户范围的角色

    1. 使用 ROSA CLI (rosa) 列出 AWS 帐户中的帐户范围的角色

      $ rosa list account-roles
      示例输出
      I: Fetching account roles
      ROLE NAME                                 ROLE TYPE      ROLE ARN                                                                 OPENSHIFT VERSION  AWS Managed
      ManagedOpenShift-HCP-ROSA-Installer-Role  Installer      arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Installer-Role  4.17               Yes
      ManagedOpenShift-HCP-ROSA-Support-Role    Support        arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Support-Role    4.17               Yes
      ManagedOpenShift-HCP-ROSA-Worker-Role     Worker         arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Worker-Role     4.17               Yes
    2. 删除帐户范围的角色

      $ rosa delete account-roles --prefix <prefix> --mode auto (1)
      1 您必须包含--<prefix> 参数。将<prefix> 替换为要删除的帐户范围角色的前缀。如果您在创建帐户范围的角色时未指定自定义前缀,请指定默认前缀ManagedOpenShift

      帐户范围的 IAM 角色可能被同一 AWS 帐户中的其他 ROSA 集群使用。只有在其他集群不需要这些角色时,才能删除它们。

      示例输出
      W: There are no classic account roles to be deleted
      I: Deleting hosted CP account roles
      ? Delete the account role 'delete-rosa-HCP-ROSA-Installer-Role'? Yes
      I: Deleting account role 'delete-rosa-HCP-ROSA-Installer-Role'
      ? Delete the account role 'delete-rosa-HCP-ROSA-Support-Role'? Yes
      I: Deleting account role 'delete-rosa-HCP-ROSA-Support-Role'
      ? Delete the account role 'delete-rosa-HCP-ROSA-Worker-Role'? Yes
      I: Deleting account role 'delete-rosa-HCP-ROSA-Worker-Role'
      I: Successfully deleted the hosted CP account roles
  2. 删除帐户范围的内联策略和操作员策略

    1. AWS IAM 控制台 的**策略**页面下,按创建帐户范围的角色和策略时指定的 prefix 筛选策略列表。

      如果您在创建帐户范围的角色时未指定自定义前缀,请搜索默认前缀ManagedOpenShift

    2. 使用 AWS IAM 控制台 删除帐户范围的内联策略和操作员策略。有关使用 AWS IAM 控制台删除 IAM 策略的更多信息,请参见 AWS 文档中的 删除 IAM 策略

      同一 AWS 帐户中的其他 ROSA with HCP 可能使用帐户范围的内联和操作员 IAM 策略。只有在其他集群不需要这些角色时,才能删除它们。

取消链接并删除 OpenShift 集群管理器和用户 IAM 角色

使用 Red Hat OpenShift 集群管理器安装 ROSA with HCP 集群时,还会创建链接到 Red Hat 组织的 OpenShift 集群管理器和用户 Identity and Access Management (IAM) 角色。删除集群后,您可以使用 ROSA CLI (rosa) 取消链接并删除这些角色。

如果您想使用 OpenShift 集群管理器在同一 AWS 帐户中安装和管理其他 ROSA with HCP,则需要 OpenShift 集群管理器和用户 IAM 角色。只有在您不再需要使用 OpenShift 集群管理器安装 ROSA with HCP 集群时,才能删除这些角色。

先决条件
  • 您创建了 OpenShift 集群管理器和用户 IAM 角色,并将它们链接到您的 Red Hat 组织。

  • 您已在安装主机上安装并配置了最新的ROSA CLI (rosa)。

  • 您在 Red Hat 组织中拥有组织管理员权限。

步骤
  1. 取消链接 OpenShift 集群管理器 IAM 角色与您的 Red Hat 组织,并删除该角色

    1. 列出 AWS 帐户中的 OpenShift 集群管理器 IAM 角色

      $ rosa list ocm-roles
      示例输出
      I: Fetching ocm roles
      ROLE NAME                                                     ROLE ARN                                                                                         LINKED  ADMIN  AWS Managed
      ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>  Yes      Yes     Yes
    2. 如果您的 OpenShift 集群管理器 IAM 角色在前面命令的输出中列为已链接,请运行以下命令将其与您的 Red Hat 组织取消链接

      $ rosa unlink ocm-role --role-arn <arn> (1)
      1 <arn>替换为您的 OpenShift 集群管理器 IAM 角色的 Amazon 资源名称 (ARN)。ARN 在前面命令的输出中指定。在前面的示例中,ARN 的格式为arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>
      示例输出
      I: Unlinking OCM role
      ? Unlink the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' role from organization '<red_hat_organization_id>'? Yes
      I: Successfully unlinked role-arn 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' from organization account '<red_hat_organization_id>'
    3. 删除 OpenShift 集群管理器 IAM 角色和策略

      $ rosa delete ocm-role --role-arn <arn>
      示例输出
      I: Deleting OCM role
      ? OCM Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>
      ? Delete 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' ocm role? Yes
      ? OCM role deletion mode: auto (1)
      I: Successfully deleted the OCM role
      1 指定删除模式。您可以使用auto模式自动删除 OpenShift 集群管理器 IAM 角色和策略。在manual模式下,ROSA CLI 会生成删除角色和策略所需的aws命令。manual模式使您能够在手动运行aws命令之前查看详细信息。
  2. 取消链接用户 IAM 角色与您的 Red Hat 组织,并删除该角色

    1. 列出 AWS 帐户中的用户 IAM 角色

      $ rosa list user-roles
      示例输出
      I: Fetching user roles
      ROLE NAME                                  ROLE ARN                                                                  LINKED
      ManagedOpenShift-User-<ocm_user_name>-Role  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role  Yes
    2. 如果您的用户 IAM 角色在前面命令的输出中列为已链接,请将其与您的 Red Hat 组织取消链接

      $ rosa unlink user-role --role-arn <arn> (1)
      1 <arn>替换为您的用户 IAM 角色的 Amazon 资源名称 (ARN)。ARN 在前面命令的输出中指定。在前面的示例中,ARN 的格式为arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role
      示例输出
      I: Unlinking user role
      ? Unlink the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' role from the current account '<ocm_user_account_id>'? Yes
      I: Successfully unlinked role ARN 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' from account '<ocm_user_account_id>'
    3. 删除用户 IAM 角色

      $ rosa delete user-role --role-arn <arn>
      示例输出
      I: Deleting user role
      ? User Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role
      ? Delete the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' role from the AWS account? Yes
      ? User role deletion mode: auto (1)
      I: Successfully deleted the user role
      1 指定删除模式。您可以使用auto模式自动删除用户 IAM 角色。在manual模式下,ROSA CLI 会生成删除角色所需的aws命令。manual模式使您能够在手动运行aws命令之前查看详细信息。