View a markdown version of this page

使用 ROSA CLI 创建 ROSA 经典集群 - AWS 云端 Red Hat OpenShift 服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 ROSA CLI 创建 ROSA 经典集群

以下各节介绍如何使用 AWS STS 和 ROSA CLI 开始使用 ROSA classic。有关使用 Terraform 创建 ROSA 经典集群的步骤,请参阅红帽文档。要了解有关用于创建 ROSA 集群的 Terraform 提供程序的更多信息,请参阅 Terraform 文档

C ROSA LI 使用automanual模式或模式来创建置备所需的 IAM 资源 ROSA 集群。 auto模式会立即创建所需的 IAM 角色和策略以及 OpenID Connect (OIDC) 提供程序。 manual模式输出创建 IAM 资源所需的 AWS CLI 命令。通过使用manual模式,您可以在手动运行生成的 AWS CLI 命令之前查看这些命令。在 manual 模式下,您还可以将命令传递给组织中的其他管理员或组,以便其可以创建资源。

有关入门的更多选项,请参阅开始使用 ROSA

先决条件

完成中列出的先决条件操作设置为使用 ROSA

使用 ROSA CLI 创建 ROSA 经典集群和 AWS STS

您可以 集群 使用 ROSA CLI 和创建 ROSA 经典版 AWS STS。

  1. 使用--mode auto或创建所需的 IAM 账户角色和策略--mode manual

    • rosa create account-roles --classic --mode auto
    • rosa create account-roles --classic --mode manual
      注意

      如果您的离线访问令牌已过期, ROSA CLI 会输出一条错误消息,指出您的授权令牌需要更新。有关故障排除的步骤,请参阅ROSA CLI 过期的离线访问令牌疑难解答

  2. 集群 使用--mode auto或创建一个--mode manualautomode 允许您更快地创建集群。 manualmode 会提示您为集群指定自定义设置。

    • rosa create cluster --cluster-name <CLUSTER_NAME> --sts --mode auto
      注意

      当您指定时--mode auto,该rosa create cluster命令会自动创建特定于集群的操作员 IAM 角色和 OIDC 提供者。操作员使用 OIDC 提供商进行身份验证。

      注意

      使用--mode auto默认值时,将安装最新的稳定 OpenShift 版本。

    • rosa create cluster --cluster-name <CLUSTER_NAME> --sts --mode manual
      重要

      如果您在manual模式下启用 etcd 加密,则会产生大约 20% 的性能开销。除了对 etcd 卷进行加密的默认 Amazon EBS 加密之外,还引入了第二层加密,从而产生了开销。

      注意

      运行manual模式以创建集群后,您需要手动创建集群特定的操作员 IAM 角色和集群操作员用来进行身份验证的 OpenID Connect 提供程序。

  3. 检查您的状态 集群。

    rosa describe cluster -c <CLUSTER_NAME>
    注意

    如果置备过程失败或State字段在 40 分钟后仍未更改为就绪状态,请参阅问题排查。要联系我们 支持 的 Red Hat 支持部门寻求帮助,请参阅获得 ROSA 支持

  4. 通过查看 OpenShift 安装程序日志来跟踪 集群 创建进度。

    rosa logs install -c <CLUSTER_NAME> --watch

配置身份提供商并授予 集群 访问权限

ROSA 包括内置 OAuth 服务器。创建 集群 完成后,必须配置 OAuth 为使用身份提供商。然后,您可以将用户添加到您配置的身份提供商,以授予其访问 集群的权限。您可以根据需要授予这些用户 cluster-admindedicated-admin 权限。

您可以为自己 ROSA 集群配置不同的身份提供商类型。支持的类型包括 GitHub En GitHub terprise、Google GitLab、LDAP、OpenID Connect 和 HTPasswd 身份提供商。

重要

包含 HTPasswd 身份提供者只是为了允许创建单个静态管理员用户。 HTPasswd 不支持作为通用身份提供商。 ROSA

以下过程以配置 GitHub 身份提供者为例。有关如何配置每种支持的身份提供商类型的说明,请参阅为 AWS STS配置身份提供商

  1. 导航到 github.com 并登录到你的 GitHub 账户。

  2. 如果您没有 GitHub 组织可以用于您的身份配置 集群,请创建一个组织。有关更多信息,请参阅 GitHub 文档中的步骤

  3. 使用 ROSA CLI 的交互模式,为您的集群配置身份提供商。

    rosa create idp --cluster=<CLUSTER_NAME> --interactive
  4. 按照输出中的配置提示限制 GitHub 组织成员的 集群 访问权限。

    I: Interactive mode enabled. Any optional fields can be left empty and a default will be selected. ? Type of identity provider: github ? Identity provider name: github-1 ? Restrict to members of: organizations ? GitHub organizations: <GITHUB_ORG_NAME> ? To use GitHub as an identity provider, you must first register the application: - Open the following URL: https://github.com/organizations/<GITHUB_ORG_NAME>/settings/applications/new?oauth_application%5Bcallback_url%5D=https%3A%2F%2Foauth-openshift.apps.<CLUSTER_NAME>/<RANDOM_STRING>.p1.openshiftapps.com%2Foauth2callback%2Fgithub-1&oauth_application%5Bname%5D=<CLUSTER_NAME>&oauth_application%5Burl%5D=https%3A%2F%2Fconsole-openshift-console.apps.<CLUSTER_NAME>/<RANDOM_STRING>.p1.openshiftapps.com - Click on 'Register application' ...
  5. 在输出中打开 URL,<GITHUB_ORG_NAME>替换为您的 GitHub 组织名称。

  6. 在 GitHub 网页上,选择注册应用程序以在您的 GitHub 组织中注册新 OAuth 应用程序。

  7. 运行以下命令,使用 GitHub OAuth 页面中的信息填充剩余的rosa create idp交互式提示。用 GitHub OAuth 应用程序中的<GITHUB_CLIENT_SECRET>凭据替换<GITHUB_CLIENT_ID>和。

    ... ? Client ID: <GITHUB_CLIENT_ID> ? Client Secret: [? for help] <GITHUB_CLIENT_SECRET> ? GitHub Enterprise Hostname (optional): ? Mapping method: claim I: Configuring IDP for cluster '<CLUSTER_NAME>' I: Identity Provider 'github-1' has been created. It will take up to 1 minute for this configuration to be enabled. To add cluster administrators, see 'rosa grant user --help'. To login into the console, open https://console-openshift-console.apps.<CLUSTER_NAME>.<RANDOM_STRING>.p1.openshiftapps.com and click on github-1.
    注意

    身份提供商配置可能需要大约两分钟才能生效。如果您配置了cluster-admin用户,则可以运行oc get pods -n openshift-authentication --watch观看 OAuth pod 使用更新的配置重新部署。

  8. 确认身份提供商已正确配置。

    rosa list idps --cluster=<CLUSTER_NAME>

向用户授予访问权限 集群

您可以通过将用户添加到已配置的身份提供商 集群 来授予他们对您的访问权限。

以下过程将用户添加到已配置为向集群配置身份的 GitHub 组织。

  1. 导航到 github.com 并登录到你的 GitHub 账户。

  2. 邀请需要 集群 访问您的 GitHub 组织的用户。有关更多信息,请参阅 GitHub 文档中的邀请用户加入您的组织

配置 cluster-admin 权限

  1. 通过运行以下命令授予 cluster-admin 权限。将 <IDP_USER_NAME><CLUSTER_NAME> 替换为您的用户名和集群名。

    rosa grant user cluster-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME>
  2. 确认该用户是否已列为 cluster-admins 组的成员。

    rosa list users --cluster=<CLUSTER_NAME>

配置 dedicated-admin 权限

  1. 通过使用以下命令授予 dedicated-admin 权限。运行以下命令<CLUSTER_NAME>,用您的用户 集群 名和名称替换<IDP_USER_NAME>和。

    rosa grant user dedicated-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME>
  2. 确认该用户是否已列为 cluster-admins 组的成员。

    rosa list users --cluster=<CLUSTER_NAME>

集群 通过红帽混合云控制台访问

在创建 集群 管理员用户或向配置的身份提供商添加用户后,您可以 集群 通过红帽混合云控制台登录您的。

  1. 集群 使用以下命令获取您的控制台 URL。<CLUSTER_NAME>用你的名字替换 集群。

    rosa describe cluster -c <CLUSTER_NAME> | grep Console
  2. 导航到输出中的控制台 URL 并登录。

    • 如果您创建了 cluster-admin 用户,请使用提供的凭证登录。

    • 如果您为配置了身份提供商 集群,请在 “登录方式...” 对话框中选择身份提供商名称,然后完成您的提供商提出的任何授权请求。

从开发者目录中部署应用程序

在 Red Hat Hybrid Cloud Console 中,您可以部署开发人员目录测试应用程序,并通过路由将其公开。

  1. 导航到 Red Hat Hybrid Cloud Console,然后选择要将应用程序部署到的集群。

  2. 在集群的页面上,选择 Open console

  3. Administrator 视角中,选择 Home > Projects > Create Project

  4. 输入项目的名称,然后添加 Display NameDescription(可选)。

  5. 选择 Create 以创建项目。

  6. 切换到 Developer 视角并选择 +Add。确保所选的项目是刚刚创建的项目。

  7. Developer Catalog 对话框中,选择 All services

  8. 在 “开发者目录” 页面中,JavaScript从菜单中选择 “语言” >。

  9. 选择 Node.js,然后选择 “创建应用程序” 以打开 “创建 Source-to-Image应用程序” 页面。

    注意

    您可能需要选择 Clear All Filters 才能显示 Node.js 选项。

  10. Git 部分中,选择 Try Sample

  11. Name 字段中,添加一个唯一的名称。

  12. 选择创建

    注意

    部署新应用程序需要几分钟时间。

  13. 部署完成后,选择应用程序的路由 URL。

    浏览器中将打开一个新选项卡,并显示与以下内容类似的一则消息。

    Welcome to your Node.js application on OpenShift
  14. (可选)删除应用程序并清理资源:

    1. Administrator 视角中,选择 Home > Projects

    2. 打开项目的操作菜单,然后选择 Delete Project

撤销用户的 cluster-admin 权限

  1. 使用以下命令撤销 cluster-admin 权限。<CLUSTER_NAME>用您的用户名<IDP_USER_NAME>和 集群 名称替换和。

    rosa revoke user cluster-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME>
  2. 确认该用户未列为 cluster-admins 组的成员。

    rosa list users --cluster=<CLUSTER_NAME>

撤销用户的 dedicated-admin 权限

  1. 通过使用以下命令,撤销 dedicated-admin 权限。<CLUSTER_NAME>用您的用户名<IDP_USER_NAME>和 集群 名称替换和。

    rosa revoke user dedicated-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME>
  2. 确认该用户未列为 dedicated-admins 组的成员。

    rosa list users --cluster=<CLUSTER_NAME>

撤消用户对 a 的访问权限 集群

您可以通过将身份提供商用户从已配置的身份提供商中移除来撤消其 集群 访问权限。

您可以为自己的 集群配置不同类型的身份提供商。以下过程将撤消 GitHub 组织成员的 集群 访问权限。

  1. 导航到 github.com 并登录到你的 GitHub 账户。

  2. 将该用户从您的 GitHub 组织中移除。有关更多信息,请参阅 GitHub 文档中的从组织中移除成员

删除集群和 AWS STS 资源

您可以使用 ROSA CLI 删除使用 AWS Security Token Service (AWS STS) 集群 的。您也可以使用 ROSA CLI 删除由创建的 IAM 角色和 OIDC 提供者。 ROSA要删除由创建的 IAM 策略 ROSA,您可以使用 IAM 控制台。

重要

IAM 由创建的角色和策略 ROSA 可能会被同一账户中的其他 ROSA 集群使用。

  1. 删除 集群 并查看日志。将 <CLUSTER_NAME> 替换为 集群的名称或 ID。

    rosa delete cluster --cluster=<CLUSTER_NAME> --watch
    重要

    必须等待完全删除, 集群 然后才能移除 IAM 角色、策略和 OIDC 提供商。删除安装程序创建的资源需要账户 IAM 角色。需要操作员 IAM 角色才能清理 OpenShift 操作员创建的资源。操作员使用 OIDC 提供商进行身份验证。

  2. 运行以下命令,删除 集群 操作员用来进行身份验证的 OIDC 提供商。

    rosa delete oidc-provider -c <CLUSTER_ID> --mode auto
  3. 删除特定于集群的操作员 IAM 角色。

    rosa delete operator-roles -c <CLUSTER_ID> --mode auto
  4. 使用以下命令删除账户的 IAM 角色。将 <PREFIX> 替换为要删除的账户 IAM 角色的前缀。如果您在创建账户 IAM 角色时指定了自定义前缀,请指定默认的 ManagedOpenShift 前缀。

    rosa delete account-roles --prefix <PREFIX> --mode auto
  5. 删除由创建的 IAM 策略 ROSA。

    1. 登录 IAM 控制台

    2. 在左侧菜单的访问管理下,选择策略

    3. 选择要删除的策略,然后选择操作 > 删除

    4. 输入策略名称,然后选择删除

    5. 重复此步骤以删除 集群的每个 IAM policy。