本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 C ROSA LI 创建带有 HCP 集群的 ROSA
以下各节介绍如何使用托管控制平面(带有 HCP 的 ROSA) AWS STS 和 C ROSA LI 开始使用 ROSA。有关使用 Terraform 创建带有 HCP 集群的 ROSA 的步骤,请参阅红帽文档
ROSA CLI 使用auto模式或manual模式来创建所需 IAM 资源和 OpenID Connect (OIDC) 配置。 ROSA
集群auto模式会自动创建所需的 IAM 角色和策略以及 OIDC 提供者。 manual模式输出手动创建 IAM 资源所需的 AWS CLI 命令。通过使用manual模式,您可以在手动运行生成的 AWS CLI 命令之前查看这些命令。在 manual 模式下,您还可以将命令传递给组织中的其他管理员或组,以便其可以创建资源。
本文档中的过程使用 ROSA CLI auto 模式为使用 HCP 的 ROSA 创建所需的 IAM 资源和 OIDC 配置。有关入门的更多选项,请参阅开始使用 ROSA。
主题
先决条件
完成中列出的先决条件操作设置为使用 ROSA。
创建 Amazon VPC 架构
以下过程创建了可用于托管集群的 Amazon VPC 架构。所有 集群 资源都托管在私有子网中。公有子网将来自私有子网的出站流量通过 NAT 网关路由到公有互联网。此示例使用 Amazon VPC的 CIDR 块 10.0.0.0/16。但您可以选择其他 CIDR 块。有关更多信息,请参阅 VPC 大小调整。
重要
如果不 Amazon VPC 满足要求,集群创建将失败。
例
创建所需的 IAM 角色和 OpenID Connect 配置
在使用 HCP 集群创建 ROSA 之前,必须创建必要的 IAM 角色和策略以及 OpenID Connect (OIDC) 配置。有关使用 HCP 的 ROSA 的 IAM 角色和策略的更多信息,请参阅AWS 的托管策略 ROSA。
此过程使用 ROSA CLI auto 模式自动创建带有 HCP 集群的 ROSA 所需的 OIDC 配置。
-
创建所需的 IAM 账户角色和策略。该
--force-policy-creation参数更新存在的所有现有角色和策略。如果没有任何角色和策略,则该命令会改为创建这些资源。rosa create account-roles --force-policy-creation注意
如果您的离线访问令牌已过期, ROSA CLI 会输出一条错误消息,指出您的授权令牌需要更新。有关故障排除的步骤,请参阅ROSA CLI 过期的离线访问令牌疑难解答。
-
创建 OpenID Connect(OIDC)配置,以启用对集群的用户身份验证。此配置已注册为与 OpenShift 集群管理器 (OCM) 配合使用。
rosa create oidc-config --mode=auto -
复制 CL ROSA I 输出中提供的 OIDC 配置 ID。稍后需要提供 OIDC 配置 ID 才能创建带 HCP 的 ROSA 集群。
-
要验证与您的用户组织相关联集群可用的 OIDC 配置,请运行以下命令。
rosa list oidc-config -
创建所需的 IAM 操作员角色,
<OIDC_CONFIG_ID>替换为之前复制的 OIDC 配置 ID。例
重要
创建操作员角色时,必须在
<PREFIX_NAME>中提供前缀。否则会产生错误。rosa create operator-roles --prefix <PREFIX_NAME> --oidc-config-id <OIDC_CONFIG_ID> --hosted-cp -
要验证 IAM 操作员角色是否已创建,请运行以下命令:
rosa list operator-roles
使用 C ROSA LI 创建带有 HCP 集群的 ROSA 和 AWS STS
您可以 集群 使用 AWS Security Token Service (AWS STS) 和 C ROSA LI 中提供的auto模式创建 HCP 的 ROSA。您可以选择使用公共 API 和 Ingress 或私有 API 和 Ingress 创建集群。
您可以创建 集群 具有单个可用区(单可用区)或多个可用区(多可用区)的。无论哪种情况,您的计算机的 CIDR 值都必须匹配 VPC 的 CIDR 值。
以下过程使用rosa create cluster --hosted-cp命令创建带有 HCP 集群的单可用区 ROSA。要创建多可用区 集群,请在命令multi-az中指定要部署到 IDs 的每个私有子网的私有子网。
-
使用以下命令之一,创建带 HCP 的 ROSA 集群。
-
使用公共 API 和 Ingress 创建带有 HCP 集群的 ROSA,指定集群名称、操作员角色前缀、OIDC 配置 ID 以及公有和私有子网。 IDs
rosa create cluster --cluster-name=<CLUSTER_NAME> --sts --mode=auto --hosted-cp --operator-roles-prefix <OPERATOR_ROLE_PREFIX> --oidc-config-id <OIDC_CONFIG_ID> --subnet-ids=<PUBLIC_SUBNET_ID>,<PRIVATE_SUBNET_ID> -
使用私有 API 和 Ingress 创建带有 HCP 集群的 ROSA,指定集群名称、操作员角色前缀、OIDC 配置 ID 和私有子网。 IDs
rosa create cluster --private --cluster-name=<CLUSTER_NAME> --sts --mode=auto --hosted-cp --subnet-ids=<PRIVATE_SUBNET_ID>
-
-
检查您的状态 集群。
rosa describe cluster -c <CLUSTER_NAME>注意
如果创建过程失败或
State字段在 10 分钟后仍未变为就绪状态,请参阅问题排查。要联系 支持 我们的红帽支持部门寻求帮助,请参阅获得 ROSA 支持。
-
通过查看 OpenShift 安装程序日志来跟踪 集群 创建进度。
rosa logs install -c <CLUSTER_NAME> --watch
配置身份提供商并授予 集群 访问权限
ROSA 包括内置 OAuth 服务器。创建 集群 完成后,必须配置 OAuth 为使用身份提供商。然后,您可以将用户添加到您配置的身份提供商,以授予其访问 集群的权限。您可以根据需要授予这些用户 cluster-admin 或 dedicated-admin 权限。
您可以为自己 ROSA 集群配置不同的身份提供商类型。支持的类型包括 GitHub En GitHub terprise、Google GitLab、LDAP、OpenID Connect 和 HTPasswd 身份提供商。
重要
包含 HTPasswd 身份提供者只是为了允许创建单个静态管理员用户。 HTPasswd 不支持作为通用身份提供商。 ROSA
以下过程以配置 GitHub 身份提供者为例。有关如何配置每种支持的身份提供商类型的说明,请参阅为 AWS STS配置身份提供商
-
导航到 github.com
并登录到你的 GitHub 账户。 -
如果您没有 GitHub 组织可以用于您的身份配置 集群,请创建一个组织。有关更多信息,请参阅 GitHub 文档中的步骤
。 -
使用 ROSA CLI 的交互模式,为您的集群配置身份提供商。
rosa create idp --cluster=<CLUSTER_NAME> --interactive -
按照输出中的配置提示限制 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' ... -
在输出中打开 URL,
<GITHUB_ORG_NAME>替换为您的 GitHub 组织名称。 -
在 GitHub 网页上,选择注册应用程序以在您的 GitHub 组织中注册新 OAuth 应用程序。
-
运行以下命令,使用 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 使用更新的配置重新部署。 -
确认身份提供商已正确配置。
rosa list idps --cluster=<CLUSTER_NAME>
授予用户访问权限 集群
您可以通过将用户添加到已配置的身份提供商 集群 来授予他们对您的访问权限。
以下过程将用户添加到已配置为向集群配置身份的 GitHub 组织。
-
导航到 github.com
并登录到你的 GitHub 账户。 -
邀请需要 集群 访问您的 GitHub 组织的用户。有关更多信息,请参阅 GitHub 文档中的邀请用户加入您的组织
。
配置 cluster-admin 权限
-
通过运行以下命令授予
cluster-admin权限。将<IDP_USER_NAME>和<CLUSTER_NAME>替换为您的用户名和集群名。rosa grant user cluster-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME> -
确认该用户是否已列为
cluster-admins组的成员。rosa list users --cluster=<CLUSTER_NAME>
配置 dedicated-admin 权限
-
通过使用以下命令授予
dedicated-admin权限。运行以下命令<CLUSTER_NAME>,用您的用户 集群 名和名称替换<IDP_USER_NAME>和。rosa grant user dedicated-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME> -
确认该用户是否已列为
cluster-admins组的成员。rosa list users --cluster=<CLUSTER_NAME>
集群 通过红帽混合云控制台访问
集群 通过红帽混合云控制台登录您的。
-
集群 使用以下命令获取您的控制台 URL。
<CLUSTER_NAME>用你的名字替换 集群。rosa describe cluster -c <CLUSTER_NAME> | grep Console -
导航到输出中的控制台 URL 并登录。
在登录方式… 对话框中,选择身份提供商名称,然后完成提供商提出的任何授权请求。
从开发者目录部署应用程序
在 Red Hat Hybrid Cloud Console 中,您可以部署开发人员目录测试应用程序,并通过路由将其公开。
-
导航到 Red Hat Hybrid Cloud Console
,然后选择要将应用程序部署到的集群。 -
在集群的页面上,选择 Open console。
-
在 Administrator 视角中,选择 Home > Projects > Create Project。
-
输入项目的名称,然后添加 Display Name 和 Description(可选)。
-
选择 Create 以创建项目。
-
切换到 Developer 视角并选择 +Add。确保所选的项目是刚刚创建的项目。
-
在 Developer Catalog 对话框中,选择 All services。
-
在 “开发者目录” 页面中,JavaScript从菜单中选择 “语言” >。
-
选择 Node.js,然后选择 “创建应用程序” 以打开 “创建 Source-to-Image应用程序” 页面。
注意
您可能需要选择 Clear All Filters 才能显示 Node.js 选项。
-
在 Git 部分中,选择 Try Sample。
-
在 Name 字段中,添加一个唯一的名称。
-
选择创建。
注意
部署新应用程序需要几分钟时间。
-
部署完成后,选择应用程序的路由 URL。
浏览器中将打开一个新选项卡,并显示与以下内容类似的一则消息。
Welcome to your Node.js application on OpenShift -
(可选)删除应用程序并清理资源:
-
在 Administrator 视角中,选择 Home > Projects。
-
打开项目的操作菜单,然后选择 Delete Project。
-
撤销用户的 cluster-admin 权限
-
使用以下命令撤销
cluster-admin权限。<CLUSTER_NAME>用您的用户名<IDP_USER_NAME>和 集群 名称替换和。rosa revoke user cluster-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME> -
确认该用户未列为
cluster-admins组的成员。rosa list users --cluster=<CLUSTER_NAME>
撤销用户的 dedicated-admin 权限
-
通过使用以下命令,撤销
dedicated-admin权限。<CLUSTER_NAME>用您的用户名<IDP_USER_NAME>和 集群 名称替换和。rosa revoke user dedicated-admin --user=<IDP_USER_NAME> --cluster=<CLUSTER_NAME> -
确认该用户未列为
dedicated-admins组的成员。rosa list users --cluster=<CLUSTER_NAME>
撤消用户对 a 的访问权限 集群
您可以通过将身份提供商用户从已配置的身份提供商中移除来撤消其 集群 访问权限。
您可以为自己的 集群配置不同类型的身份提供商。以下过程将撤消 GitHub 组织成员的 集群 访问权限。
-
导航到 github.com
并登录到你的 GitHub 账户。 -
将该用户从您的 GitHub 组织中移除。有关更多信息,请参阅 GitHub 文档中的从组织中移除成员
。
删除集群和 AWS STS 资源
您可以使用 ROSA CLI 删除使用 AWS Security Token Service (AWS STS) 集群 的。您也可以使用 ROSA CLI 删除由创建的 IAM 角色和 OIDC 提供者。 ROSA要删除由创建的 IAM 策略 ROSA,您可以使用 IAM 控制台。
注意
IAM 由创建的角色和策略 ROSA 可能会被同一账户中的其他 ROSA 集群使用。
-
删除 集群 并查看日志。将
<CLUSTER_NAME>替换为 集群的名称或 ID。rosa delete cluster --cluster=<CLUSTER_NAME> --watch重要
必须等待完全删除, 集群 然后才能移除 IAM 角色、策略和 OIDC 提供商。删除安装程序创建的资源需要账户 IAM 角色。需要操作员 IAM 角色才能清理 OpenShift 操作员创建的资源。操作员使用 OIDC 提供商进行身份验证。
-
运行以下命令,删除 集群 操作员用来进行身份验证的 OIDC 提供商。
rosa delete oidc-provider -c <CLUSTER_ID> --mode auto -
删除特定于集群的操作员 IAM 角色。
rosa delete operator-roles -c <CLUSTER_ID> --mode auto -
使用以下命令删除账户的 IAM 角色。将
<PREFIX>替换为要删除的账户 IAM 角色的前缀。如果您在创建账户 IAM 角色时指定了自定义前缀,请指定默认的ManagedOpenShift前缀。rosa delete account-roles --prefix <PREFIX> --mode auto -
删除由创建的 IAM 策略 ROSA。
-
登录 IAM 控制台
。 -
在左侧菜单的访问管理下,选择策略。
-
选择要删除的策略,然后选择操作 > 删除。
-
输入策略名称,然后选择删除。
-
重复此步骤以删除 集群的每个 IAM policy。
-