本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建使用的 ROSA 经典集群 AWS PrivateLink
ROSA 经典集群可以通过几种不同的方式部署:公共集群、私有集群或私有集群 AWS PrivateLink。有关 ROSA 经典版的更多信息,请参阅ROSA 建筑。对于公共配置和私 OpenShift 集群 有 集群 配置,都可以访问互联网,并且在应用程序层对应用程序工作负载设置了隐私。
如果您要求 集群 和应用程序工作负载均为私有工作负载,则可以使用 ROSA classic AWS PrivateLink 进行配置。 AWS PrivateLink 是一种高度可用、可扩展的 ROSA 技术,用于在 ROSA 服务与 AWS 客户账户中的群集资源之间创建私有连接。借助 AWS PrivateLink,红帽站点可靠性工程 (SRE) 团队可以使用连接到集群 AWS PrivateLink 终端节点的私有子网访问集群以获得支持和补救。
有关的更多信息 AWS PrivateLink,请参阅什么是 AWS PrivateLink?
主题
先决条件
完成中列出的先决条件操作设置为使用 ROSA。
创建 Amazon VPC 架构
以下过程创建了可用于托管集群的 Amazon VPC 架构。所有 集群 资源都托管在私有子网中。公有子网将来自私有子网的出站流量通过 NAT 网关路由到公有互联网。此示例使用 Amazon VPC的 CIDR 块 10.0.0.0/16。但您可以选择其他 CIDR 块。有关更多信息,请参阅 VPC 大小调整。
重要
如果不 Amazon VPC 满足要求,集群创建将失败。
例
使用 ROSA CLI 创建 ROSA 经典集群和 AWS PrivateLink
您可以使用 ROSA CLI 和 AWS PrivateLink 创建 集群 具有单个可用区(单可用区)或多个可用区(多可用区)的。无论哪种情况,您的计算机的 CIDR 值都必须匹配 VPC 的 CIDR 值。
以下过程使用rosa create cluster命令创建 ROSA 经典版 集群。要创建多可用区 集群,请在命令--multi-az中指定,然后在出现提示时选择要 IDs 使用的私有子网。
注意
如果您使用防火墙,则必须对其进行配置,使其 ROSA 能够访问其运行所需的站点。
有关更多信息,请参阅 Red Hat 文档中的AWS PrivateLink 集群使用要求
-
使用
--mode auto或创建所需的 IAM 账户角色和策略--mode manual。-
rosa create account-roles --classic --mode auto -
rosa create account-roles --classic --mode manual注意
如果您的离线访问令牌已过期, ROSA CLI 会输出一条错误消息,指出您的授权令牌需要更新。有关故障排除的步骤,请参阅ROSA CLI 过期的离线访问令牌疑难解答。
-
-
集群 通过运行以下命令之一来创建。
-
单可用区
rosa create cluster --private-link --cluster-name=<CLUSTER_NAME> --machine-cidr=10.0.0.0/16 --subnet-ids=<PRIVATE_SUBNET_ID> -
多可用区
rosa create cluster --private-link --multi-az --cluster-name=<CLUSTER_NAME> --machine-cidr=10.0.0.0/16注意
要创建使用 AWS PrivateLink with AWS Security Token Service (AWS STS) 短期凭证的集群,请在命令末尾追加
--sts --mode auto或--sts --mode manual。rosa create cluster
-
-
按照交互式提示创建 集群 操作员 IAM 角色。
rosa create operator-roles --interactive -c <CLUSTER_NAME> -
创建 集群 操作员用来进行身份验证的 OpenID Connect (OIDC) 提供程序。
rosa create oidc-provider --interactive -c <CLUSTER_NAME> -
检查您的状态 集群。
rosa describe cluster -c <CLUSTER_NAME>注意
该 集群
State字段最多可能需要 40 分钟才能显示ready状态。如果配置失败或ready在 40 分钟后未显示为,请参阅问题排查。要联系我们 Support 的 Red Hat 支持部门寻求帮助,请参阅获得 ROSA 支持。 -
通过查看 OpenShift 安装程序日志来跟踪 集群 创建进度。
rosa logs install -c <CLUSTER_NAME> --watch
配置 AWS PrivateLink DNS 转发
使用的集群在中 AWS PrivateLink 创建公共托管区域和私有托管区域 Route 53。 Route 53 私有托管区域内的记录只能从其分配到的 VPC 内部进行解析。
Let’s Encrypt DNS-01 验证需要一个公有区域,以便能为该域颁发有效且公开信任的证书。在 Let's Encrypt 验证完成后,将删除验证记录。颁发和续订这些证书仍然需要使用该区域,通常每 60 天需要使用一次。尽管这些区域通常显示为空,但公有区域在验证过程中起着至关重要的作用。
有关 AWS 私有托管区域的更多信息,请参阅使用私有区域。有关公有托管区域更多信息,请参阅使用公有托管区域。
配置入 Route 53 Resolver 站终端节点
-
要允许在 VPC 外部解析等记录
api.<cluster_domain>和*.apps.<cluster_domain>解析,请配置 Route 53 Resolver 入站终端节点。注意
配置入站终端节点时,需要至少指定两个 IP 地址以实现冗余。我们建议您在至少两个可用区中指定 IP 地址。您可以选择在这些可用区或其他可用区中指定其他 IP 地址。
-
配置入站终端节点时,请选择创建集群时使用的 VPC 和私有子网。
为集群配置 DNS 转发
关联 Route 53 Resolver 内部终端节点并运行后,配置 DNS 转发,以便网络上的指定服务器可以处理 DNS 查询。
-
将您的公司网络配置为将 DNS 查询转发到顶级域的 IP 地址,例如
drow-pl-01.htno.p1.openshiftapps.com。 -
如果要将 DNS 查询从一个 VPC 转发到另一个 VPC,请按照管理转发规则中的说明进行操作。
-
如果您要配置远程网络 DNS 服务器,请参阅特定的 DNS 服务器文档,为已安装的集群域配置选择性 DNS 转发。
配置身份提供商并授予 集群 访问权限
ROSA 包括内置 OAuth 服务器。创建 ROSA
集群 完成后,必须配置 OAuth 为使用身份提供商。然后,您可以将用户添加到您配置的身份提供商,以授予其访问 集群的权限。您可以根据需要授予这些用户 cluster-admin 或 dedicated-admin 权限。
您可以为自己的 集群配置不同的身份提供商类型。支持的类型包括 En GitHub terprise GitHub、Google GitLab、LDAP、OpenID Connect 和 HTPasswd 身份提供商。
重要
包含 HTPasswd 身份提供者只是为了允许创建单个静态管理员用户。 HTPasswd 不支持作为通用身份提供商。 ROSA
以下过程以配置 GitHub 身份提供者为例。有关如何配置每种支持的身份提供商类型的说明,请参阅为 AWS STS配置身份提供商
-
导航到 github.com
并登录到你的 GitHub 账户。 -
如果您没有 GitHub 组织可以用于您的身份配置 ROSA 集群,请创建一个组织。有关更多信息,请参阅 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命令来观察使用更新的配置重新部署 p OAuth od。 -
确认身份提供商已正确配置。
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 并登录。
-
如果您创建了
cluster-admin用户,请使用提供的凭证登录。 -
如果您为配置了身份提供商 集群,请在 “登录方式...” 对话框中选择身份提供商名称,然后完成您的提供商提出的任何授权请求。
-
从开发者目录中部署应用程序
在 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。
-