×

本文档提供删除使用 AWS 安全令牌服务 (STS) 的 AWS 上的 Red Hat OpenShift Service (ROSA) 集群的步骤。删除集群后,您还可以删除集群使用的 AWS Identity and Access Management (IAM) 资源。

先决条件

  • 如果 AWS 上的 Red Hat OpenShift Service 创建了 VPC,则在成功删除集群之前,必须先从集群中删除以下项目:

    • 网络配置,例如 VPN 配置和 VPC 对等连接

    • 添加到 VPC 的任何其他服务

如果这些配置和服务仍然存在,则集群无法正确删除。

删除 ROSA 集群和特定于集群的 IAM 资源

您可以使用 ROSA CLI (rosa) 或 Red Hat OpenShift 集群管理器删除使用 AWS 安全令牌服务 (STS) 的 AWS 上的 Red Hat OpenShift Service (ROSA) 集群。

删除集群后,您可以使用 ROSA CLI (rosa) 清理 AWS 帐户中特定于集群的 Identity and Access Management (IAM) 资源。特定于集群的资源包括 Operator 角色和 OpenID Connect (OIDC) 提供程序。

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

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

如果删除了在安装期间创建 VPC 的集群,则关联的安装程序创建的 VPC 也将被删除,这将导致所有使用相同 VPC 的集群都失败。此外,使用安装程序创建的资源的相同tagSet键值对并标记为owned值的任何资源也将被删除。

先决条件
  • 您已安装 ROSA 集群。

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

步骤
  1. 获取集群 ID、特定于集群的 Operator 角色的 Amazon 资源名称 (ARN) 和 OIDC 提供程序的端点 URL

    $ rosa describe cluster --cluster=<cluster_name> (1)
    1 <cluster_name>替换为您的集群名称。
    示例输出
    Name:                       mycluster
    ID:                         1s3v4x39lhs8sm49m90mi0822o34544a (1)
    ...
    Operator IAM Roles: (2)
     - arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-machine-api-aws-cloud-credentials
     - arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-cloud-credential-operator-cloud-crede
     - arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-image-registry-installer-cloud-creden
     - arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-cluster-csi-drivers-ebs-cloud-credent
     - arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-cloud-network-config-controller-cloud
    State:                      ready
    Private:                    No
    Created:                    May 13 2022 11:26:15 UTC
    Details Page:               https://console.redhat.com/openshift/details/s/296kyEFwzoy1CREQicFRdZybrc0
    OIDC Endpoint URL:          https://oidc.op1.openshiftapps.com/<oidc_config_id> (3)
    
    1 列出集群 ID。
    2 指定特定于集群的 Operator 角色的 ARN。例如,在示例输出中,机器配置 Operator 所需的角色的 ARN 为arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-machine-api-aws-cloud-credentials
    3 显示特定于集群的 OIDC 提供程序的端点 URL。

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

  2. 删除集群

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

      1. 导航到OpenShift 集群管理器

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

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

    • 要使用 ROSA CLI (rosa) 删除集群

      1. 输入以下命令以删除集群并监视日志,将<cluster_name>替换为集群的名称或 ID

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

        您必须等待集群删除完成才能删除 Operator 角色和 OIDC 提供程序。特定于集群的 Operator 角色是清理 OpenShift Operator 创建的资源所必需的。Operator 使用 OIDC 提供程序进行身份验证。

  3. 删除集群 Operator 用于身份验证的 OIDC 提供程序

    $ rosa delete oidc-provider -c <cluster_id> --mode auto (1)
    1 <cluster_id>替换为集群的 ID。

    您可以使用-y选项自动回答提示中的“是”。

  4. 可选。删除特定于集群的 Operator IAM 角色

    帐户范围的 IAM 角色可由同一 AWS 帐户中的其他 ROSA 集群使用。仅当其他集群不需要这些角色时才将其删除。

    $ rosa delete operator-roles -c <cluster_id> --mode auto (1)
    1 <cluster_id>替换为集群的 ID。
故障排除
  • 如果由于缺少 IAM 角色而无法删除集群,请参阅其他修复无法删除的集群

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

    • 检查混合云控制台中是否有任何集群的附加组件处于待处理状态。

    • 检查 Amazon Web 控制台中是否已删除所有 AWS 资源和依赖项。

其他资源

删除帐户范围的 IAM 资源

删除所有依赖于帐户范围的 AWS Identity and Access Management (IAM) 资源的具有托管控制平面 (HCP) 集群的 AWS 上的 Red Hat OpenShift Service (ROSA) 后,您可以删除帐户范围的资源。

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

同一 AWS 帐户中的其他具有 HCP 集群的 ROSA 可能会使用帐户范围的 IAM 角色和策略。仅当其他集群不需要这些资源时才将其删除。

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

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

本节提供删除为使用 STS 的 ROSA 和 HCP 部署创建的帐户级 IAM 角色和策略以及帐户级 Operator 策略的步骤。只有在删除所有依赖它们的 AWS 上的 Red Hat OpenShift 服务 (ROSA) 与 AWS 安全令牌服务 (STS) ROSA 与 HCP 集群后,才能删除帐户级 AWS 身份和访问管理 (IAM) 角色和策略。

其他同一个 AWS 账户中的 ROSA 集群可能会使用帐户级 IAM 角色和策略。只有在其他集群不需要这些角色时,才能删除它们。

先决条件
  • 您有一些想要删除的帐户级 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
      ManagedOpenShift-ControlPlane-Role  Control plane  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-ControlPlane-Role  4.10
      ManagedOpenShift-Installer-Role     Installer      arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Installer-Role     4.10
      ManagedOpenShift-Support-Role       Support        arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Support-Role       4.10
      ManagedOpenShift-Worker-Role        Worker         arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Worker-Role        4.10
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
  1. 删除帐户级角色

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

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

    示例输出
    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
    1. 删除帐户级内联策略和 Operator 策略

  2. AWS IAM 控制台 的**策略**页面下,按您在创建帐户级角色和策略时指定的前缀筛选策略列表。

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

  3. 使用 AWS IAM 控制台 删除帐户级内联策略和 Operator 策略。有关使用 AWS IAM 控制台删除 IAM 策略的更多信息,请参阅 AWS 文档中的 删除 IAM 策略

    同一个 AWS 账户中的其他 ROSA 与 HCP 集群可能会使用帐户级内联和 Operator IAM 策略。只有在其他集群不需要这些角色时,才能删除它们。

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

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

如果您想使用 OpenShift 集群管理器在同一个 AWS 账户中安装和管理其他 ROSA 与 HCP,则需要 OpenShift 集群管理器和用户 IAM 角色。只有在您不再需要使用 OpenShift 集群管理器安装 ROSA 与 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 命令之前查看详细信息。

其他资源