安装访问和删除 ROSA 集群
在 AWS (ROSA)集群上安装、访问和删除 Red Hat OpenShift Service。
摘要
第 1 章 使用默认选项创建带有 STS 的 ROSA 集群
如果您正在寻求 ROSA 的快速入门指南,请参阅 AWS 上的 Red Hat OpenShift Service 快速入门指南。
使用默认选项和自动 AWS Identity and Access Management (IAM)资源创建,快速创建 Red Hat OpenShift Service on AWS (ROSA) 集群。您可以使用 Red Hat OpenShift Cluster Manager 或 ROSA CLI (rosa
)部署集群。
本文档中的步骤通过 ROSA CLI (rosa
) 和 OpenShift Cluster Manager 中的 auto
模式,使用当前的 AWS 帐户创建所需的 IAM 资源。所需资源包括帐户范围内的 IAM 角色和策略、特定于集群的 Operator 角色和策略,以及 OpenID Connect (OIDC)身份提供程序。
另外,您可以使用 手动模式
,输出创建 IAM 资源所需的 aws
命令,而不是自动部署它们。有关使用 manual
模式或自定义自定义部署 ROSA 集群的步骤,请参阅使用自定义创建集群。
1.1. 默认集群规格概述
您可以使用默认安装选项快速创建使用 AWS 安全令牌服务 (STS) 的上快速创建 Red Hat OpenShift Service on AWS (ROSA) 集群。以下摘要描述了默认集群规格。
表 1.1. 默认带有 STS 集群规格的 ROSA
组件 | 默认规格 |
---|---|
帐户和角色 |
|
集群设置 |
|
Encryption |
|
control plane 节点配置 |
|
基础架构节点配置 |
|
Compute 节点机器池 |
|
网络配置 |
|
无类别域间路由 (CIDR) 范围 |
|
集群角色和策略 |
|
Cluster update 策略 |
|
1.2. 了解 AWS 帐户关联
在使用 Red Hat OpenShift Cluster Manager 混合云控制台前,使用 Red Hat OpenShift Cluster Manager 混合云控制台在 AWS (ROSA)集群中创建使用 AWS 安全令牌服务(STS)的 Red Hat OpenShift Service。您可以通过创建并链接以下 IAM 角色来关联您的帐户。
- OpenShift Cluster Manager 角色
创建 OpenShift Cluster Manager IAM 角色,并将其链接到您的红帽机构。
您可以将基本或管理权限应用到 OpenShift Cluster Manager 角色。基本权限使用 OpenShift Cluster Manager 混合云控制台启用集群维护。通过管理权限,可以使用 OpenShift Cluster Manager 混合云控制台自动部署特定于集群的 Operator 角色和 OpenID Connect (OIDC)供应商。
您可以使用带有 OpenShift Cluster Manager 角色的管理权限来快速部署集群。
- 用户角色
创建用户 IAM 角色并将其链接到您的红帽用户帐户。Red Hat 用户帐户必须存在于链接到 OpenShift Cluster Manager 角色的 Red Hat 机构中。
当您使用 OpenShift Cluster Manager 混合云控制台安装集群和所需的 STS 资源时,红帽使用用户角色来验证 AWS 身份。
其他资源
- 有关创建并链接 OpenShift Cluster Manager 和用户 IAM 角色的详细信息,请参阅将 AWS 帐户与您的红帽机构相关联。
1.3. 使用 OpenShift Cluster Manager 快速创建集群
当使用 Red Hat OpenShift Cluster Manager 在 AWS (ROSA)集群上创建使用 AWS 安全令牌服务(STS)的 Red Hat OpenShift Service 时,您可以选择默认选项来快速创建集群。
在可以使用 OpenShift Cluster Manager 部署带有 STS 的 ROSA 集群之前,您必须将 AWS 帐户与红帽机构相关联,并创建所需的账户范围 STS 角色及策略。
1.3.1. 将您的 AWS 帐户与红帽机构相关联
在使用 Red Hat OpenShift Cluster Manager Hybrid Cloud Console 之前,请先在 AWS (ROSA)集群上创建使用 AWS 安全令牌服务(STS)的 Red Hat OpenShift Service,创建一个 OpenShift Cluster Manager IAM 角色并将其链接到您的红帽机构。然后,创建一个用户 IAM 角色并将其链接到同一红帽机构中的红帽用户帐户。
前提条件
- 您已使用 STS 完成 ROSA 的 AWS 先决条件。
- 已有 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。注意要成功安装 ROSA 集群,请使用 ROSA CLI 的最新版本。
-
已使用
rosa
CLI 登录您的红帽帐户。 - 您在红帽组织中具有机构管理员权限。
流程
创建 OpenShift Cluster Manager 角色,并将其链接到您的红帽机构:
注意要使用 OpenShift Cluster Manager 混合云控制台启用集群特定 Operator 角色和 OpenID Connect (OIDC)供应商的自动部署,您必须在创建 ROSA 集群的 帐户和角色步骤中选择 Admin OCM 角色 命令。如需有关 OpenShift Cluster Manager 角色的基本和管理特权的更多信息,请参阅了解 AWS 帐户关联。
注意如果您在 OpenShift Cluster Manager 混合云控制台中创建 ROSA 集群的 帐户和角色 步骤中选择了 Basic OCM 角色命令,则必须使用手动模式部署 ROSA 集群。在后续步骤中,系统将提示您配置特定于集群的 Operator 角色和 OpenID Connect (OIDC)供应商。
$ rosa create ocm-role
选择提示符处的默认值,以快速创建和连接角色。
创建用户角色并将其链接到 OpenShift Cluster Manager 用户帐户:
$ rosa create user-role
选择提示符处的默认值,以快速创建和连接角色。
注意Red Hat 用户帐户必须存在于链接到 OpenShift Cluster Manager 角色的 Red Hat 机构中。
1.3.2. 创建面向帐户范围的 STS 角色和策略
在使用 Red Hat OpenShift Cluster Manager Hybrid Cloud Console 之前,请先在 AWS (ROSA)集群上创建使用 AWS 安全令牌服务(STS)的 Red Hat OpenShift Service,创建所需的 account-wide STS 角色和策略,包括 Operator 策略。
前提条件
- 您已使用 STS 完成 ROSA 的 AWS 先决条件。
- 已有 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。注意要成功安装 ROSA 集群,请使用 ROSA CLI 的最新版本。
-
已使用
rosa
CLI 登录您的红帽帐户。
流程
检查 AWS 帐户中的现有角色和策略:
$ rosa list account-roles
如果 AWS 帐户中没有它们,请创建所需的集群范围的 STS 角色和策略:
$ rosa create account-roles
选择提示中的默认值,以快速创建角色和策略。
1.3.3. 使用 OpenShift Cluster Manager 混合云控制台使用默认选项创建集群
当使用 Red Hat OpenShift Cluster Manager Hybrid Cloud Console 在 AWS (ROSA)集群中创建一个使用 AWS 安全令牌服务(STS)的 Red Hat OpenShift Service,您可以选择默认选项来快速创建集群。您还可以使用 admin OpenShift Cluster Manager IAM 角色启用自动部署特定于集群的 Operator 角色和 OpenID Connect(OIDC)供应商。
前提条件
- 您已使用 STS 完成 ROSA 的 AWS 先决条件。
- 已有 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。注意要成功安装 ROSA 集群,请使用 ROSA CLI 的最新版本。
- 您已经确认 AWS 帐户中存在 AWS Elastic Load Balancing (ELB)服务角色。
- 您已将 AWS 账户与您的红帽机构相关联。在关联您的帐户时,您要将管理权限应用到 OpenShift Cluster Manager 角色。如需了解详细信息,请参阅将 AWS 帐户与红帽机构相关联。
- 您已创建了所需的集群范围的 STS 角色和策略。如需了解详细信息,请参阅创建帐户范围内的 STS 角色和策略。
流程
- 导航到 OpenShift Cluster Manager Hybrid Cloud Console,再选择 Create cluster。
- 在 Create an OpenShift 集群 页面中,在 Red Hat OpenShift Service on AWS (ROSA) 行中选择 Create cluster。
验证您的 AWS 帐户 ID 是否在关联的 AWS 帐户 下拉菜单中列出,且安装程序、支持、worker 和 control plane 帐户角色 Amazon Resource Names (ARN) 是否在 Accounts 和 roles 页面中列出。
注意如果没有列出 AWS 帐户 ID,请检查您是否成功将 AWS 帐户与红帽机构相关联。如果没有列出帐户角色 ARN,请检查 AWS 帐户中是否存在所需的帐户范围 STS 角色。
- 点击 Next。
- 在 Cluster details 页面中,提供 集群名称。将默认值留在剩余的字段中,然后点 Next。
- 要快速部署集群,保留 Cluster settings, Networking, Cluster roles and policies, 和 Cluster updates 页中的默认选项,点每个页中的 Next。
- 在 Review your ROSA cluster 页中,查看您选择的概述并点 Create cluster 开始安装。
验证
您可以在集群的 Overview 页面中监控安装的进度。您可以在同一页面中查看安装日志。当页面的 Details 部分中的 Status 列为 Ready 时,您的集群已就绪。
注意如果安装失败,或者集群的状态在大约 40 分钟后仍没有变为 Ready,请检查安装故障排除文档以了解详细信息。如需更多信息,请参阅故障排除安装。如需联系红帽支持以获取帮助的步骤,请参阅 Red Hat OpenShift Service on AWS 支持。
1.4. 使用 CLI 快速创建集群
当使用 Red Hat OpenShift Service on AWS (ROSA) CLI (rosa
) 创建使用 AWS 安全令牌服务(STS)的集群时,您可以选择默认选项来快速创建集群。
前提条件
- 您已使用 STS 完成 ROSA 的 AWS 先决条件。
- 已有 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。注意要成功安装 ROSA 集群,请使用 ROSA CLI 的最新版本。
-
已使用
rosa
CLI 登录您的红帽帐户。 - 您已经确认 AWS 帐户中存在 AWS Elastic Load Balancing (ELB)服务角色。
流程
创建所需的集群范围的角色和策略,包括 Operator 策略:
$ rosa create account-roles --mode auto
注意使用
auto
模式时,您可以指定-y
参数来绕过交互式提示并自动确认操作。使用默认值创建带有 STS 的集群。当您使用默认值时,会安装最新的 stable OpenShift 版本:
$ rosa create cluster --cluster-name <cluster_name> --sts --mode auto 1
- 1
- 将
<cluster_name>
替换为集群的名称。
注意当您指定
--mode auto
时,rosa create cluster
命令会自动创建特定于集群的 Operator IAM 角色和 OIDC 供应商。Operator 使用 OIDC 供应商进行身份验证。检查集群的状态:
$ rosa describe cluster --cluster <cluster_name|cluster_id>
集群安装进行时,会输出以下
State
字段更改:-
等待(用于 OIDC 配置)
-
待定(准备帐户)
-
安装(DNS 设置进行中)
-
installing
ready
注意如果安装失败或者
State
字段在大约 40 分钟后没有变为ready
,请检查安装故障排除文档以了解详细信息。如需更多信息,请参阅故障排除安装。如需联系红帽支持以获取帮助的步骤,请参阅 Red Hat OpenShift Service on AWS 支持。
-
通过观察 OpenShift 安装程序日志来跟踪集群创建的进度:
$ rosa logs install --cluster <cluster_name|cluster_id> --watch 1
- 1
- 指定在安装过程中监视新日志消息的
--watch
标志。这个参数是可选的。
1.5. 后续步骤
1.6. 其他资源
- 有关使用手动模式部署 ROSA 集群的步骤,请参阅使用自定义创建集群。
- 有关使用 STS 的集群部署 Red Hat OpenShift Service 所需的 AWS Identity Access Management (IAM)资源的更多信息,请参阅关于使用 STS 的集群的 IAM 资源。
- 有关可选设置 Operator 角色名称前缀的详情,请参阅关于自定义 Operator IAM 角色前缀。
- 有关使用 STS 安装 ROSA 的先决条件的详情,请参考使用 STS 的 ROSA 的 AWS 先决条件。
-
有关使用
自动
和手动
模式创建所需的 STS 资源的详情,请参阅了解自动和手动部署模式。 - 有关在 AWS IAM 中使用 OpenID Connect (OIDC)身份提供程序的更多信息,请参阅 AWS 文档中的 创建 OpenID Connect (OIDC)身份供应商。
- 有关 ROSA 集群安装故障排除的更多信息,请参阅故障排除安装。
- 如需联系红帽支持以获取帮助的步骤,请参阅 Red Hat OpenShift Service on AWS 支持。
第 2 章 使用自定义功能创建带有 STS 的 ROSA 集群
使用自定义,在 AWS (ROSA)集群中创建一个 Red Hat OpenShift Service,并使用 AWS 安全令牌服务(STS)。您可以使用 Red Hat OpenShift Cluster Manager 或 ROSA CLI (rosa
)部署集群。
使用本文档中的步骤,在创建所需的 AWS Identity and Access Management (IAM)资源时,您还可以选择 auto
和 manual
模式。
2.1. 了解自动和手动部署模式
当使用 AWS 安全令牌服务 (STS) 在 AWS (ROSA) 集群中安装 Red Hat OpenShift Service 时,您可以选择 auto
和 manual
ROSA CLI (rosa
) 模式来创建所需的 AWS Identity and Access Management (IAM)资源。
auto
模式-
使用这个模式,
rosa
会立即创建所需的 IAM 角色和策略,以及 AWS 帐户中的 OpenID Connect (OIDC) 供应商。 manual
模式-
使用这个模式,ros
a
输出创建 IAM 资源所需的aws
命令。对应的策略 JSON 文件也保存到当前目录中。使用手动模式
,可以在手动运行前查看生成的aws
命令。通过手动模式
,您可以将命令传递给机构中的另一个管理员或组,以便他们可以创建资源。
如果选择使用 手动模式
,集群安装会等待,直到您手动创建特定于集群的 Operator 角色和 OIDC 供应商。创建资源后,安装将继续。如需更多信息,请参阅使用 OpenShift Cluster Manager 创建 Operator 角色和 OIDC 供应商。
有关使用 STS 安装 ROSA 所需的 AWS IAM 资源的更多信息,请参阅关于使用 STS 的集群的 IAM 资源。
2.1.1. 使用 OpenShift Cluster Manager 创建 Operator 角色和 OIDC 供应商
如果使用 Red Hat OpenShift Cluster Manager 安装集群并选择使用手动
模式创建所需的 AWS IAM Operator 角色和 OIDC 供应商,则会提示您输入以下安装方法之一来安装资源。允许您选择适合您的机构需求的资源创建方法:
- AWS CLI (
aws
) -
使用此方法,您可以下载并提取包含创建 IAM 资源所需的
aws
命令和策略文件的存档文件。从包含策略文件的目录运行提供的 CLI 命令,以创建 Operator 角色和 OIDC 供应商。 - ROSA CLI (
rosa
) -
您可以运行此方法提供的命令,以使用
rosa
为集群创建 Operator 角色和 OIDC 供应商。
如果使用 自动
模式,OpenShift Cluster Manager 将使用 OpenShift Cluster Manager IAM 角色提供的权限自动创建 Operator 角色和 OIDC 供应商。要使用这个功能,您必须将管理员特权应用到角色。
2.2. 了解 AWS 帐户关联
在使用 Red Hat OpenShift Cluster Manager 混合云控制台前,使用 Red Hat OpenShift Cluster Manager 混合云控制台在 AWS (ROSA)集群中创建使用 AWS 安全令牌服务(STS)的 Red Hat OpenShift Service。您可以通过创建并链接以下 IAM 角色来关联您的帐户。
- OpenShift Cluster Manager 角色
创建 OpenShift Cluster Manager IAM 角色,并将其链接到您的红帽机构。
您可以将基本或管理权限应用到 OpenShift Cluster Manager 角色。基本权限使用 OpenShift Cluster Manager 混合云控制台启用集群维护。通过管理权限,可以使用 OpenShift Cluster Manager 混合云控制台自动部署特定于集群的 Operator 角色和 OpenID Connect (OIDC)供应商。
您可以使用带有 OpenShift Cluster Manager 角色的管理权限来快速部署集群。
- 用户角色
创建用户 IAM 角色并将其链接到您的红帽用户帐户。Red Hat 用户帐户必须存在于链接到 OpenShift Cluster Manager 角色的 Red Hat 机构中。
当您使用 OpenShift Cluster Manager 混合云控制台安装集群和所需的 STS 资源时,红帽使用用户角色来验证 AWS 身份。
其他资源
- 有关创建并链接 OpenShift Cluster Manager 和用户 IAM 角色的详细信息,请参阅使用 OpenShift Cluster Manager 使用自定义创建集群。
2.3. IAM 角色和策略的 ARN 路径自定义
当您创建使用 AWS 安全令牌服务(STS)路径的 Red Hat OpenShift Service 所需的 AWS IAM 角色和策略。这可让您使用满足您机构安全要求的角色和策略 ARN 路径。
在创建 OCM 角色、用户角色和帐户范围角色和策略时,您可以指定自定义 ARN 路径。
如果您在创建一组帐户范围角色和策略时定义自定义 ARN 路径,则同一路径将应用到集合中的所有角色和策略。以下示例显示了一组集群范围的角色和策略的 ARN。在示例中,ARNs 使用自定义路径 /test/path/dev/
,自定义角色前缀 test-env
:
-
arn:aws:iam::<account_id>:role/test/path/dev/test-env-Worker-Role
-
arn:aws:iam::<account_id>:role/test/path/dev/test-env-Support-Role
-
arn:aws:iam::<account_id>:role/test/path/dev/test-env-Installer-Role
-
arn:aws:iam::<account_id>:role/test/path/dev/test-env-ControlPlane-Role
-
arn:aws:iam::<account_id>:policy/test/path/dev/test-env-Worker-Role-Policy
-
arn:aws:iam::<account_id>:policy/test/path/dev/test-env-Support-Role-Policy
-
arn:aws:iam::<account_id>:policy/test/path/dev/test-env-Installer-Role-Policy
-
arn:aws:iam::<account_id>:policy/test/path/dev/test-env-ControlPlane-Role-Policy
在创建特定于集群的 Operator 角色时,会自动检测到相关帐户范围内的安装程序角色的 ARN 路径,并应用到 Operator 角色。
有关 ARN 路径的更多信息,请参阅 AWS 文档中的 Amazon 资源名称(ARN )。
其他资源
- 有关在 AWS 集群上创建 Red Hat OpenShift Service 时为 IAM 资源指定自定义 ARN 路径的步骤,请参阅使用自定义 创建集群。
2.4. 使用 STS 对 ROSA 集群的支持注意事项
在使用 AWS 安全令牌服务(STS)的 AWS 集群上创建 Red Hat OpenShift Service 的支持方法是使用本文档中介绍的步骤。
您可以在 AWS CLI (rosa
) 中使用手动
模式生成 AWS Identity and Access Management (IAM) 策略文件和 aws
命令,用于安装 STS 资源所需的 aws 命令。
生成的文件和 aws
命令仅用于查看目的,不要对它们进行任何修改。红帽不支持使用修改版本的策略文件或 aws
命令部署的 ROSA 集群。
2.5. 使用自定义创建集群
使用符合您的环境需求的配置,在 AWS (ROSA) 上部署带有 AWS 安全令牌服务 (STS) 集群的 Red Hat OpenShift Service。您可以使用 Red Hat OpenShift Cluster Manager 或 ROSA CLI (rosa
)进行自定义来部署集群。
2.5.1. 使用 OpenShift Cluster Manager 使用自定义创建集群
当您创建使用 AWS 安全令牌服务 (STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群时,您可以使用 Red Hat OpenShift Cluster Manager 以交互自定义安装。
STS 仅支持公共和 AWS PrivateLink 集群。常规私有集群(非PrivateLink)不可用于 STS。
目前 ROSA 安装不支持 AWS Shared VPC。
前提条件
- 您已使用 STS 完成 ROSA 的 AWS 先决条件。
- 已有 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。注意要成功安装 ROSA 集群,请使用 ROSA CLI 的最新版本。
- 您已经确认 AWS 帐户中存在 AWS Elastic Load Balancing (ELB)服务角色。
- 如果要配置集群范围代理,您已验证可以从安装集群的 VPC 访问代理。该代理还必须从 VPC 的专用子网访问。
流程
- 导航到 OpenShift Cluster Manager Hybrid Cloud Console,再选择 Create cluster。
- 在 Create an OpenShift 集群 页面中,在 Red Hat OpenShift Service on AWS (ROSA) 行中选择 Create cluster。
如果自动检测到 AWS 帐户,则会在 关联 AWS 帐户 下拉菜单中列出帐户 ID。如果没有自动检测到 AWS 帐户,点 Select an account → Associate AWS 帐户,请按照以下步骤执行:
在 Authenticate 页面中,点
rosa login
命令旁边的复制按钮。命令中包含 OpenShift Cluster Manager API 登录令牌。注意您还可以在 OpenShift Cluster Manager 上的 OpenShift Cluster Manager API Token 页面中加载 API 令牌。
在 CLI 中运行复制的命令以登录到您的 ROSA 帐户。
$ rosa login --token=<api_login_token> 1
- 1
- 将
<api_login_token
> 替换为复制命令中提供的令牌。
输出示例
I: Logged in as '<username>' on 'https://api.openshift.com'
- 在 OpenShift Cluster Manager 中的 Authenticate 页面上,单击 Next。
在 OCM 角色页面中,点 Basic OCM role 或 Admin OCM role 命令旁边的复制按钮。
基本角色可让 OpenShift Cluster Manager 检测 ROSA 所需的 AWS IAM 角色和策略。admin 角色还启用角色和策略的检测。另外,admin 角色允许使用 OpenShift Cluster Manager 自动部署特定于集群 Operator 角色和 OpenID Connect (OIDC) 供应商。
在 CLI 中运行复制的命令,并按照提示创建 OpenShift Cluster Manager IAM 角色。以下示例使用默认选项创建基本的 OpenShift Cluster Manager IAM 角色:
$ rosa create ocm-role
输出示例
I: Creating ocm role ? Role prefix: ManagedOpenShift 1 ? Enable admin capabilities for the OCM role (optional): No 2 ? Permissions boundary ARN (optional): 3 ? Role Path (optional): 4 ? Role creation mode: auto 5 I: Creating role using 'arn:aws:iam::<aws_account_id>:user/<aws_username>' ? Create the 'ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' role? Yes I: Created role 'ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' with ARN 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' I: Linking OCM role ? OCM Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id> ? Link the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' role with organization '<red_hat_organization_id>'? Yes 6 I: Successfully linked role-arn 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' with organization account '<red_hat_organization_id>'
- 1
- 指定要包含在 OCM IAM 角色名称的前缀。默认为
ManagedOpenShift
。每个红帽机构的 AWS 帐户只能创建一个 OCM 角色。 - 2
- 启用 admin OpenShift Cluster Manager IAM 角色,这等同于指定
--admin
参数。如果要使用 Auto 模式使用 Auto 模式,则使用 OpenShift Cluster Manager 自动置备特定于集群的 Operator 角色和 OIDC 供应商,则需要 admin 角色。 - 3
- 可选:为角色指定一个权限边界 Amazon Resource Name (ARN)。如需更多信息,请参阅 AWS 文档中的 IAM 实体的权限界限。
- 4
- 为您的 OCM 角色指定自定义 ARN 路径。该路径必须仅包含字母数字字符并以
/
结尾,例如/test/path/dev/
。如需更多信息,请参阅 IAM 角色和策略的 ARN 路径自定义。 - 5
- 选择角色创建模式。您可以使用
自动
模式自动创建 OpenShift Cluster Manager IAM 角色,并将其链接到您的红帽机构帐户。在手动模式中
,rosa
CLI 生成创建并链接角色所需的aws
命令。在手动模式中
,对应的策略 JSON 文件也会保存到当前目录中。通过手动模式
,您可以在手动运行aws
命令前查看详情。 - 6
- 将 OpenShift Cluster Manager IAM 角色链接到您的红帽机构帐户。
如果您不选择将 OpenShift Cluster Manager IAM 角色链接到上一命令中的红帽机构帐户,请从 OpenShift Cluster Manager OCM 角色 页面中复制
rosa link
命令并运行它:$ rosa link ocm-role <arn> 1
- 1
- 将
<arn>
替换为上一命令输出中包含的 OpenShift Cluster Manager IAM 角色的 ARN。
- 在 OpenShift Cluster Manager OCM 角色 页面中选择 Next。
在 User 角色 页面中,单击 User role 命令的复制按钮,并在 CLI 中运行该命令。在使用 OpenShift Cluster Manager 安装集群时,红帽使用用户角色来验证 AWS 身份。
按照提示创建用户角色:
$ rosa create user-role
输出示例
I: Creating User role ? Role prefix: ManagedOpenShift 1 ? Permissions boundary ARN (optional): 2 ? Role Path (optional): [? for help] 3 ? Role creation mode: auto 4 I: Creating ocm user role using 'arn:aws:iam::<aws_account_id>:user/<aws_username>' ? Create the 'ManagedOpenShift-User-<red_hat_username>-Role' role? Yes I: Created role 'ManagedOpenShift-User-<red_hat_username>-Role' with ARN 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<red_hat_username>-Role' I: Linking User role ? User Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<red_hat_username>-Role ? Link the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<red_hat_username>-Role' role with account '<red_hat_user_account_id>'? Yes 5 I: Successfully linked role ARN 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<red_hat_username>-Role' with account '<red_hat_user_account_id>'
- 1
- 指定要包含在用户角色名称的前缀。默认为
ManagedOpenShift
。 - 2
- 可选:为角色指定一个权限边界 Amazon Resource Name (ARN)。如需更多信息,请参阅 AWS 文档中的 IAM 实体的权限界限。
- 3
- 为您的用户角色指定自定义 ARN 路径。该路径必须仅包含字母数字字符并以
/
结尾,例如/test/path/dev/
。如需更多信息,请参阅 IAM 角色和策略的 ARN 路径自定义。 - 4
- 选择角色创建模式。您可以使用
auto
模式自动创建用户角色,并将其链接到 OpenShift Cluster Manager 用户帐户。在手动模式中
,rosa
CLI 生成创建并链接角色所需的aws
命令。在手动模式中
,对应的策略 JSON 文件也会保存到当前目录中。通过手动模式
,您可以在手动运行aws
命令前查看详情。 - 5
- 将用户角色链接到 OpenShift Cluster Manager 用户帐户。
如果选择不要将用户角色链接到前面命令中 OpenShift Cluster Manager 用户帐户,请从 OpenShift Cluster Manager User 角色 页面中复制
rosa 链接
命令并运行:$ rosa link user-role <arn> 1
- 1
- 将 &
lt;arn
> 替换为上一命令输出中包含的用户角色的 ARN。
- 在 OpenShift Cluster Manager User 角色 页面中,点 Ok。
- 验证 AWS 帐户 ID 是否列在 Accounts and roles 页面的关联 AWS 帐户下拉菜单中。
如果所需的帐户角色不存在,则会提供一个通知,表示有些帐户角色 ARN 没有被检测到。您可以点击
rosa create account-roles
命令旁的复制缓冲区来创建 AWS 帐户范围内的角色和策略,包括 Operator 策略,以便在 CLI 中运行该命令:$ rosa create account-roles
输出示例
I: Logged in as '<red_hat_username>' on 'https://api.openshift.com' I: Validating AWS credentials... I: AWS credentials are valid! I: Validating AWS quota... I: AWS quota ok. If cluster installation fails, validate actual AWS resource usage against https://docs.openshift.com/rosa/rosa_getting_started/rosa-required-aws-service-quotas.html I: Verifying whether OpenShift command-line tool is available... I: Current OpenShift Client Version: 4.11.6 I: Creating account roles ? Role prefix: ManagedOpenShift 1 ? Permissions boundary ARN (optional): 2 ? Path (optional): [? for help] 3 ? Role creation mode: auto 4 I: Creating roles using 'arn:aws:iam::<aws_account_number>:user/<aws_username>' ? Create the 'ManagedOpenShift-Installer-Role' role? Yes 5 I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-Installer-Role' ? Create the 'ManagedOpenShift-ControlPlane-Role' role? Yes 6 I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-ControlPlane-Role' ? Create the 'ManagedOpenShift-Worker-Role' role? Yes 7 I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-Worker-Role' ? Create the 'ManagedOpenShift-Support-Role' role? Yes 8 I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-Support-Role' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
- 1
- 指定要包含在 OpenShift Cluster Manager IAM 角色名称的前缀。默认为
ManagedOpenShift
。重要您必须指定一个在 AWS 帐户间唯一的范围角色前缀,即使您为帐户角色使用自定义 ARN 路径。
- 2
- 可选:为角色指定一个权限边界 Amazon Resource Name (ARN)。如需更多信息,请参阅 AWS 文档中的 IAM 实体的权限界限。
- 3
- 为您的帐户范围角色指定自定义 ARN 路径。该路径必须仅包含字母数字字符并以
/
结尾,例如/test/path/dev/
。如需更多信息,请参阅 IAM 角色和策略的 ARN 路径自定义。 - 4
- 选择角色创建模式。您可以使用
auto
模式自动创建集群范围的角色和策略。在手动模式中
,rosa
CLI 生成创建角色和策略所需的aws
命令。在手动模式中
,对应的策略 JSON 文件也会保存到当前目录中。通过手动模式
,您可以在手动运行aws
命令前查看详情。 - 5 6 7 8
- 创建集群范围的安装程序、control plane、worker 和支持角色以及对应的 IAM 策略。如需更多信息,请参阅 帐户范围内的 IAM 角色和策略参考。注意
在这一步中,ROSA CLI 还会自动创建帐户范围 Operator IAM 策略,这些策略由特定于集群 Operator 策略使用,以允许 ROSA 集群 Operator 执行核心 OpenShift 功能。如需更多信息,请参阅 帐户范围内的 IAM 角色和策略参考。
在 Accounts 和 roles 页面上,点 Refresh ARNs,并验证是否列出了安装程序、支持、worker 和 control plane 帐户角色 ARN。
如果在集群版本的 AWS 帐户中有多个帐户角色集合,则会提供一个 Installer 角色 ARN 的下拉列表。选择您要与集群的安装程序角色的 ARN。集群使用与所选安装程序角色相关的集群范围的角色和策略。
点击 Next。
注意如果更改了 Accounts and roles 页面,您可能需要再次选择复选框,以确认您已读取并完成所有先决条件。
在 Cluster details 页面中,为集群提供名称并指定集群详情:
- 添加 集群名称。
- 从 Version 下拉菜单中选择一个集群版本。
- 从 Region 下拉菜单中选择一个云供应商区域。
- 选择 Single zone 或 Multi-zone configuration。
- 让 启用用户工作负载监控 选择以监控您自己的项目,使其与 Red Hat Site Reliability工程师(SRE)平台指标隔离。默认启用这个选项。
可选: 如果需要 etcd key value encryption,请选择 Enable additional etcd 加密。使用此选项时,etcd 键的值被加密,而不是键本身。这个选项除了 control plane 存储加密外,这个加密会默认加密 Red Hat OpenShift Service 中的 etcd 卷。
注意通过在 etcd 中为密钥值启用 etcd 加密,则会出现大约 20% 的性能开销。除了加密 etcd 卷的默认 control plane 存储加密外,还会引入第二层加密的开销。只有当您特别需要时才启用 etcd 加密。
可选:如果要提供自己的 AWS Key Management Service (KMS) 密钥 Amazon Resource Name (ARN),请选择使用客户密钥的加密持久性卷。用于加密集群中的持久性卷的密钥。
重要默认情况下,仅加密从默认存储类创建的持久性卷 (PV)。
只有在将存储类配置为加密时,使用其他存储类创建的 PV 才会被加密。
可选。要创建客户管理的 KMS 密钥,请按照 创建对称加密 KMS 密钥 的步骤进行操作。
重要除了帐户角色外,还需要 EBS operator 角色来成功创建集群。
EBS Operator 角色示例
"ARN:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent"
创建 Operator 角色后,您必须编辑 AWS 控制台的Key Management Service (KMS) 页面中的 Key Policy 来添加角色。
- 点击 Next。
在 Default 机器池 页面中,选择 Compute 节点实例类型。
注意创建集群后,您可以更改集群中的计算节点数量,但您无法更改默认机器池中的计算节点实例类型。您可用的节点数量和类型取决于您是否使用单一或者多个可用区。它们还取决于您 AWS 帐户和所选区域中的启用和可用的内容。
可选:为默认机器池配置自动扩展:
- 选择 Enable autoscaling 以自动扩展默认机器池中机器数量,以满足部署需求。
设置自动扩展的最小和最大节点数限值。集群自动扩展不会减少或增加默认的机器池节点数超过您指定的限制。
- 如果您使用一个可用区部署集群,请设置最小节点数和最大节点数。这会在可用区中定义最小和最大计算节点限值。
- 如果您使用多个可用区部署集群,请为每个区设置 最小节点以及每个区 的最大节点。它定义每个区的最小和最大计算节点限值。
注意另外,您可以在创建机器池后为默认机器池设置自动扩展首选项。
如果没有启用自动扩展,请为默认机器池选择计算节点计数:
- 如果您使用单一可用区部署集群,请从下拉菜单中选择 Compute node count。这定义了置备到区域的机器池的计算节点数量。
- 如果您使用多个可用区部署集群,请从下拉菜单中选择 Compute node count (每个区域)。这定义了每个区要置备到机器池的计算节点数量。
- 可选:扩展 Edit node labels 以向节点添加标签。点击 Add label 来添加更多节点标签,然后选择 Next。
在 Network Configuration 页面的 Cluster privacy 部分中,选择 Public 或 Private,以使用公共或私有 API 端点和应用程序路由。
重要在集群创建后无法更改公共和私有 API 端点。
- 公共 API 端点
- 如果您不想限制集群访问,请选择 Public。您可以从互联网访问 Kubernetes API 端点和应用程序路由。
- 私有 API 端点
如果要限制对集群的网络访问权限,请选择 Private。Kubernetes API 端点和应用程序路由只能从直接私有连接访问。
重要如果使用私有 API 端点,则在更新云供应商帐户中的网络设置之前,您无法访问集群。
可选:如果您选择使用公共 API 端点,则默认为集群创建新的 VPC。如果要在现有 VPC 上安装集群,请选择 Install into an existing VPC。
注意如果选择使用私有 API 端点,则必须使用现有的 VPC 和 PrivateLink,Install into an existing VPC 和 Use a PrivateLink 选项会被自动选择。通过这些选项,Red Hat Site Reliability Engineering (SRE)团队可以连接到集群来协助使用 AWS PrivateLink 端点支持。
- 可选: 如果要将集群安装到现有的 VPC 中,请选择配置集群范围代理 来启用 HTTP 或 HTTPS 代理来拒绝从集群直接访问互联网。
- 点击 Next。
如果您选择在现有 AWS VPC 中安装集群,请提供 Virtual Private Cloud (VPC)子网设置。
注意您必须确保 VPC 为希望安装集群的每个可用区配置公共和专用子网。如果您选择使用 PrivateLink,则只需要私有子网。
如果您选择配置集群范围代理,在 集群范围代理页面中提供代理 配置详情:
至少在以下字段之一中输入值:
- 指定有效的 HTTP 代理 URL。
- 指定有效的 HTTPS 代理 URL。
在 Additional trust bundle 字段中,提供 PEM 编码 X.509 证书捆绑包。捆绑包添加到集群节点的可信证书存储中。需要额外的信任捆绑包文件,除非代理的身份证书由 Red Hat Enterprise Linux CoreOS (RHCOS)信任捆绑包的颁发机构签名。
如果您使用不要求额外代理配置但需要额外的证书颁发机构(CA)的 MITM 透明代理网络,您必须提供 MITM CA 证书。
注意如果您在没有指定 HTTP 或 HTTPS 代理 URL 的情况下上传额外的信任捆绑包文件,则会在集群中设置捆绑包,但不会配置为与代理一起使用。
- 点击 Next。
有关在 AWS 上配置代理的更多信息,请参阅 配置集群范围代理。
在 CIDR 范围 对话框中,配置自定义无类别间路由 (CIDR) 范围,或使用提供默认值并点 Next。
注意如果您要安装到 VPC 中,Machine CIDR 范围必须与 VPC 子网匹配。
重要之后无法更改 CIDR 配置。在继续操作前,确认您的网络管理员的选择。
在 Cluster roles 和 policies 页面中,选择您首选的 cluster-specific Operator IAM 角色和 OIDC 供应商创建模式。
使用 Manual 模式,您可以使用
rosa
CLI 命令或aws
CLI 命令为集群生成所需的 Operator 角色和 OIDC 供应商。通过手动模式,您可以在使用首选选项手动创建 IAM 资源并完成集群安装前查看详情。另外,您可以使用 Auto 模式自动创建 Operator 角色和 OIDC 供应商。要启用 Auto 模式,OpenShift Cluster Manager IAM 角色必须具有管理员的功能。
注意如果您在创建关联的帐户范围角色时指定了自定义 ARN 路径,则会自动检测并应用自定义路径,并应用到 Operator 角色。当使用 Manual 或 Auto 模式创建 Operator 角色时,会应用自定义 ARN 路径。
可选:为特定于集群 Operator IAM 角色指定自定义 operator 角色前缀。
注意默认情况下,特定于集群的 Operator 角色名称使用集群名称和随机 4 位哈希值作为前缀。您可以选择在角色名称中指定自定义前缀来替换 <
cluster_name>-<hash
>。创建特定于集群的 Operator IAM 角色时会应用前缀。有关前缀的详情,请参阅关于自定义 Operator IAM 角色前缀。- 选择 Next。
在 Cluster update 策略 页面中,配置您的更新首选项:
选择集群更新方法:
- 如果要 单独 计划每个更新,请选择单独的更新。这是默认选项。
选择 Recurring updates,以便在更新可用时,在首选一天和开始时间更新集群。
重要即使选择了周期性更新,在次版本间升级集群前,您必须更新帐户和特定于集群的 IAM 资源。
注意您可以在更新生命周期文档中查看 Red Hat OpenShift Service on AWS 的发布日期。如需更多信息,请参阅 AWS 更新生命周期的 Red Hat OpenShift Service。
- 如果您选择周期性更新,请从下拉菜单中选择 UTC 首选一天,并在 UTC 中选择升级开始时间。
- 可选:在集群升级过程中为 节点排空 设置宽限期。默认设置 1 小时 宽限期。
点击 Next。
注意如果出现严重影响集群的安全性或稳定性的关键安全问题,Red Hat Site Reliability Engineering (SRE) 可能会对最新 z-stream 版本进行自动更新。在通知客户后,更新会在 48 小时内应用。有关关键影响安全评级的描述,请参阅 了解红帽安全评级。
- 查看您选择的概述,并点击 Create cluster 启动集群安装。
如果您选择使用 Manual 模式,请手动创建特定于集群的 Operator 角色和 OIDC 供应商来继续安装:
在 继续安装 对话框中所需的操作中,选择 AWS CLI 或 ROSA CLI 选项卡并手动创建资源:
如果您选择使用 AWS CLI 方法,点 Download .zip,保存文件,然后提取 AWS CLI 命令和策略文件。然后,在 CLI 中运行提供的
aws
命令。注意您必须在包含策略文件的目录中运行
aws
命令。如果您选择使用 ROSA CLI 方法,点
rosa create
命令旁边的复制按钮,并在 CLI 中运行它们。注意如果您在创建关联的帐户范围角色时指定了自定义 ARN 路径,则在使用这些手动方法创建时,会自动检测到自定义路径并应用到 Operator 角色。
- 在 Action required to continue installation 对话框中,点 x 返回到集群的 Overview 页。
- 验证集群的 Overview 页面的 Details 部分中的 Cluster Status 是否已从 Waiting 改为 Installing。在状态更改前,可能需要大约两分钟的延迟时间。
注意如果您选择使用 Auto 模式,OpenShift Cluster Manager 会自动创建 Operator 角色和 OIDC 供应商。
重要除了成功创建集群的账户角色外,还需要 EBS operator 角色。.Example EBS Operator role
"arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent"
创建 Operator 角色后,您必须编辑 AWS 控制台的Key Management Service (KMS) 页面中的 Key Policy 来添加角色。
验证
您可以在集群的 Overview 页面中监控安装的进度。您可以在同一页面中查看安装日志。当页面的 Details 部分中的 Status 列为 Ready 时,您的集群已就绪。
注意如果安装失败,或者集群的状态在大约 40 分钟后仍没有变为 Ready,请检查安装故障排除文档以了解详细信息。如需更多信息,请参阅故障排除安装。如需联系红帽支持以获取帮助的步骤,请参阅 Red Hat OpenShift Service on AWS 支持。
2.5.2. 使用 CLI 使用自定义创建集群
当您创建使用 AWS 安全令牌服务 (STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群时,您可以使用交互模式自定义安装。
当您在集群创建时运行 rosa create cluster --interactive
时,您会看到一系列互动提示,供您自定义部署。如需更多信息,请参阅 交互式集群创建模式参考。
使用互动模式安装集群后,输出中会提供一个单个命令,供您使用相同的自定义配置部署更多集群。
STS 仅支持公共和 AWS PrivateLink 集群。常规私有集群(非PrivateLink)不可用于 STS。
目前 ROSA 安装不支持 AWS Shared VPC。
前提条件
- 您已使用 STS 完成 ROSA 的 AWS 先决条件。
- 已有 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
您已在安装主机上安装和配置了最新的 ROSA (
rosa
) 和 AWS (aws
) CLI。注意要成功安装 ROSA 集群,请使用 ROSA CLI 的最新版本。
如果要使用客户管理的 AWS 密钥管理服务(KMS)密钥进行加密,您必须创建一个对称 KMS 密钥。您必须在创建集群时提供 Amazon Resource Name (ARN)。要创建客户管理的 KMS 密钥,请按照 创建对称加密 KMS 密钥 的步骤进行操作。
重要除了帐户角色外,还需要 EBS operator 角色来成功创建集群。
EBS Operator 角色示例
"ARN:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent"
创建 Operator 角色后,您必须编辑 AWS 控制台的Key Management Service (KMS) 页面中的 Key Policy 来添加角色。
流程
创建所需的集群范围的角色和策略,包括 Operator 策略:
在当前工作目录中生成 IAM 策略 JSON 文件,并输出
aws
CLI 命令进行查看:$ rosa create account-roles --interactive \ 1 --mode manual 2
输出示例
I: Logged in as '<red_hat_username>' on 'https://api.openshift.com' I: Validating AWS credentials... I: AWS credentials are valid! I: Validating AWS quota... I: AWS quota ok. If cluster installation fails, validate actual AWS resource usage against https://docs.openshift.com/rosa/rosa_getting_started/rosa-required-aws-service-quotas.html I: Verifying whether OpenShift command-line tool is available... I: Current OpenShift Client Version: 4.11.6 I: Creating account roles ? Role prefix: ManagedOpenShift 1 ? Permissions boundary ARN (optional): 2 ? Path (optional): [? for help] 3 ? Role creation mode: auto 4 I: Creating roles using 'arn:aws:iam::<aws_account_number>:user/<aws_username>' ? Create the 'ManagedOpenShift-Installer-Role' role? Yes 5 I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-Installer-Role' ? Create the 'ManagedOpenShift-ControlPlane-Role' role? Yes 6 I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-ControlPlane-Role' ? Create the 'ManagedOpenShift-Worker-Role' role? Yes 7 I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-Worker-Role' ? Create the 'ManagedOpenShift-Support-Role' role? Yes 8 I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::<aws_account_number>:role/ManagedOpenShift-Support-Role' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
- 1
- 指定要包含在 OpenShift Cluster Manager IAM 角色名称的前缀。默认为
ManagedOpenShift
。重要您必须指定一个在 AWS 帐户间唯一的范围角色前缀,即使您为帐户角色使用自定义 ARN 路径。
- 2
- 可选:指定角色的权限边界 Amazon Resource Name (ARN)。如需更多信息,请参阅 AWS 文档中的 IAM 实体的权限界限。
- 3
- 为您的帐户范围角色指定自定义 ARN 路径。该路径必须仅包含字母数字字符并以
/
结尾,例如/test/path/dev/
。如需更多信息,请参阅 IAM 角色和策略的 ARN 路径自定义。 - 4
- 选择角色创建模式。您可以使用
auto
模式自动创建集群范围的角色和策略。在手动模式中
,rosa
CLI 生成创建角色和策略所需的aws
命令。在手动模式中
,对应的策略 JSON 文件也会保存到当前目录中。通过手动模式
,您可以在手动运行aws
命令前查看详情。 - 5 6 7 8
- 创建集群范围的安装程序、control plane、worker 和支持角色以及对应的 IAM 策略。如需更多信息,请参阅 帐户范围内的 IAM 角色和策略参考。注意
在这一步中,ROSA CLI 还会自动创建帐户范围 Operator IAM 策略,这些策略由特定于集群 Operator 策略使用,以允许 ROSA 集群 Operator 执行核心 OpenShift 功能。如需更多信息,请参阅 帐户范围内的 IAM 角色和策略参考。
-
检查后,手动运行
aws
命令来创建角色和策略。或者,您可以使用--mode auto
来立即运行aws
命令。
可选:如果您使用自己的 AWS KMS 密钥加密 control plane、基础架构、worker 节点根卷和持久性卷(PV),请将帐户范围内安装程序角色的 ARN 添加到 KMS 密钥策略中。
重要只有从默认存储类创建的持久性卷(PV)都使用这个特定密钥加密。
使用任何其他存储类创建的 PV 仍然会被加密,但 PV 不会使用此密钥加密,除非存储类被特别配置为使用这个密钥。
将 KMS 密钥的密钥策略保存到本地机器的文件中。以下示例将输出保存到当前工作目录中的
kms-key-policy.json
中:$ aws kms get-key-policy --key-id <key_id_or_arn> --policy-name default --output text > kms-key-policy.json 1
- 1
- 将
<key_id_or_arn
> 替换为 KMS 密钥的 ID 或 ARN。
将您在上一步中创建的 account-wide 安装程序角色的 ARN 添加到 文件的 statement
.Principal.AWS
部分。在以下示例中,添加了默认的ManagedOpenShift-Installer-Role
角色的 ARN:{ "Version": "2012-10-17", "Id": "key-rosa-policy-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow ROSA use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-Support-Role", 1 "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-Installer-Role", "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-Worker-Role", "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-ControlPlane-Role", "arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent" 2 ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-Support-Role", 3 "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-Installer-Role", "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-Worker-Role", "arn:aws:iam::<aws-account-id>:role/ManagedOpenShift-ControlPlane-Role", "arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent" 4 ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }
将更改应用到您的 KMS 密钥策略:
$ aws kms put-key-policy --key-id <key_id_or_arn> \ 1 --policy file://kms-key-policy.json \ 2 --policy-name default
在下一步中创建集群时,可以引用 KMS 密钥的 ARN。
使用自定义安装选项创建带有 STS 的集群。您可以使用
--interactive
模式以互动方式指定自定义设置:$ rosa create cluster --interactive --sts
输出示例
I: Interactive mode enabled. Any optional fields can be left empty and a default will be selected. ? Cluster name: <cluster_name> ? OpenShift version: 4.8.9 1 I: Using arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Installer-Role for the Installer role 2 I: Using arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-ControlPlane-Role for the ControlPlane role I: Using arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Worker-Role for the Worker role I: Using arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Support-Role for the Support role ? External ID (optional): ? Operator roles prefix: <cluster_name>-<random_string> 3 ? Multiple availability zones (optional): No 4 ? AWS region: us-east-1 ? PrivateLink cluster (optional): No ? Install into an existing VPC (optional): No ? Select availability zones (optional): No ? Enable Customer Managed key (optional): No 5 ? Compute nodes instance type (optional): ? Enable autoscaling (optional): No ? Compute nodes: 2 ? Machine CIDR: 10.0.0.0/16 ? Service CIDR: 172.30.0.0/16 ? Pod CIDR: 10.128.0.0/14 ? Host prefix: 23 ? Encrypt etcd data (optional): No 6 ? Disable Workload monitoring (optional): No I: Creating cluster '<cluster_name>' I: To create this cluster again in the future, you can run: rosa create cluster --cluster-name <cluster_name> --role-arn arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Installer-Role --support-role-arn arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Support-Role --master-iam-role arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-ControlPlane-Role --worker-iam-role arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Worker-Role --operator-roles-prefix <cluster_name>-<random_string> --region us-east-1 --version 4.8.9 --compute-nodes 2 --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 --pod-cidr 10.128.0.0/14 --host-prefix 23 7 I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster '<cluster_name>' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. ...
- 1
- 在创建集群时,列出的
OpenShift 版本
选项包括主要、次版本和补丁版本,如4.8.9
。 - 2
- 如果您在集群版本的 AWS 帐户中有多组帐户角色,则会提供交互式选项列表。
- 3
- 可选:默认情况下,特定于集群的 Operator 角色名称使用集群名称和随机 4 位哈希值作为前缀。您可以选择在角色名称中指定自定义前缀来替换 <
cluster_name>-<hash
>。创建特定于集群的 Operator IAM 角色时会应用前缀。有关前缀的详情,请参阅 定义 Operator IAM 角色前缀。注意如果您在创建关联的帐户范围角色时指定了自定义 ARN 路径,则会自动检测到自定义路径。当您在后续步骤中创建自定义路径时,自定义路径会应用到特定于集群的 Operator 角色。
- 4
- 建议为生产环境工作负载使用多个可用区。默认值为单个可用区。
- 5
- 如果您使用自己的 AWS KMS 密钥加密 control plane、基础架构、worker 节点根卷和 PV,请启用这个选项。在前面的步骤中,为添加到帐户范围角色 ARN 的 KMS 密钥指定 ARN。重要
只有从默认存储类创建的持久性卷(PV)都使用这个特定密钥加密。
使用任何其他存储类创建的 PV 仍然会被加密,但 PV 不会使用此密钥加密,除非存储类被特别配置为使用这个密钥。
- 6
- 仅在您的用例需要 etcd 键值加密时启用这个选项,除了默认加密 etcd 卷的 control plane 存储加密之外。使用此选项时,etcd 键的值被加密,而不是键本身。重要
通过在 etcd 中为密钥值启用 etcd 加密,则会出现大约 20% 的性能开销。除了加密 etcd 卷的默认 control plane 存储加密外,还会引入第二层加密的开销。红帽建议仅在特别需要时才启用 etcd 加密。
- 7
- 输出中包括了一个可以运行的自定义命令来创建使用相同配置的集群。
作为使用
--interactive
模式的替代选择,您可以在运行rosa 创建集群时
直接指定自定义选项。运行rosa create cluster --help
查看可用 CLI 选项列表。重要您必须完成以下步骤来创建 Operator IAM 角色和 OpenID Connect (OIDC)供应商,将集群的状态移到
ready
。创建特定于集群的 Operator IAM 角色:
在当前工作目录中生成 Operator IAM 策略 JSON 文件,并输出
aws
CLI 命令以查看:$ rosa create operator-roles --mode manual --cluster <cluster_name|cluster_id> 1
- 1
手动模式
生成aws
CLI 命令和创建 Operator 角色所需的 JSON 文件。检查后,您必须手动运行命令来创建资源。
检查后,运行
aws
命令,以创建 Operator IAM 角色并将受管 Operator 策略附加到它们。另外,您可以使用--mode auto
来再次运行前面的命令来立即运行aws
命令。注意如果您在上一步中指定了前缀,则会将自定义前缀应用于 Operator 角色名称。
如果您在创建关联的帐户范围角色时指定了自定义 ARN 路径,则会自动检测并应用自定义路径,并应用到 Operator 角色。
重要除了成功创建集群的账户角色外,还需要 EBS operator 角色。.Example EBS Operator role
"arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent"
创建 Operator 角色后,您必须编辑 AWS 控制台的Key Management Service (KMS) 页面中的 Key Policy 来添加角色。
创建集群 Operator 用于进行身份验证的 OpenID Connect (OIDC)供应商:
$ rosa create oidc-provider --mode auto --cluster <cluster_name|cluster_id> 1
- 1
auto
模式会立即运行aws
CLI 命令,用于创建 OIDC 供应商。
检查集群的状态:
$ rosa describe cluster --cluster <cluster_name|cluster_id>
输出示例
Name: <cluster_name> ID: <cluster_id> External ID: <external_id> OpenShift Version: <version> Channel Group: stable DNS: <cluster_name>.xxxx.p1.openshiftapps.com AWS Account: <aws_account_id> API URL: https://api.<cluster_name>.xxxx.p1.openshiftapps.com:6443 Console URL: https://console-openshift-console.apps.<cluster_name>.xxxx.p1.openshiftapps.com Region: <aws_region> Multi-AZ: false Nodes: - Master: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Master: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-ingress-operator-cloud-credentials - arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent - arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-cloud-credential-operator-cloud-crede - arn:aws:iam::<aws_account_id>:role/<cluster_name>-xxxx-openshift-image-registry-installer-cloud-creden State: ready Private: No Created: Oct 1 2021 08:12:25 UTC Details Page: https://console.redhat.com/openshift/details/s/<subscription_id> OIDC Endpoint URL: https://rh-oidc.s3.<aws_region>.amazonaws.com/<cluster_id>
集群安装进行时,会输出以下
State
字段更改:-
等待(用于 OIDC 配置)
-
待定(准备帐户)
-
安装(DNS 设置进行中)
-
installing
ready
注意如果安装失败或者
State
字段在大约 40 分钟后没有变为ready
,请检查安装故障排除文档以了解详细信息。如需更多信息,请参阅故障排除安装。如需联系红帽支持以获取帮助的步骤,请参阅 Red Hat OpenShift Service on AWS 支持。
-
通过观察 OpenShift 安装程序日志来跟踪集群创建的进度:
$ rosa logs install --cluster <cluster_name|cluster_id> --watch 1
- 1
- 指定在安装过程中监视新日志消息的
--watch
标志。这个参数是可选的。
2.6. 后续步骤
2.7. 其他资源
- 有关使用 STS 的集群部署 Red Hat OpenShift Service 所需的 AWS Identity Access Management (IAM)资源的更多信息,请参阅关于使用 STS 的集群的 IAM 资源。
- 有关可选设置 Operator 角色名称前缀的详情,请参阅关于自定义 Operator IAM 角色前缀。
- 有关使用互动模式创建 AWS IAM 资源和集群时显示的选项的概述,请参阅 Interactive 集群创建模式参考。
- 有关使用 STS 安装 ROSA 的先决条件的详情,请参考使用 STS 的 ROSA 的 AWS 先决条件。
- 有关在 AWS IAM 中使用 OpenID Connect (OIDC)身份提供程序的更多信息,请参阅 AWS 文档中的 创建 OpenID Connect (OIDC)身份供应商。
- 有关 etcd 加密的更多信息,请参阅 etcd 加密服务定义。
- 有关使用 ROSA 配置代理的详情,请参考 配置集群范围代理。
- 有关 ROSA 集群安装故障排除的更多信息,请参阅 对集群部署进行故障排除。
- 如需联系红帽支持以获取帮助的步骤,请参阅 Red Hat OpenShift Service on AWS 支持。
第 3 章 互动集群创建模式参考
本节概述使用互动模式创建 OCM 角色、用户角色以及 AWS (ROSA)集群上的 Red Hat OpenShift Service (ROSA)集群上显示的选项。
3.1. 互动 OCM 和用户角色创建模式选项
在使用 Red Hat OpenShift Cluster Manager 在 AWS (ROSA)集群中使用 AWS 安全令牌服务(STS)创建 Red Hat OpenShift Service 之前,必须通过创建并链接 OCM 和用户角色来将 AWS 帐户与 Red Hat 组织相关联。在运行 rosa create ocm-role
或 rosa create user-role
时,您可以指定 --interactive
选项来启用交互式模式。
下表描述了互动 OCM 角色创建模式选项:
表 3.1. --interactive
OCM 角色创建模式选项
字段 | 描述 |
---|---|
|
指定要包含在 OCM IAM 角色名称的前缀。默认为 |
|
启用 admin OCM IAM 角色,这等同于指定 |
| 为 OCM 角色指定权限边界 Amazon Resource Name (ARN)。如需更多信息,请参阅 AWS 文档中的 IAM 实体的权限界限。 |
|
为您的 OCM 角色指定自定义 ARN 路径。该路径必须仅包含字母数字字符并以 |
|
选择角色创建模式。您可以使用 |
| 确认您要创建 OCM 角色。 |
| 确认您是否想将 OCM 角色链接到您的红帽机构。 |
下表描述了互动用户角色创建模式选项:
表 3.2. --interactive
用户角色创建模式选项
字段 | 描述 |
---|---|
|
指定要包含在用户角色名称的前缀。默认为 |
| 为用户角色指定权限边界 Amazon Resource Name (ARN)。如需更多信息,请参阅 AWS 文档中的 IAM 实体的权限界限。 |
|
为您的用户角色指定自定义 ARN 路径。该路径必须仅包含字母数字字符并以 |
|
选择角色创建模式。您可以使用 |
| 确认您是否要创建用户角色。 |
| 确认您是否想将用户角色链接到您的红帽用户帐户。 |
3.2. 互动集群创建模式选项
您可以使用互动模式,在 AWS 集群上使用 AWS 安全令牌服务(STS)创建 Red Hat OpenShift Service。在运行 rosa create cluster
时指定 --interactive
选项来启用模式。
下表描述了互动集群创建模式选项:
表 3.3. --interactive
集群创建模式选项
字段 | 描述 |
---|---|
|
为集群输入一个名称,如 |
|
创建一个 OpenShift 集群,它使用 AWS 安全令牌服务 (STS) 为组件特定的 AWS Identity and Access Management (IAM) 角色分配临时的、有有限权限的凭证。该服务可让集群组件使用安全云资源管理实践来发出 AWS API 调用。默认值为 |
|
选择要安装的 OpenShift 版本,如 |
| 如果您在集群版本的 AWS 帐户中有多个帐户角色集合,则会提供一个安装程序角色 ARN 列表。选择您要与集群的安装程序角色的 ARN。集群使用与所选安装程序角色相关的集群范围的角色和策略。 |
| 指定在假定帐户角色时由 OpenShift Cluster Manager 和 OpenShift 安装程序传递的唯一标识符。只有在需要需要外部 ID 的自定义帐户角色时才需要这个选项。 |
|
输入前缀,以分配给特定于集群 Operator IAM 角色。默认值是集群名称和 4 位随机字符串,如 |
|
将集群部署到 AWS 区域中的多个可用区。默认值为 |
|
指定要将集群部署到的 AWS 区域。这会覆盖 |
|
使用 AWS PrivateLink 创建集群。这个选项提供虚拟私有云(VPC)、AWS 服务和内部网络之间的私有连接,而无需向公共互联网公开流量。为了提供支持,红帽站点可靠性工程(SRE)可以使用 AWS PrivateLink Virtual Private Cloud (VPC)端点连接到集群。在集群创建后无法更改这个选项。默认值为 |
|
将集群安装到现有 AWS VPC 中。要使用这个选项,您的 VPC 必须为每个要安装集群的可用区有 2 个子网。默认值为 |
|
指定要安装到现有 AWS VPC 时使用的可用区。使用逗号分隔列表提供可用性区域。如果您指定了 |
|
启用这个选项,使用特定的 AWS Key Management Service (KMS)密钥作为持久数据的加密密钥。这个密钥作为 control plane、基础架构和 worker 节点的 root 卷的加密密钥。密钥也在默认存储类上配置,以确保使用默认存储类创建的持久性卷将使用特定的 KMS 密钥加密。禁用后,默认使用指定区域的帐户 KMS 密钥来确保始终加密持久数据。默认值为 |
|
选择计算节点实例类型。默认值为 |
|
启用计算节点自动扩展。自动缩放器会调整集群的大小,以满足您的部署需求。默认值为 |
|
指定要置备到每个可用区的计算节点数量。在单一可用区中部署的集群至少需要 2 个节点。部署到多个区中的集群必须至少有 3 个节点。worker 节点的最大数量为 180 个节点。默认值为 |
|
指定机器(集群节点)的 IP 地址范围,它您的 VPC 子网的所有 CIDR 地址范围。子网必须连续。单可用区部署支持最少有 128 个地址的 IP 地址范围(使用子网前缀 |
|
指定服务的 IP 地址范围。范围必须足够大,以适应您的工作负载。该地址块不得与从集群内部访问的任何外部服务重叠。默认为 |
|
指定 pod 的 IP 地址范围。范围必须足够大,以适应您的工作负载。该地址块不得与从集群内部访问的任何外部服务重叠。默认为 |
|
指定分配给调度到各个机器的 pod 的子网前缀长度。主机前缀决定了每台机器的 pod IP 地址池。例如,如果主机前缀设置为 |
|
在 AWS 上的 Red Hat OpenShift Service 中,control plane 存储会默认加密,这包括 etcd 卷的加密。您还可以启用 重要 通过在 etcd 中为密钥值启用 etcd 加密,则会出现大约 20% 的性能开销。除了加密 etcd 卷的默认 control plane 存储加密外,还会引入第二层加密的开销。红帽建议仅在特别需要时才启用 etcd 加密。 |
| 禁用监控用户定义的项目。默认启用了对用户定义的项目的监控。 |
3.3. 其他资源
- 有关将自定义 ARN 路径用于 OCM 角色、用户角色和帐户范围角色的更多信息,请参阅 IAM 角色和策略的 ARN 路径自定义。
- 有关支持的最大值列表,请参阅 ROSA 测试的集群最大值。
- 有关使用 STS (包括 AWS IAM 资源)快速创建 ROSA 集群的详细步骤,请参阅使用默认选项在 STS 中创建带有 STS 的 ROSA 集群。
- 有关使用自定义(包括 AWS IAM 资源)创建带有 STS 的 ROSA 集群的详细步骤,请参阅使用 自定义来使用 STS 创建 ROSA 集群。
- 有关 etcd 加密的更多信息,请参阅 etcd 加密服务定义。
- 有关 VPC 架构示例,请参阅 此 VPC 架构。
第 4 章 在 ROSA 上创建 AWS PrivateLink 集群
本文档论述了如何使用 AWS PrivateLink 创建 ROSA 集群。
4.1. 了解 AWS PrivateLink
可以在 AWS 集群上创建 Red Hat OpenShift Service,无需公共子网、互联网网关或网络地址转换 (NAT) 网关。在此配置中,红帽使用 AWS PrivateLink 管理并监控集群以避免所有公共入口网络流量。如果没有公共子网,就无法将应用程序路由器配置为公共。配置私有应用程序路由器是唯一选项。
如需更多信息,请参阅 AWS 网站中的 AWS PrivateLink。
您只能在安装时创建一个 PrivateLink 集群。您不能在安装后将集群改为 PrivateLink。
4.2. 使用 AWS PrivateLink 集群的要求
对于 AWS PrivateLink 集群,互联网网关、NAT 网关和公共子网不需要,但专用子网必须提供安装所需组件的互联网连接。Single-AZ 集群需要至少一个私有子网,而 Multi-AZ 集群需要至少 3 个私有子网。下表显示了成功安装所需的 AWS 资源:
表 4.1. 所需的 AWS 资源
组件 | AWS 类型 | 描述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VPC |
| 您必须提供一个 VPC 供集群使用。 | ||||||||||||
网络访问控制 |
| 您必须允许访问以下端口:
| ||||||||||||
专用子网 |
| 您的 VPC 在 1 个可用区中必须具有私有子网,用于 Single-AZ 部署,或 3 个可用区用于 Multi-AZ 部署。您必须提供适当的路由和路由表。 |
4.3. 创建 AWS PrivateLink 集群
您可以使用 rosa
CLI 创建 AWS PrivateLink 集群。
仅在现有的 VPC 上支持 AWS PrivateLink。
前提条件
您已在 AWS 上安装了 Red Hat OpenShift Service。
流程
创建集群最多可能需要 40 分钟。
使用 AWS PrivateLink,您可以创建一个单一可用区 (Single-AZ) 或多个可用区 (Multi-AZ) 的集群。在这两种情况下,您的机器的无类别间路由 (CIDR) 必须与虚拟私有云的 CIDR 匹配。如需更多信息 ,请参阅使用您自己的 VPC 和 VPC 验证 的要求。
重要如果使用防火墙,您必须将其配置为 AWS 上的 Red Hat OpenShift Service,以便 AWS 上的 Red Hat OpenShift Service 可以访问它正常工作所需的站点。
如需更多信息,请参阅 AWS PrivateLink 防火墙先决条件部分。
创建单AZ 集群:
$ rosa create cluster --private-link --cluster-name=<cluster-name> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id>
创建 Multi-AZ 集群:
$ rosa create cluster --private-link --multi-az --cluster-name=<cluster-name> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id1>,<private-subnet-id2>,<private-subnet-id3>
输入以下命令检查集群的状态。在集群创建过程中,输出中的
State
字段将从Pending
转换为安装
,最后变为ready
。$ rosa describe cluster --cluster=<cluster_name>
注意如果安装失败或者
State
字段在 40 分钟后没有变为ready
,请检查安装故障排除文档以了解更多详细信息。输入以下命令跟踪 OpenShift 安装程序日志以跟踪集群进度:
$ rosa logs install --cluster=<cluster_name> --watch
4.4. 配置 AWS PrivateLink DNS 转发
使用 AWS PrivateLink 集群时,在 Route 53 中创建公共托管区和一个私有托管区。使用私有托管区,区中的记录只能从 VPC 中将其分配给它。
Let 的加密 DNS-01 验证需要公共区,以便可以为域发布有效的公开可信证书。验证记录会在 Let’s Encrypt 验证完成后删除。但是,在发布和更新这些证书时仍需要该区域,这通常需要 60 天。虽然这些区域通常会出现为空,但在验证过程中提供关键角色。
有关私有托管区的更多信息,请参阅 AWS 私有托管区文档。有关公共托管区的更多信息,请参阅 AWS 公共托管区文档。
前提条件
- 您的公司网络或其他 VPC 有连接性
- 网络中的 UDP 端口 53 和 TCP 端口 53 ARE,以允许 DNS 查询
- 您已使用 Red Hat OpenShift Service 在 AWS 上创建 AWS PrivateLink 集群
流程
-
要允许
api.<cluster_domain&
gt; 和*.apps.<cluster_domain&
gt; 在 VPC 之外解析记录,请配置 Route 53 Resolver Inbound Endpoint。 - 配置入站端点时,选择创建集群时使用的 VPC 和专用子网。
-
在端点运行并关联后,配置公司网络以将 DNS 查询转发到顶级集群域(如
drow-pl-01.htno.p1.openshiftapps.com
)的 IP 地址。 - 如果您要将 DNS 查询从一个 VPC 转发到另一个 VPC,请配置转发规则。
- 如果要配置远程网络 DNS 服务器,请参阅您的特定 DNS 服务器文档为已安装集群域配置选择性 DNS 转发。
4.5. 后续步骤
4.6. 其他资源
第 5 章 访问 ROSA 集群
建议您使用身份提供程序(IDP)帐户访问 AWS (ROSA)集群中的 Red Hat OpenShift Service。但是,创建集群的集群管理员可以使用快速访问过程进行访问。
本文档论述了如何使用 rosa
CLI 访问集群并设置 IDP。另外,您可以使用 OpenShift Cluster Manager 控制台创建 IDP 帐户。
5.1. 快速访问集群
您可以使用此快速访问过程来登录到集群。
作为最佳实践,使用 IDP 帐户改用 IDP 帐户访问集群。
流程
输入以下命令:
$ rosa create admin --cluster=<cluster_name>
输出示例
W: It is recommended to add an identity provider to login to this cluster. See 'rosa create idp --help' for more information. I: Admin account has been added to cluster 'cluster_name'. It may take up to a minute for the account to become active. I: To login, run the following command: oc login https://api.cluster-name.t6k4.i1.oragnization.org:6443 \ --username cluster-admin \ --password FWGYL-2mkJI-3ZTTZ-rINns
在上一命令的输出中输入
oc login
命令、用户名和密码:输出示例
$ oc login https://api.cluster_name.t6k4.i1.oragnization.org:6443 \ > --username cluster-admin \ > --password FWGYL-2mkJI-3ZTTZ-rINns Login successful. You have access to 77 projects, the list has been suppressed. You can list all projects with ' projects'
使用 default 项目,输入此
oc
命令验证是否创建了集群管理员访问权限:$ oc whoami
输出示例
cluster-admin
5.2. 使用 IDP 帐户访问集群
要登录到集群,您可以配置身份提供程序(IDP)。此流程使用 GitHub 作为示例 IDP。要查看其他支持的 IDP,请运行 rosa create idp --help
命令。
或者,作为创建集群的用户,您可以使用快速访问过程。
流程
使用 IDP 帐户访问集群:
添加 IDP.
以下命令创建了 GitHub 支持的 IDP。运行此命令后,请按照输出中的交互式提示访问 GitHub 开发人员设置 并配置新的 OAuth 应用。
$ rosa create idp --cluster=<cluster_name> --interactive
输入以下值:
-
身份提供程序的类型:
github
-
Restrict to members of:
organizations
(如果您没有 GitHub 机构,您可以立即创建一个) -
GitHub organizations:
rh-test-org
(您的组织的名称)
输出示例
I: Interactive mode enabled. Any optional fields can be left empty and a default will be selected. ? Type of identity provider: github ? Restrict to members of: organizations ? GitHub organizations: rh-test-org ? To use GitHub as an identity provider, you must first register the application: - Open the following URL: https://github.com/organizations/rh-rosa-test-cluster/settings/applications/new?oauth_application%5Bcallback_url%5D=https%3A%2F%2Foauth-openshift.apps.rh-rosa-test-cluster.z7v0.s1.devshift.org%2Foauth2callback%2Fgithub-1&oauth_application%5Bname%5D=rh-rosa-test-cluster-stage&oauth_application%5Burl%5D=https%3A%2F%2Fconsole-openshift-console.apps.rh-rosa-test-cluster.z7v0.s1.devshift.org - Click on 'Register application' ...
-
身份提供程序的类型:
按照输出中的 URL 并选择 Register application,在 GitHub 组织中注册新的 OAuth 应用程序。通过注册应用程序,您可以启用 ROSA 中构建的 OAuth 服务器,以便验证您的 GitHub 组织的成员到集群中。
注意Register a new OAuth application GitHub 表单中的字段通过
rosa
CLI 工具定义的 URL 自动填充所需的值。使用您创建的 GitHub 应用程序的信息并继续提示。输入以下值:
-
客户端 ID:&
lt;my_github_client_id>
-
Client Secret: [ for help] <
my_github_client_secret>
- hostname:(可选,您可以暂时留空)
-
映射方法:
claim
持续的输出示例
... ? Client ID: <my_github_client_id> ? Client Secret: [? for help] <my_github_client_secret> ? Hostname: ? Mapping method: claim I: Configuring IDP for cluster 'rh_rosa_test_cluster' I: Identity Provider 'github-1' has been created. You need to ensure that there is a list of cluster administrators defined. See 'rosa create user --help' for more information. To login into the console, open https://console-openshift-console.apps.rh-test-org.z7v0.s1.devshift.org and click on github-1
IDP 可能需要在集群中配置 1-2 分钟时间。
-
客户端 ID:&
输入以下命令验证您的 IDP 是否已正确配置:
$ rosa list idps --cluster=<cluster_name>
输出示例
NAME TYPE AUTH URL github-1 GitHub https://oauth-openshift.apps.rh-rosa-test-cluster1.j9n4.s1.devshift.org/oauth2callback/github-1
登录到您的集群。
输入以下命令获取集群
的控制台 URL
:$ rosa describe cluster --cluster=<cluster_name>
输出示例
Name: rh-rosa-test-cluster1 ID: 1de87g7c30g75qechgh7l5b2bha6r04e External ID: 34322be7-b2a7-45c2-af39-2c684ce624e1 API URL: https://api.rh-rosa-test-cluster1.j9n4.s1.devshift.org:6443 Console URL: https://console-openshift-console.apps.rh-rosa-test-cluster1.j9n4.s1.devshift.org Nodes: Master: 3, Infra: 3, Compute: 4 Region: us-east-2 State: ready Created: May 27, 2020
-
导航到
Console URL
,并使用 Github 凭证登录。 - 在 OpenShift 控制台右上角,点您的名字并点击 Copy Login Command。
- 选择您添加的 IDP 的名称(在这里是 github-1),然后点 Display Token。
将
oc
login 命令复制并粘贴到您的终端中。$ oc login --token=z3sgOGVDk0k4vbqo_wFqBQQTnT-nA-nQLb8XEmWnw4X --server=https://api.rh-rosa-test-cluster1.j9n4.s1.devshift.org:6443
输出示例
Logged into "https://api.rh-rosa-cluster1.j9n4.s1.devshift.org:6443" as "rh-rosa-test-user" using the token provided. You have access to 67 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default".
输入简单的
oc
命令,以验证一切设置是否正确,且您已登录。$ oc version
输出示例
Client Version: 4.4.0-202005231254-4a4cd75 Server Version: 4.3.18 Kubernetes Version: v1.16.2
5.3. 授予 cluster-admin
访问权限
作为创建集群的用户,将 cluster-admin
用户角色分配给您的帐户,使其具有最大管理员权限。创建集群时,这些权限不会自动分配给您的用户帐户。
另外,只有创建集群的用户才可以向其他 cluster-admin
或 dedicated-admin
用户授予集群访问权限。具有 dedicated-admin
访问权限的用户拥有较少的权限。作为最佳实践,将 cluster-admin
用户的数量限制为尽量多。
前提条件
- 您已在集群中添加了身份供应商(IDP)。
- 您有要创建的用户的 IDP 用户名。
- 已登陆到集群。
流程
授予用户
cluster-admin
权限:$ rosa grant user cluster-admin --user=<idp_user_name> --cluster=<cluster_name>
验证您的用户被列为集群管理员:
$ rosa list users --cluster=<cluster_name>
输出示例
GROUP NAME cluster-admins rh-rosa-test-user dedicated-admins rh-rosa-test-user
输入以下命令验证用户现在是否具有
cluster-admin
访问权限。集群管理员可在没有错误的情况下运行此命令,但专用管理员无法。$ oc get all -n openshift-apiserver
输出示例
NAME READY STATUS RESTARTS AGE pod/apiserver-6ndg2 1/1 Running 0 17h pod/apiserver-lrmxs 1/1 Running 0 17h pod/apiserver-tsqhz 1/1 Running 0 17h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/api ClusterIP 172.30.23.241 <none> 443/TCP 18h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/apiserver 3 3 3 3 3 node-role.kubernetes.io/master= 18h
5.4. 授予 dedicated-admin
访问权限
只有创建集群的用户才能授予集群对其他 cluster-admin
或 dedicated-admin
用户的访问权限。具有 dedicated-admin
访问权限的用户拥有较少的权限。作为最佳实践,可将 dedicated-admin
访问权限授予您的大部分管理员。
前提条件
- 您已在集群中添加了身份供应商(IDP)。
- 您有要创建的用户的 IDP 用户名。
- 已登陆到集群。
流程
输入以下命令将用户提升为
dedicated-admin
:$ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
输入以下命令验证您的用户现在是否具有
dedicated-admin
访问权限:$ oc get groups dedicated-admins
输出示例
NAME USERS dedicated-admins rh-rosa-test-user
注意如果没有
dedicated-admin
特权的用户运行此命令,则会显示Forbidden
错误。
5.5. 其他资源
第 6 章 为 STS 配置身份提供程序
在创建了 Red Hat OpenShift Service on AWS (ROSA)集群后,您必须配置身份提供程序来确定用户如何登录集群。
以下主题描述了如何使用 OpenShift Cluster Manager 控制台配置身份提供程序。另外,您可以使用 rosa
CLI 配置身份提供程序并访问集群。
6.1. 了解身份提供程序
AWS 上的 Red Hat OpenShift Service 包含内置的 OAuth 服务器。开发人员和管理员获取 OAuth 访问令牌,以完成自身的 API 身份验证。作为管理员,您可以在安装集群后通过配置 OAuth 来指定身份提供程序。配置身份提供程序可让用户登录和访问集群。
6.1.1. 支持的身份提供程序
您可以配置以下类型的身份提供程序:
用户身份提供程序 | 描述 |
---|---|
Github 或 GitHub Enterprise | 配置 GitHub 身份提供程序,针对 GitHub 或 GitHub Enterprise 的 OAuth 身份验证服务器验证用户名和密码。 |
GitLab | 配置 GitLab 身份提供程序,以使用 GitLab.com 或任何其他 GitLab 实例作为身份提供程序。 |
| 配置 Google 身份提供程序,使用 Google 的 OpenID Connect 集成。 |
LDAP | 配置 LDAP 身份提供程序,以使用简单的绑定身份验证针对 LDAPv3 服务器验证用户名和密码。 |
OpenID Connect | 配置 OpenID Connect (OIDC)身份提供程序,以使用授权代码流与 OIDC 身份提供程序 集成。 |
htpasswd | 为单个静态管理用户配置 htpasswd 身份提供程序。您可以以用户身份登录到集群来排除问题。 重要 htpasswd 身份提供程序选项仅包含创建单个静态管理用户。htpasswd 不支持作为 AWS 上的 Red Hat OpenShift Service 的通用身份提供程序。有关配置单个用户的步骤,请参阅配置 htpasswd 身份提供程序。 |
6.1.2. 身份提供程序参数
以下是所有身份提供程序通用的参数:
参数 | 描述 |
---|---|
| 此提供程序名称作为前缀放在提供程序用户名前,以此组成身份名称。 |
| 定义在用户登录时如何将新身份映射到用户。输入以下值之一:
|
在添加或更改身份提供程序时,您可以通过把 mappingMethod
参数设置为 add
,将新提供程序中的身份映射到现有的用户。
6.2. 配置 GitHub 身份提供程序
配置 GitHub 身份提供程序,针对 GitHub 或 GitHub Enterprise 的 OAuth 身份验证服务器验证用户名和密码,并访问 Red Hat OpenShift Service on AWS 集群。OAuth 可促进 AWS 和 GitHub 或 GitHub Enterprise 上的 Red Hat OpenShift Service 之间的令牌交换流。
配置 GitHub 身份验证后,用户可以使用其 GitHub 凭据登录 AWS 上的 Red Hat OpenShift Service。要防止具有任何 GitHub 用户 ID 的任何人登录 AWS 集群上的 Red Hat OpenShift Service,您必须只允许特定 GitHub 机构或团队中的访问。
前提条件
- OAuth 应用程序必须由 GitHub 组织管理员 直接在 GitHub 机构设置中创建。
- GitHub 机构或团队 在您的 GitHub 帐户中设置。
流程
- 在 OpenShift Cluster Manager Hybrid Cloud Console 中,导航到 Clusters 页面并选择您需要为其配置身份提供程序的集群。
- 点 Access control 选项卡。
点 Add identity provider。
注意您还可以在集群创建后点击警告信息中的 Add Oauth 配置 链接来配置身份提供程序。
- 从下拉菜单中选择 GitHub。
输入身份提供程序的唯一名称。稍后无法更改此名称。
提供的字段中自动生成 OAuth 回调 URL。您将使用它注册 GitHub 应用程序。
https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>
例如:
https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/github
- 在 GitHub 上注册应用程序。
- 返回到 AWS 上的 Red Hat OpenShift Service,从下拉菜单中选择一个映射方法。在大多数情况下,建议使用 声明。
- 输入 GitHub 提供的客户端 ID 和客户端 secret。
- 输入一个主机名。使用托管 GitHub Enterprise 实例时,必须输入主机名。
- 可选: 您可以使用证书颁发机构(CA)文件验证配置的 GitHub Enterprise URL 的服务器证书。点 Browse 找到并将 CA 文件附加到 身份提供程序。
- 选择 Use organizations 或 Use teams 以限制对特定 GitHub 组织或 GitHub 团队的访问。
- 输入您要限制访问权限的机构或团队的名称。点 Add more 指定用户可以成为用户所属的多个机构或团队。
- 单击 Confirm。
验证
- 现在,在 Clusters 页面的 Access control 标签页中可以看到配置的身份提供程序。
6.3. 配置 GitLab 身份提供程序
配置 GitLab 身份提供程序,以使用 GitLab.com 或任何其他 GitLab 实例作为身份提供程序。
前提条件
- 如果使用 GitLab 版本 7.7.0 到 11.0,您可以使用 OAuth 集成进行连接。如果使用 GitLab 版本 11.1 或更高版本,您可以使用 OpenID Connect (OIDC) 进行连接,而不使用 OAuth。
流程
- 在 OpenShift Cluster Manager Hybrid Cloud Console 中,导航到 Clusters 页面并选择您需要为其配置身份提供程序的集群。
- 点 Access control 选项卡。
点 Add identity provider。
注意您还可以在集群创建后点击警告信息中的 Add Oauth 配置 链接来配置身份提供程序。
- 从下拉菜单中选择 GitLab。
输入身份提供程序的唯一名称。稍后无法更改此名称。
提供的字段中自动生成 OAuth 回调 URL。您将把这个 URL 提供给 GitLab。
https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>
例如:
https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/gitlab
- 在 GitLab 中添加新应用程序。
- 返回到 AWS 上的 Red Hat OpenShift Service,从下拉菜单中选择一个映射方法。在大多数情况下,建议使用 声明。
- 输入 GitLab 提供的客户端 ID 和客户端 secret。
- 输入 GitLab 提供程序的 URL。
- 可选: 您可以使用证书颁发机构(CA)文件验证配置的 GitLab URL 的服务器证书。点 Browse 找到并将 CA 文件附加到 身份提供程序。
- 单击 Confirm。
验证
- 现在,在 Clusters 页面的 Access control 标签页中可以看到配置的身份提供程序。
6.4. 配置 Google 身份提供程序
配置 Google 身份提供程序,以便用户通过 Google 凭证进行身份验证。
使用 Google 作为身份提供程序时,任何 Google 用户都能与您的服务器进行身份验证。您可以使用 hostedDomain
配置属性,将身份验证限制为特定托管域的成员。
流程
- 在 OpenShift Cluster Manager Hybrid Cloud Console 中,导航到 Clusters 页面并选择您需要为其配置身份提供程序的集群。
- 点 Access control 选项卡。
点 Add identity provider。
注意您还可以在集群创建后点击警告信息中的 Add Oauth 配置 链接来配置身份提供程序。
- 从下拉菜单中选择 Google。
输入身份提供程序的唯一名称。稍后无法更改此名称。
提供的字段中自动生成 OAuth 回调 URL。您将为 Google 提供此 URL。
https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>
例如:
https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/google
- 配置 Google 身份提供程序,使用 Google 的 OpenID Connect 集成。
- 返回到 AWS 上的 Red Hat OpenShift Service,从下拉菜单中选择一个映射方法。在大多数情况下,建议使用 声明。
- 输入注册的 Google 项目的 客户端 ID,以及 Google 发布的 客户端 secret。
- 输入托管域,将用户限制为 Google Apps 域。
- 单击 Confirm。
验证
- 现在,在 Clusters 页面的 Access control 标签页中可以看到配置的身份提供程序。
6.5. 配置 LDAP 身份提供程序
配置 LDAP 身份提供程序,以使用简单的绑定身份验证针对 LDAPv3 服务器验证用户名和密码。
前提条件
在配置 LDAP 身份提供程序时,您需要输入配置的 LDAP URL。配置的 URL 是 RFC 2255 URL,指定要使用的 LDAP 主机和搜索参数。URL 的语法是:
ldap://host:port/basedn?attribute?scope?filter
URL 组件 描述 ldap
对于常规 LDAP,使用
ldap
字符串。对于安全 LDAP (LDAPS),改为使用ldaps
。host:port
LDAP 服务器的名称和端口。LDAP 默认为
localhost:389
,LDAPS 则默认为localhost:636
。basedn
所有搜索都应从中开始的目录分支的 DN。至少,这必须是目录树的顶端,但也可指定目录中的子树。
attribute
要搜索的属性。虽然 RFC 2255 允许使用逗号分隔属性列表,但无论提供多少个属性,都仅使用第一个属性。如果没有提供任何属性,则默认使用
uid
。建议选择一个在您使用的子树中的所有条目间是唯一的属性。scope
搜索的范围。可以是
one
或sub
。如果未提供范围,则默认使用sub
范围。filter
有效的 LDAP 搜索过滤器。如果未提供,则默认为
(objectClass=*)
在进行搜索时,属性、过滤器和提供的用户名会组合在一起,创建类似如下的搜索过滤器:
(&(<filter>)(<attribute>=<username>))
重要如果 LDAP 目录需要身份验证才能搜索,请指定用于执行条目搜索的
bindDN
和bindPassword
。
流程
- 在 OpenShift Cluster Manager Hybrid Cloud Console 中,导航到 Clusters 页面并选择您需要为其配置身份提供程序的集群。
- 点 Access control 选项卡。
点 Add identity provider。
注意您还可以在集群创建后点击警告信息中的 Add Oauth 配置 链接来配置身份提供程序。
- 从下拉菜单中选择 LDAP。
- 输入身份提供程序的唯一名称。稍后无法更改此名称。
- 从下拉菜单中选择一个映射方法。在大多数情况下,建议使用 声明。
- 输入 LDAP URL 以指定要使用的 LDAP 搜索参数。
- 可选:输入 Bind DN 和 Bind password。
输入将 LDAP 属性映射到身份的属性。
- 输入 ID 属性,其值应用作用户 ID。点击 Add more 来添加多个 ID 属性。
- 可选: 输入首选用户名 属性,其值应用作显示名称。点 Add more 添加多个首选用户名属性。
- 可选:输入 Email 属性,其值应用作电子邮件地址。点击 Add more 来添加多个电子邮件属性。
- 可选:点击 Show advanced Options 将证书颁发机构(CA)文件添加到 LDAP 身份提供程序中,以验证所配置 URL 的服务器证书。点 Browse 找到并将 CA 文件附加到 身份提供程序。
可选:在高级选项下,您可以选择使 LDAP 供应商不安全。如果选择了这个选项,则无法使用 CA 文件。
重要如果您使用不安全的 LDAP 连接(ldap:// 或端口 389),则必须在配置向导中检查 Insecure 选项。
- 单击 Confirm。
验证
- 现在,在 Clusters 页面的 Access control 标签页中可以看到配置的身份提供程序。
6.6. 配置 OpenID 身份提供程序
配置 OpenID 身份提供程序,以使用授权代码流与 OpenID Connect 身份提供程序 集成。
Red Hat OpenShift Service on AWS 中的 Authentication Operator 要求配置的 OpenID Connect 身份提供程序实现 OpenID Connect Discovery 规格。
声明从 OpenID 身份提供程序返回的 JWT id_token
读取,如果指定,则从 Issuer URL 返回的 JSON 中获取。
必须至少配置一个声明,以用作用户的身份。
您还可以指定将哪些声明用作用户的首选用户名、显示名称和电子邮件地址。如果指定了多个声明,则使用第一个带有非空值的声明。标准的声明是:
声明 | 描述 |
---|---|
|
置备用户时的首选用户名。用户希望使用的简写名称,如 |
| 电子邮件地址。 |
| 显示名称。 |
如需更多信息,请参阅 OpenID 声明文档。
前提条件
- 在配置 OpenID Connect 前,请检查您要与 Red Hat OpenShift Service on AWS 集群上的 Red Hat OpenShift Service 搭配使用的任何 Red Hat 产品或服务的安装先决条件。
流程
- 在 OpenShift Cluster Manager Hybrid Cloud Console 中,导航到 Clusters 页面并选择您需要为其配置身份提供程序的集群。
- 点 Access control 选项卡。
点 Add identity provider。
注意您还可以在集群创建后点击警告信息中的 Add Oauth 配置 链接来配置身份提供程序。
- 从下拉菜单中选择 OpenID。
输入身份提供程序的唯一名称。稍后无法更改此名称。
提供的字段中自动生成 OAuth 回调 URL。
https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>
例如:
https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/openid
- 使用授权代码流创建授权请求。
- 返回到 AWS 上的 Red Hat OpenShift Service,从下拉菜单中选择一个映射方法。在大多数情况下,建议使用 声明。
- 输入 OpenID 提供的客户端 ID 和客户端 secret。
- 输入 发行者 URL。这是 OpenID 供应商断言为 Issuer Identifier 的 URL。它必须使用没有 URL 查询参数或片段的 https 方案。
- 输入 Email 属性,其值应用作电子邮件地址。点 Add more 来添加多个电子邮件属性。
- 输入 Name 属性,其值应用作首选用户名。点 Add more 添加多个首选用户名。
- 输入 首选用户名 属性,其值应用作显示名称。点 Add more 添加多个显示名称。
- 可选:点 Show advanced Options 将证书颁发机构 (CA) 文件添加到 OpenID 身份提供程序中。
-
可选:在高级选项下,您可以添加 附加范围。默认情况下,请求
OpenID
范围。 - 单击 Confirm。
验证
- 现在,在 Clusters 页面的 Access control 标签页中可以看到配置的身份提供程序。
6.7. 配置 htpasswd 身份提供程序
配置 htpasswd 身份提供程序,以创建具有集群管理特权的单个静态用户。您可以以用户身份登录集群来排除问题。
htpasswd 身份提供程序选项仅包含创建单个静态管理用户。htpasswd 不支持作为 AWS 上的 Red Hat OpenShift Service 的通用身份提供程序。
流程
- 在 OpenShift Cluster Manager Hybrid Cloud Console 中,导航到 Clusters 页面并选择您的集群。
- 选择 Access control → Identity provider。
- 点 Add identity provider。
- 从 Identity Provider 下拉菜单中选择 HTPasswd。
- 在身份提供程序的 Name 字段中添加唯一名称。
将建议的用户名和密码用于静态用户,或创建自己的。
注意在以下步骤中选择 Add 后,此步骤中定义的凭证不可见。如果丢失了凭证,您必须重新创建身份提供程序并再次定义凭证。
- 选择 Add 来创建 htpasswd 身份提供程序和单个静态用户。
授予静态用户权限来管理集群:
- 在 Access control → Cluster Roles and Access 下,选择 Add user。
- 输入 您在上一步中创建的静态用户的用户 ID。
-
选择 组。
dedicated-admins
组中的用户对 AWS 上的 Red Hat OpenShift Service 具有标准管理特权。cluster-admins
组中的用户对集群具有完全的管理访问权限。 - 选择 Add user 为用户授予管理权限。
验证
配置的 htpasswd 身份提供程序在 Access control → Identity provider 页面中可见。
注意创建身份提供程序后,同步通常在两分钟内完成。在 htpasswd 身份提供程序可用后,您可以以用户身份登录集群。
- 单一的管理用户可在 Access control → Cluster Roles 和 Access 页面中可见。也会显示用户的管理组成员资格。
6.8. 其他资源
第 7 章 撤销对 ROSA 集群的访问
身份供应商(IDP)控制对 AWS (ROSA)集群中的 Red Hat OpenShift Service 的访问。要撤销对集群的用户访问,您必须配置 IDP 中用于身份验证的 IDP。
7.1. 使用 rosa
CLI 撤销管理员访问权限
您可以撤销用户的管理员访问权限,以便在没有管理员特权的情况下访问集群。要删除用户的管理员访问权限,您必须撤销 dedicated-admin
或 cluster-admin
权限。您可以使用 rosa
命令行实用程序或使用 OpenShift Cluster Manager 控制台撤销管理员权限。
7.1.1. 使用 rosa
CLI 撤销 专用管理员访问权限
如果您是创建集群、机构管理员用户或超级用户的用户,您可以撤销 dedicated-admin
用户的访问权限。
前提条件
- 您已在集群中添加了身份提供程序(IDP)。
- 您有 IDP 用户名,用于撤销其权限的用户。
- 已登陆到集群。
流程
输入以下命令撤销用户的
dedicated-admin
访问权限:$ rosa revoke user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
输入以下命令验证您的用户是否不再有
dedicated-admin
访问权限。输出不会列出已撤销的用户。$ oc get groups dedicated-admins
7.1.2. 使用 rosa
CLI 撤销 cluster-admin
访问
只有创建集群的用户才能撤销 cluster-admin
用户的访问权限。
前提条件
- 您已在集群中添加了身份提供程序(IDP)。
- 您有 IDP 用户名,用于撤销其权限的用户。
- 已登陆到集群。
流程
输入以下命令撤销用户的
cluster-admin
访问:$ rosa revoke user cluster-admins --user=myusername --cluster=mycluster
输入以下命令验证用户是否不再具有
cluster-admin
访问权限。输出不会列出已撤销的用户。$ oc get groups cluster-admins
7.2. 使用 OpenShift Cluster Manager 控制台撤销管理员访问权限
您可以通过 OpenShift Cluster Manager 控制台撤销 dedicated-admin
或 cluster-admin
访问。用户可以在没有管理员特权的情况下访问集群。
前提条件
- 您已在集群中添加了身份提供程序(IDP)。
- 您有 IDP 用户名,用于撤销其权限的用户。
- 使用您用来创建集群、机构管理员或超级用户的 OpenShift Cluster Manager 帐户登录到 OpenShift Cluster Manager 控制台。
流程
- 在 OpenShift Cluster Manager 的 Clusters 选项卡中,选择集群名称来查看集群详情。
- 选择 Access control > Cluster Roles and Access。
-
对于您要删除的用户,请点击用户和组群组合右侧的 Options 菜单
并点 Delete。
第 8 章 删除 ROSA 集群
本文档提供了删除使用 AWS 安全令牌服务 (STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群的步骤。删除集群后,您还可以删除集群使用的 AWS Identity and Access Management (IAM)资源。
8.1. 前提条件
如果 Red Hat OpenShift Service on AWS 创建了一个 VPC,则必须从集群中删除以下项目,然后才能成功删除集群:
- 网络配置,如 VPN 配置和 VPC 对等连接
- 任何添加到 VPC 中的额外服务
如果这些配置和服务保留,集群不会正确删除。
8.2. 删除 ROSA 集群和特定于集群的 IAM 资源
您可以使用 ROSA CLI (rosa
) 或 Red Hat OpenShift Cluster Manager 删除使用 AWS 安全令牌服务(STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群。
删除集群后,您可以使用 ROSA CLI (rosa
) 清理 AWS 帐户中特定于集群的 Identity and Access Management (IAM) 资源。特定于集群的资源包括 Operator 角色和 OpenID Connect (OIDC)供应商。
集群删除必须在删除 IAM 资源前完成,因为集群删除和清理过程会用到这些资源。
如果安装了附加组件,集群删除需要更长的时间,因为在删除集群前卸载附加组件。时间的数量取决于附加组件的数量和大小。
前提条件
- 已安装 ROSA 集群。
-
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。
流程
获取集群 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://rh-oidc.s3.us-east-1.amazonaws.com/1s5v4k39lhm8sm59m90mi0822o31844a 3
重要在删除集群后,您需要使用 ROSA CLI (
rosa
)删除特定于集群的 STS 资源。删除集群:
使用 Red Hat OpenShift Cluster Manager 删除集群:
- 导航到 OpenShift Cluster Manager Hybrid Cloud Console。
-
点击集群
旁边的 Options 菜单并选择 Delete cluster。
- 在提示符处键入集群名称并点 Delete。
使用 ROSA CLI (
rosa
)删除集群:输入以下命令删除集群并观察日志,将 <
cluster_name&
gt; 替换为集群的名称或 ID:$ rosa delete cluster --cluster=<cluster_name> --watch
重要在删除 Operator 角色和 OIDC 供应商前,您必须等待集群删除完成。需要特定于集群的 Operator 角色来清理 OpenShift Operator 创建的资源。Operator 使用 OIDC 供应商进行身份验证。
删除集群 Operator 用于身份验证的 OIDC 供应商:
$ rosa delete oidc-provider -c <cluster_id> --mode auto 1
- 1
- 将
<cluster_id
> 替换为集群的 ID。
注意您可以使用
-y
选项,在提示符处自动回答 yes。可选。删除特定于集群的 Operator IAM 角色:
重要帐户范围的 IAM 角色可以被同一 AWS 帐户中的其他 ROSA 集群使用。只有角色在其他集群不需要时才删除。
$ rosa delete operator-roles -c <cluster_id> --mode auto 1
- 1
- 将
<cluster_id
> 替换为集群的 ID。
其他资源
- 有关删除帐户范围内的 IAM 角色和策略的步骤,请参阅删除帐户范围内的 IAM 角色和策略。
- 有关删除 OpenShift Cluster Manager 和用户 IAM 角色的步骤,请参阅 取消链接和删除 OpenShift Cluster Manager 和用户 IAM 角色。
8.3. 删除集群范围的 IAM 资源
在删除了所有依赖于账户范围的 AWS Identity and Access Management (IAM) 资源的、使用 AWS Security Token Services (STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群后,您就可以删除账户范围的资源。
如果您不再需要使用 Red Hat OpenShift Cluster Manager 来安装带有 STS 的 ROSA 集群,您也可以删除 OpenShift Cluster Manager 和用户 IAM 角色。
集群范围的 IAM 角色和策略可能被同一 AWS 帐户中的其他 ROSA 集群使用。只有资源不再被其他集群需要时,才删除这些资源。
如果要使用 OpenShift Cluster Manager 在同一个 AWS 帐户中安装、管理和删除其他 ROSA 集群,则需要 OpenShift Cluster Manager 和用户 IAM 角色。如果不再需要使用 OpenShift Cluster Manager 在帐户中安装 ROSA 集群,则必须删除角色。如果在删除前删除了这些角色,请参阅"添加资源"部分。
8.3.1. 删除集群范围的 IAM 角色和策略
本节提供了删除您为使用 STA 的 ROSA 部署所创建的账户范围的 IAM 角色和策略,以及帐户范围内的 Operator 策略的步骤。只有在删除了所有依赖于账户范围的 AWS Identity and Access Management (IAM) 资源的、使用 AWS Security Token Services (STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群后,才可以删除账户范围的 AWS Identity and Access Management (IAM) 角色和策略。
集群范围的 IAM 角色和策略可能被同一 AWS 帐户中的其他 ROSA 集群使用。只有角色不再被其他集群需要时,才删除这些资源。
前提条件
- 已安装 ROSA 集群。
-
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。
流程
删除集群范围的角色:
使用 ROSA CLI 列出 AWS 帐户中的系统范围角色 (
rosa
):$ 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
删除集群范围的角色:
$ rosa delete account-roles --prefix <prefix> --mode auto 1
- 1
- 您必须包含
--<prefix>
参数。将<
;prefix> 替换为要删除的集群范围角色前缀。如果您在创建集群范围的角色时没有指定自定义前缀,请指定默认前缀ManagedOpenShift
。
重要系统范围的 IAM 角色可能被同一 AWS 帐户中的其他 ROSA 集群使用。只有角色不再被其他集群需要时,才删除这些资源。
删除集群范围的 in-line 和 Operator 策略:
在 AWS IAM Console 的 Policies 页面中,根据您在创建帐户范围角色和策略时指定的前缀过滤策略列表。
注意如果您在创建集群范围的角色时没有指定自定义前缀,请搜索默认前缀
ManagedOpenShift
。使用 AWS IAM 控制台 删除集群范围的 in-line 策略和 Operator 策略。有关使用 AWS IAM 控制台删除 IAM 策略的更多信息,请参阅 AWS 文档中的删除 IAM 策略。
重要集群范围的 in-line 和 Operator IAM 策略可能被同一 AWS 帐户中的其他 ROSA 集群使用。只有角色不再被其他集群需要时,才删除这些资源。
8.3.2. 取消链接和删除 OpenShift Cluster Manager 和用户 IAM 角色
如果您使用 Red Hat OpenShift Cluster Manager 安装了 Red Hat OpenShift Service on AWS (ROSA) 集群,则创建了 OpenShift Cluster Manager 和用户 Identity and Access Management (IAM) 角色,并将其与您的红帽机构相关联。删除集群后,您可以使用 ROSA CLI (rosa
) 取消链接和删除角色。
如果要使用 OpenShift Cluster Manager 在同一个 AWS 帐户中安装和管理其他 ROSA 集群,则需要 OpenShift Cluster Manager 和用户 IAM 角色。如果不再需要使用 OpenShift Cluster Manager 安装 ROSA 集群,则才需要删除角色。
前提条件
- 您创建了 OpenShift Cluster Manager 和用户 IAM 角色,并将其链接到您的红帽机构。
-
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。 - 您在红帽组织中具有机构管理员权限。
流程
从您的红帽机构中取消链接 OpenShift Cluster Manager IAM 角色,并删除角色:
列出 AWS 帐户中的 OpenShift Cluster Manager IAM 角色:
$ rosa list ocm-roles
输出示例
I: Fetching ocm roles ROLE NAME ROLE ARN LINKED ADMIN 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
如果 OpenShift Cluster Manager IAM 角色在上一命令的输出中被列为链接,请取消链接您的红帽机构中的角色:
$ rosa unlink ocm-role --role-arn <arn> 1
- 1
- 将
<arn
> 替换为 OpenShift Cluster Manager IAM 角色的 Amazon Resource Name (ARN)。ARN 在上一命令的输出中指定。在上例中,ARN 的格式为arn:aws:iam::<aws_account_external_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>'
删除 OpenShift Cluster Manager 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 Cluster Manager IAM 角色和策略。在手动模式中
,rosa
CLI 生成删除角色和策略所需的aws
命令。通过手动模式
,您可以在手动运行aws
命令前查看详情。
取消链接红帽机构中的用户 IAM 角色,并删除角色:
列出 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
如果您的用户 IAM 角色在上一命令的输出中被列为链接,请取消链接您的红帽机构中的角色:
$ rosa unlink user-role --role-arn <arn> 1
- 1
- 将
<arn
> 替换为您的用户 IAM 角色的 Amazon Resource Name (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>'
删除用户 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 角色。在手动模式中
,rosa
CLI 生成删除角色所需的aws
命令。通过手动模式
,您可以在手动运行aws
命令前查看详情。
8.4. 其他资源
- 有关使用 STS 的 ROSA 集群的 AWS IAM 资源的信息,请参阅关于使用 STS 的 ROSA 集群的 IAM 资源。
- 有关缺少 IAM 角色的集群错误的信息,请参阅 修复无法删除的集群。
第 9 章 在没有 AWS STS 的情况下部署 ROSA
9.1. ROSA 的 AWS 先决条件
Red Hat OpenShift Service on AWS (ROSA)提供了一个模型,它允许红帽将集群部署到客户的现有 Amazon Web Service (AWS)帐户中。
在安装 ROSA 前,您必须确保满足先决条件。这个要求文档不适用于 AWS 安全令牌服务(STS)。如果使用 STS,请查看 STS 的具体要求。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.1.1. 部署先决条件
要将 Red Hat OpenShift Service on AWS (ROSA) 部署到现有的 Amazon Web Services (AWS) 帐户中,红帽要求满足以下几个先决条件。
红帽建议使用 AWS 机构管理多个 AWS 帐户。由客户管理的 AWS 机构托管多个 AWS 帐户。组织中有一个 root 帐户,所有帐户都将在帐户层次结构中引用。
它是在 AWS 机构单元内托管在 AWS 帐户中的 ROSA 集群的最佳实践。创建服务控制策略 (SCP) 并应用到 AWS 机构单元,后者管理 AWS 子帐户可访问的服务。SCP 只适用于单个 AWS 帐户内所有 AWS 子帐户中的可用权限。也可以将 SCP 应用到单个 AWS 帐户。客户 AWS 组织中的所有其他帐户以客户要求的任何方式进行管理。Red Hat 站点可靠性工程师(SRE)并不对 AWS 机构内的 SCP 产生任何控制权。
9.1.2. 客户需求
在 AWS (ROSA)集群上的 Red Hat OpenShift Service 必须满足几个先决条件,然后才能部署它们。
要创建集群,用户必须以 IAM 用户身份登录,而不是假定的角色或 STS 用户。
9.1.2.1. 帐户
- 客户可确保 AWS limits 足以支持在客户 AWS 帐户中置备 Red Hat OpenShift Service on AWS。
客户的 AWS 帐户应该位于客户具有适用服务控制策略 (SCP) 的 AWS 机构中。
注意不要求客户的帐户位于 AWS 机构内或要应用的 SCP,但红帽必须能够在不限制任何限制的情况下执行 SCP 中列出的所有操作。
- 客户的 AWS 帐户不应向红帽传输。
- 客户可能不会对 Red Hat 活动实施 AWS 使用量限制。受损限制将严重阻碍红帽响应事件的能力。
客户可以在同一 AWS 帐户内部署原生 AWS 服务。
注意我们鼓励客户在虚拟私有云(VPC)中部署资源,与在 AWS 和其它 Red Hat 支持服务的 VPC 中分离。
9.1.2.2. 访问要求
要在 AWS 服务上正确管理 Red Hat OpenShift Service,红帽始终必须将
AdministratorAccess
策略应用到管理员角色。如果您使用 AWS 安全令牌服务(STS),则这个要求 不适用。注意此政策仅向红帽提供了在客户提供的 AWS 帐户中更改资源的权限和功能。
- 红帽必须有权访问用户提供的 AWS 帐户的 AWS 控制台。这种访问受到红帽保护和管理。
- 客户不得使用 AWS 帐户在 AWS 集群中的 Red Hat OpenShift Service 中提升其权限。
-
rosa
CLI 实用程序或 OpenShift Cluster Manager 混合云控制台 中提供的操作不能在客户的 AWS 帐户中直接执行。
9.1.2.3. 支持要求
- 红帽建议客户至少通过 AWS 的业务支持。
- 红帽有权代表客户请求 AWS 支持。
- 红帽的客户授权可以请求 AWS 资源限制来增加客户的帐户。
- 除非本要求部分中另有指定,否则红帽以相同的方式管理所有 Red Hat OpenShift Service on AWS 集群上的限制、预期和默认值。
9.1.2.4. 安全要求
- 卷快照将保留在客户的 AWS 帐户和客户指定的区域内。
- 红帽必须拥有对 EC2 主机和 API 服务器的入口访问权限,以及来自允许列表的 IP 地址的 API 服务器。
- 红帽需要有一个出口,可以将系统和审计日志转发到红帽管理的中央日志记录环境中。
9.1.3. 所需的客户步骤
在 AWS (ROSA)上部署 Red Hat OpenShift Service 前完成以下步骤。
流程
9.1.3.1. 最低服务控制策略(SCP)
服务控制策略 (SCP) 管理由客户自己负责。这些策略在 AWS 机构中维护,并控制附加的 AWS 帐户内有哪些服务。
使用 AWS 安全令牌服务(STS)时,最小 SCP 要求不应用。有关 STS 的更多信息,请参阅使用 STS 的 ROSA AWS 的先决条件。
Service | Actions | 效果 | |
---|---|---|---|
必需 | Amazon EC2 | All | Allow |
Amazon EC2 自动扩展 | All | Allow | |
Amazon S3 | All | Allow | |
身份和访问管理 | All | Allow | |
弹性负载平衡 | All | Allow | |
弹性负载平衡 V2 | All | Allow | |
Amazon CloudWatch | All | Allow | |
Amazon CloudWatch Events | All | Allow | |
Amazon CloudWatch Logs | All | Allow | |
AWS Support | All | Allow | |
AWS 密钥管理服务 | All | Allow | |
AWS 安全令牌服务 | All | Allow | |
AWS Resource Tagging | All | Allow | |
AWS Route53 DNS | All | Allow | |
AWS Service Quotas | ListServices GetRequestedServiceQuotaChange GetServiceQuota RequestServiceQuotaIncrease ListServiceQuotas | Allow | |
选填 | AWS Billing | ViewAccount Viewbilling ViewUsage | Allow |
AWS 成本和使用情况报告 | All | Allow | |
AWS Cost Explorer Services | All | Allow |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "autoscaling:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iam:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "elasticloadbalancing:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "events:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "logs:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "support:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sts:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "tag:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "route53:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "servicequotas:ListServices", "servicequotas:GetRequestedServiceQuotaChange", "servicequotas:GetServiceQuota", "servicequotas:RequestServiceQuotaIncrease", "servicequotas:ListServiceQuotas" ], "Resource": [ "*" ] } ] }
9.1.4. AWS 的 Red Hat managed IAM 参考
红帽负责创建和管理以下 Amazon Web Services (AWS)资源: IAM 策略、IAM 用户和 IAM 角色。
9.1.4.1. IAM 策略
IAM 策略可能会作为 Red Hat OpenShift Service 在 AWS 上的修改功能进行修改。
AdministratorAccess
策略由管理角色使用。此策略提供了在客户 AWS 帐户中管理 Red Hat OpenShift Service on AWS (ROSA)集群所需的访问权限。{ "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow" } ] }
9.1.4.2. IAM 用户
在将 ROSA 安装到客户的 AWS 帐户后,会立即创建 osdManagedAdmin
用户。
9.1.5. 置备的 AWS Infrastructure
这是在部署的 Red Hat OpenShift Service on AWS (ROSA) 中置备的 Amazon Web Services (AWS) 组件的概述。有关所有置备的 AWS 组件的详情,请参阅 OpenShift Container Platform 文档。
9.1.5.1. EC2 实例
在 AWS 公共云中部署 ROSA 的 control plane 和 data plane 功能需要 AWS EC2 实例。
实例类型可能因 control plane 和基础架构节点的不同,具体取决于 worker 节点数。至少部署以下 EC2 实例:
-
三个
m5.2xlarge
control plane 节点 -
两个
r5.xlarge
基础架构节点 -
两个
m5.xlarge
可自定义 worker 节点
有关 worker 节点计数的更多信息,请参阅此页面的"Additional resources"部分中列出的"限制和可扩展性"部分中初始规划注意事项的信息。
9.1.5.2. AWS Elastic Block Store (EBS)存储
Amazon EBS 块存储用于本地节点存储和持久性卷存储。
每个 EC2 实例的卷要求:
Control Plane 卷
- 大小:350GB
- 类型: io1
- 每秒输入/输出操作: 1000
基础架构卷
- 大小:300GB
- type: gp2
- Per input/Output Operations Per Second: 900
worker 卷
- 大小:300GB
- type: gp2
- Per input/Output Operations Per Second: 900
9.1.5.3. Elastic 负载均衡器
最多两个 Network Elastic Load Balancers (ELBs) 用于 API, 最多两个 Classic ELBs 用于应用程序路由器。如需更多信息,请参阅 AWS 的 ELB 文档。
9.1.5.4. S3 存储
镜像 registry 由 AWS S3 存储支持。定期执行修剪资源来优化 S3 使用和集群性能。
两个存储桶需要每个大小为 2TB 的情况。
9.1.5.5. VPC
客户应该会看到每个集群的一个 VPC。另外,VPC 需要以下配置:
- 子网 :一个具有单一可用区的集群的两个子网,或具有多个可用区的集群 6 个子网。
- 路由表 :每个专用子网一个路由表,每个集群一个额外表。
- 互联网网关 :每个集群一个互联网网关。
- NAT 网关 :每个公共子网一个 NAT 网关。
9.1.5.5.1. VPC 架构示例

9.1.5.6. 安全组
AWS 安全组在协议和端口访问级别提供安全;它们与 EC2 实例和弹性负载平衡器关联。每个安全组包含一组规则,这些规则过滤进出 EC2 实例的流量。您必须确保 OpenShift 安装所需的端口在网络上打开,并配置为允许主机间的访问。
组 | 类型 | IP 协议 | 端口范围 |
---|---|---|---|
MasterSecurityGroup |
|
|
|
|
| ||
|
| ||
|
| ||
WorkerSecurityGroup |
|
|
|
|
| ||
BootstrapSecurityGroup |
|
|
|
|
|
9.1.6. AWS 防火墙先决条件
只有使用 PrivateLink 部署的 ROSA 集群才能使用防火墙来控制出口流量。
本节提供了必要的详情,供您控制来自 AWS 集群上的 Red Hat OpenShift Service 的出口流量。如果您使用防火墙来控制出口流量,您必须配置防火墙以便授予对域和端口组合的访问权限。AWS 上的 Red Hat OpenShift Service 需要此访问权限来提供完全管理的 OpenShift 服务。
流程
允许列出用于安装和下载软件包和工具的以下 URL:
域 端口 功能 registry.redhat.io
443
提供核心容器镜像。
quay.io
443
提供核心容器镜像。
*.quay.io
443
提供核心容器镜像。
sso.redhat.com
443, 80
必需。
https://console.redhat.com/openshift
站点使用sso.redhat.com
中的身份验证下载 pull secret,并使用 Red Hat SaaS 解决方案来简化对订阅、集群库存、退款报告等的监控。quay-registry.s3.amazonaws.com
443
提供核心容器镜像。
cm-quay-production-s3.s3.amazonaws.com
443
提供核心容器镜像。
cart-rhcos-ci.s3.amazonaws.com
443
提供 Red Hat Enterprise Linux CoreOS (RHCOS)镜像。
openshift.org
443
提供 Red Hat Enterprise Linux CoreOS (RHCOS)镜像。
registry.access.redhat.com
443
提供对
odo
CLI 工具的访问,可帮助开发人员在 OpenShift 和 Kubernetes 上进行构建。console.redhat.com
443, 80
必需。允许集群和 OpenShift 控制台管理器之间的交互启用功能,如调度升级。
sso.redhat.com
443
https://console.redhat.com/openshift
站点使用sso.redhat.com
中的身份验证。pull.q1w2.quay.rhcloud.com
443
当 quay.io 不可用时,提供核心容器镜像作为回退。
.q1w2.quay.rhcloud.com
443
当 quay.io 不可用时,提供核心容器镜像作为回退。
当您将
quay.io
等网站添加到 allowlist 中时,不要在您的 denylist 中添加通配符条目,如*.quay.io
。在大多数情况下,镜像 registry 使用内容交付网络(CDN)来提供镜像。如果防火墙阻止访问,那么当初始下载请求重定向到一个主机名(如cdn01.quay.io
)时,则不能下载镜像。当您在 allowlist 中添加通配符条目(如
.quay.io
)时,会涵盖 CDN 主机名(如cdn01.quay.io
)。允许以下遥测 URL 列出:
域 端口 功能 cert-api.access.redhat.com
443
遥测需要。
api.access.redhat.com
443
遥测需要。
infogw.api.openshift.com
443
遥测需要。
console.redhat.com
443
遥测和 Red Hat Insights 需要。
observatorium.api.openshift.comm
443
托管 OpenShift 的相关遥测是必需的。
受管集群需要让红帽能够更快速地对问题做出反应,更好地支持客户,并更好地了解产品升级对集群的影响。如需有关如何为红帽使用远程健康监控数据的更多信息,请参阅关于远程健康监控。
允许列出以下 Amazon Web Services (AWS) API URls:
域 端口 功能 .amazonaws.com
443
需要此项以访问 AWS 服务和资源。
或者,如果您选择不为 Amazon Web Services (AWS) API 使用通配符,则必须允许列出以下 URL:
域 端口 功能 ec2.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
events.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
iam.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
route53.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
sts.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
tagging.us-east-1.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。此端点始终为 us-east-1,无论集群要部署到的区域。
ec2.<aws_region>.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
elasticloadbalancing.<aws_region>.amazonaws.com
443
用于在 AWS 环境中安装和管理集群。
servicequotas.<aws_region>.amazonaws.com
443, 80
必需。用于确认用于部署该服务的配额。
tagging.<aws_region>.amazonaws.com
443, 80
允许以标签的形式分配 AWS 资源的元数据。
允许以下 OpenShift URL 列出:
域 端口 功能 mirror.openshift.com
443
用于访问镜像安装内容和镜像。此站点也是发行镜像签名的源,但 Cluster Version Operator (CVO)只需要一个可正常工作的源。
storage.googleapis.com/openshift-release
(推荐)443
mirror.openshift.com/ 的替代站点。用于下载集群用来从 quay.io 中拉取哪些镜像的平台发行版本签名。
api.openshift.com
443
用于检查集群是否有可用的更新。
允许以下站点可靠性工程(SRE)和管理 URL:
域 端口 功能 api.pagerduty.com
443
这个警报服务供集群 alertmanager 用于发送通知红帽 SRE 事件要执行的操作的警报。
events.pagerduty.com
443
这个警报服务供集群 alertmanager 用于发送通知红帽 SRE 事件要执行的操作的警报。
api.deadmanssnitch.com
443
AWS 上使用 Red Hat OpenShift Service 发送定期 ping 的警报服务,指示集群是否可用并正在运行。
nosnch.in
443
AWS 上使用 Red Hat OpenShift Service 发送定期 ping 的警报服务,指示集群是否可用并正在运行。
*.osdsecuritylogs.splunkcloud.com
ORinputs1.osdsecuritylogs.splunkcloud.com
inputs2.osdsecuritylogs.splunkcloud.com
inputs4.osdsecuritylogs.splunkcloud.com
inputs5.osdsecuritylogs.splunkcloud.com
inputs6.osdsecuritylogs.splunkcloud.com
inputs7.osdsecuritylogs.splunkcloud.com
inputs8.osdsecuritylogs.splunkcloud.com
inputs9.osdsecuritylogs.splunkcloud.com
inputs10.osdsecuritylogs.splunkcloud.com
inputs11.osdsecuritylogs.splunkcloud.com
inputs12.osdsecuritylogs.splunkcloud.com
inputs13.osdsecuritylogs.splunkcloud.com
inputs14.osdsecuritylogs.splunkcloud.com
inputs15.osdsecuritylogs.splunkcloud.com
9997
splunk-forwarder-operator
使用为一个日志转发端点,供 Red Hat SRE 用于基于日志的警报。http-inputs-osdsecuritylogs.splunkcloud.com
443
必需。
splunk-forwarder-operator
使用为一个日志转发端点,供 Red Hat SRE 用于基于日志的警报。sftp.access.redhat.com
(Recommended)22
must-gather-operator
使用的 SFTP 服务器来上传诊断日志,以帮助排除集群的问题。如果您没有允许 Amazon Web Services (AWS) API 的通配符,还必须允许用于内部 OpenShift registry 的 S3 存储桶。要检索该端点,在集群成功置备后运行以下命令:
$ oc -n openshift-image-registry get pod -l docker-registry=default -o json | jq '.items[].spec.containers[].env[] | select(.name=="REGISTRY_STORAGE_S3_BUCKET")'
S3 端点的格式应为:'<cluster-name>-<random-string>-image-registry-<cluster-region>-<random-string>.s3.dualstack.<cluster-region>.amazonaws.com'。
- 将提供构建所需语言或框架资源的任何站点列入允许列表。
- 允许任何依赖于 OpenShift 中使用的语言和框架的出站 URL。如需了解在防火墙或代理上 允许的建议 URL 列表,请参阅 OpenShift Outbound URL。
9.1.7. 后续步骤
9.1.8. 其他资源
9.2. 了解 ROSA 部署工作流
在使用 AWS Security Token Service (STS) 的 AWS (ROSA) 集群上创建 Red Hat OpenShift Service 前,您必须先满足 AWS 的先决条件,验证所需的 AWS 服务配额是否可用,并设置您的环境。
本文档概述了带有 STS 部署工作流阶段的 ROSA,并指代每个阶段的详细资源。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.2.1. ROSA 部署工作流概述
您可以遵循本节中介绍的工作流阶段,在 AWS (ROSA)集群上设置和访问 Red Hat OpenShift Service。
- 执行 AWS 先决条件。要部署 ROSA 集群,您的 AWS 帐户必须满足先决条件。
- 查看所需的 AWS 服务配额。要准备集群部署,请查看运行 ROSA 集群的 AWS 服务配额。
-
配置 AWS 帐户。在创建 ROSA 集群前,您必须在 AWS 帐户中启用 ROSA,安装和配置 AWS CLI (
aws
)工具配置,并验证 AWS CLI 工具配置。 -
安装 ROSA 和 OpenShift CLI 工具并验证 AWS 服务配额。安装和配置 ROSA CLI (
rosa
)和 OpenShift CLI (oc
)。您可以使用 ROSA CLI 验证所需的 AWS 资源配额是否可用。 -
创建 ROSA 集群 或使用 AWS PrivateLink 创建 ROSA 集群。使用 ROSA CLI (
rosa
)创建集群。您可以选择使用 AWS PrivateLink 创建 ROSA 集群。 -
访问集群。您可以配置身份提供程序,并根据需要为身份提供程序用户授予集群管理员特权。您还可以通过配置
cluster-admin
用户快速访问新部署的集群。 - 为用户 撤销对 ROSA 集群的访问。您可以使用 ROSA CLI 或 Web 控制台从用户撤销对 ROSA 集群的访问。
-
删除 ROSA 集群。您可以使用 ROSA CLI (
rosa
)删除 ROSA 集群。
9.2.2. 其他资源
- 有关使用 ROSA 部署工作流创建使用 AWS STS 的集群的信息,请参阅了解带有 STS 的 ROSA 部署工作流。
- 配置身份提供程序
- 删除集群
- 删除对集群的访问
- 创建集群和用户的命令快速参考
9.3. 所需的 AWS 服务配额
查看此列表,其中列出了在 AWS 集群上运行 Red Hat OpenShift Service on AWS 集群所需的服务配额。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.3.1. 所需的 AWS 服务配额
下表描述了在 AWS 集群上创建并运行 Red Hat OpenShift Service 所需的 AWS 服务配额和级别。
AWS SDK 允许 ROSA 检查配额,但 AWS SDK 计算不包括您现有的使用量。因此,配额检查可能会在 AWS SDK 中通过,但集群创建过程可能会失败。要解决这个问题,请提高配额。
如果您需要修改或增加特定配额,请参阅 Amazon 的文档,以请求 增加配额。
配额名称 | 服务代码 | 配额代码 | 最低要求值 | 推荐的值 |
---|---|---|---|---|
EIP 数量 - VPC EIP | ec2 | L-0263D0A3 | 5 | 5 |
运行按需标准(A、C、D、H、I、M、R、T、Z)实例 | ec2 | L-1216C47A | 100 | 100 |
每个区域的 VPCs | vpc | L-F678F1CE | 5 | 5 |
每个区域的互联网网关 | vpc | L-A4707A72 | 5 | 5 |
每个区域的网络接口 | vpc | L-DF5E4CA3 | 5,000 | 5,000 |
通用目的 SSD (gp2)卷存储 | ebs | L-D18FCD1D | 50 | 300 |
EBS 快照数量 | ebs | L-309BACF6 | 300 | 300 |
置备的 IOPS | ebs | L-B3A130E6 | 300,000 | 300,000 |
置备的 IOPS SSD (io1)卷存储 | ebs | L-FD252861 | 50 | 300 |
每个区域的应用程序负载均衡器 | elasticloadbalancing | L-53DA6B97 | 50 | 50 |
每个区域的经典负载平衡器 | elasticloadbalancing | L-E9E9831D | 20 | 20 |
9.3.2. 后续步骤
9.3.3. 其他资源
9.4. 配置 AWS 帐户
完成 AWS 先决条件后,配置 AWS 帐户并在 AWS (ROSA)服务中启用 Red Hat OpenShift Service。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.4.1. 配置 AWS 帐户
要将 AWS 帐户配置为使用 ROSA 服务,请完成以下步骤。
前提条件
- 检查并完成部署先决条件和策略。
- 如果还没有 红帽帐户,请创建一个红帽帐户。然后,检查电子邮件以获取验证链接。您将需要这些凭证来安装 ROSA。
流程
登录到您要使用的 Amazon Web Services (AWS)帐户。
建议运行一个专用 AWS 帐户来运行生产环境集群。如果使用 AWS 机构,您可以使用机构中的 AWS 帐户 或创建新机构。
如果您使用 AWS 机构,且您需要有一个服务控制策略 (SCP) 应用于您计划使用的 AWS 帐户,请参阅 AWS 先决条件。
作为集群创建过程的一部分,ros
a
建立osdCcsAdmin
IAM 用户。此用户使用您在配置 AWS CLI 时提供的 IAM 凭证。注意此用户启用了
Programmatic
访问权限,并附加了AdministratorAccess
策略。在 AWS 控制台中启用 ROSA 服务。
安装和配置 AWS CLI。
按照 AWS 命令行界面文档为您的操作系统 安装和配置 AWS CLI。
在
.aws/credentials
文件中指定正确的aws_access_key_id
和aws_secret_access_key
。请参阅 AWS 文档中的 AWS 配置基础知识。设置默认 AWS 区域。
注意建议使用环境变量来设置默认的 AWS 区域。
ROSA 服务按以下优先级顺序评估区域:
-
使用
--region
标志运行rosa
命令时指定的区域。 -
在
AWS_DEFAULT_REGION
环境变量中设置的区域。请参阅 AWS 文档中的配置 AWS CLI 的环境变量。 - AWS 配置文件中设定的默认地区。请参阅 AWS 文档中的使用 aws 配置 快速配置。
-
使用
可选:使用名为 profile 的 AWS 配置 AWS CLI 设置和凭证。
ROSA
按以下优先级顺序评估 AWS 指定配置集:-
使用
--profile
标志运行rosa
命令时指定的配置集。 -
在
AWS_PROFILE
环境变量中设置的配置集。请参阅 AWS 文档中的 Named 配置集。
-
使用
运行以下命令查询 AWS API 来验证 AWS CLI 是否已正确安装和配置:
$ aws sts get-caller-identity
输出示例
--------------------------------------------------------------------------------- | GetCallerIdentity | +-------------------------------------------------------------------------------+ |+-----------------------------------+-----------------------+-----------------+| || Account | Arn | UserID || |+-----------------------------------+-----------------------+-----------------+| || <account_name> | arn:aws:iam<string>:user:name | <userID> || |+-----------------------------------+-----------------------+-----------------+|
完成这些步骤后,安装 ROSA。
9.4.2. 后续步骤
9.4.3. 其他资源
9.5. 安装 ROSA CLI
配置 AWS 帐户后,安装并配置 ROSA CLI (rosa
)。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.5.1. 安装和配置 ROSA CLI
安装和配置 ROSA CLI (rosa
)。您还可以安装 OpenShift CLI (oc
),并使用 ROSA CLI 验证所需的 AWS 资源配额是否可用。
前提条件
- 检查并完成 AWS 的先决条件和 ROSA 策略。
- 如果还没有 红帽帐户,请创建一个红帽帐户。然后,检查电子邮件以获取验证链接。您将需要这些凭证来安装 ROSA。
- 配置 AWS 帐户并在 AWS 帐户中启用 ROSA 服务。
流程
安装
rosa
,Red Hat OpenShift Service on AWS 的命令行接口 (CLI)。-
为您的操作系统下载
rosa
CLI 的最新版本。 -
可选:将您下载的可执行文件命名为
rosa
。本文档使用rosa
参考可执行文件。 可选:为您的路径添加
rosa
。示例
$ mv rosa /usr/local/bin/rosa
输入以下命令验证安装:
$ rosa
输出示例
Command line tool for ROSA. Usage: rosa [command] Available Commands: completion Generates bash completion scripts create Create a resource from stdin delete Delete a specific resource describe Show details of a specific resource edit Edit a specific resource help Help about any command init Applies templates to support Managed OpenShift on AWS clusters list List all resources of a specific type login Log in to your Red Hat account logout Log out logs Show logs of a specific resource verify Verify resources are configured correctly for cluster install version Prints the version of the tool Flags: --debug Enable debug mode. -h, --help help for rosa -v, --v Level log level for V logs Use "rosa [command] --help" for more information about a command.
可选:为
rosa
CLI 生成命令完成脚本。以下示例为 Linux 机器生成 Bash 完成脚本:$ rosa completion bash | sudo tee /etc/bash_completion.d/rosa
可选:从现有终端启用
rosa
命令完成。以下示例在 Linux 机器上的现有终端中启用rosa
的 Bash 完成:$ source /etc/bash_completion.d/rosa
-
为您的操作系统下载
使用
rosa
登录您的红帽帐户。输入以下命令。
$ rosa login
将
<my_offline_access_token&
gt; 替换为您的令牌。输出示例
To login to your Red Hat account, get an offline access token at https://console.redhat.com/openshift/token/rosa ? Copy the token and paste it here: <my-offline-access-token>
输出继续示例
I: Logged in as 'rh-rosa-user' on 'https://api.openshift.com'
输入以下命令验证您的 AWS 帐户是否有必要权限。
$ rosa verify permissions
输出示例
I: Validating SCP policies... I: AWS SCP policies ok
注意此命令只验证不使用 AWS 安全令牌服务(STS)的 ROSA 集群的权限。
验证您的 AWS 帐户是否具有在 AWS 集群上部署 Red Hat OpenShift Service 所需的配额。
$ rosa verify quota --region=us-west-2
输出示例
I: Validating AWS quota... I: AWS quota ok
注意有时,您的 AWS 配额因区域而异。如果收到任何错误,请尝试其他区域。
如果需要提高配额,进入 AWS 控制台,并为失败的服务请求配额增加。
在权限和配额检查通过后,继续下一步。
为集群部署准备 AWS 帐户:
运行以下命令验证您的红帽和 AWS 凭证是否已正确设置。检查您的 AWS 帐户 ID、默认区域和 ARN 是否与预期的内容匹配。现在,您可以安全地忽略以
OCM
开头的行。$ rosa whoami
输出示例
AWS Account ID: 000000000000 AWS Default Region: us-east-2 AWS ARN: arn:aws:iam::000000000000:user/hello OCM API: https://api.openshift.com OCM Account ID: 1DzGIdIhqEWyt8UUXQhSoWaaaaa OCM Account Name: Your Name OCM Account Username: you@domain.com OCM Account Email: you@domain.com OCM Organization ID: 1HopHfA2hcmhup5gCr2uH5aaaaa OCM Organization Name: Red Hat OCM Organization External ID: 0000000
初始化 AWS 帐户。此步骤运行 CloudFormation 模板,用于准备用于集群部署和管理的 AWS 帐户。此步骤通常需要 1-2 分钟才能完成。
$ rosa init
输出示例
I: Logged in as 'rh-rosa-user' on 'https://api.openshift.com' I: Validating AWS credentials... I: AWS credentials are valid! I: Validating SCP policies... I: AWS SCP policies ok I: Validating AWS quota... I: AWS quota ok I: Ensuring cluster administrator user 'osdCcsAdmin'... I: Admin user 'osdCcsAdmin' created successfully! I: Verifying whether OpenShift command-line tool is available... E: OpenShift command-line tool is not installed. Run 'rosa download oc' to download the latest version, then add it to your PATH.
从
rosa
CLI 安装 OpenShift CLI (oc
)。输入以下命令下载
oc
CLI 的最新版本:$ rosa download oc
-
下载
oc
CLI 后,将其解压缩并将其添加到您的路径中。 输入此命令来验证是否已正确安装了
oc
CLI:$ rosa verify oc
安装 ROSA 后,就可以创建集群。
9.5.2. 后续步骤
9.5.3. 其他资源
9.6. 创建没有 AWS STS 的 ROSA 集群
设置环境并在 AWS (ROSA)上安装 Red Hat OpenShift Service 后,创建集群。
本文档论述了如何设置 ROSA 集群。另外,您可以使用 AWS PrivateLink 创建 ROSA 集群。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.6.1. 创建集群
您可以使用 rosa
CLI 在 AWS 集群上创建 Red Hat OpenShift Service。
前提条件
您已在 AWS 上安装了 Red Hat OpenShift Service。
目前,安装 ROSA 不支持 AWS Shared VPC。
流程
您可以使用默认设置或使用互动模式指定自定义设置来创建集群。要在创建集群时查看其他选项,请输入
rosa create cluster --help
。创建集群最多可能需要 40 分钟。
注意对于生产工作负载,推荐使用多个可用区(AZ)。默认值为单个可用区。使用
--help
来手动设置这个选项,或使用互动模式进行此设置。使用默认集群设置创建集群:
$ rosa create cluster --cluster-name=<cluster_name>
输出示例
I: Creating cluster with identifier '1de87g7c30g75qechgh7l5b2bha6r04e' and name 'rh-rosa-test-cluster1' I: To view list of clusters and their status, run `rosa list clusters` I: Cluster 'rh-rosa-test-cluster1' has been created. I: Once the cluster is 'Ready' you will need to add an Identity Provider and define the list of cluster administrators. See `rosa create idp --help` and `rosa create user --help` for more information. I: To determine when your cluster is Ready, run `rosa describe cluster rh-rosa-test-cluster1`.
使用互动提示创建集群:
$ rosa create cluster --interactive
要配置网络 IP 范围,您可以使用以下默认范围:有关使用手动模式时的更多信息,请使用
rosa create cluster --help | grep cidr
。在交互模式中,系统会提示您输入设置。- 节点 CIDR: 10.0.0.0/16
- Service CIDR: 172.30.0.0/16
- Pod CIDR: 10.128.0.0/14
输入以下命令检查集群的状态。在集群创建过程中,输出中的
State
字段将从Pending
转换为安装
,最后变为ready
。$ rosa describe cluster --cluster=<cluster_name>
输出示例
Name: rh-rosa-test-cluster1 OpenShift Version: 4.6.8 DNS: *.example.com ID: uniqueidnumber External ID: uniqueexternalidnumber AWS Account: 123456789101 API URL: https://api.rh-rosa-test-cluster1.example.org:6443 Console URL: https://console-openshift-console.apps.rh-rosa-test-cluster1.example.or Nodes: Master: 3, Infra: 2, Compute: 2 Region: us-west-2 Multi-AZ: false State: ready Channel Group: stable Private: No Created: Jan 15 2021 16:30:55 UTC Details Page: https://console.redhat.com/examplename/details/idnumber
注意如果安装失败或者
State
字段在 40 分钟后没有变为ready
,请检查安装故障排除文档以了解更多详细信息。通过观察 OpenShift 安装程序日志来跟踪集群创建的进度:
$ rosa logs install --cluster=<cluster_name> --watch
9.6.2. 后续步骤
9.6.3. 其他资源
9.7. 配置私有集群
AWS 集群上的 Red Hat OpenShift Service 可以进行私有,以便内部应用程序可以托管在公司网络中。另外,可以将私有集群配置为仅具有内部 API 端点来提高安全性。
可在集群创建期间或建立集群后配置隐私设置。
9.7.1. 在新集群中启用私有集群
您可以在 AWS 集群上创建新 Red Hat OpenShift Service 时启用私有集群设置。
私有集群不能与 AWS 安全令牌服务(STS)搭配使用。但是 STS 支持 AWS PrivateLink 集群。
前提条件
AWS VPC Peering、VPN、DirectConnect 或 TransitGateway 被配置为允许私有访问。
流程
输入以下命令来创建新私有集群。
$ rosa create cluster --cluster-name=<cluster_name> --private
或者,为每个集群选项提示 --interactive
。
9.7.2. 在现有集群中启用私有集群
创建集群后,您可以将集群启用为私有。
私有集群不能与 AWS 安全令牌服务(STS)搭配使用。但是 STS 支持 AWS PrivateLink 集群。
前提条件
AWS VPC Peering、VPN、DirectConnect 或 TransitGateway 被配置为允许私有访问。
流程
输入以下命令在现有集群中启用 --private
选项。
$ rosa edit cluster --cluster-name=<cluster_name> --private
在私有和公共间迁移集群可能需要几分钟来完成。
9.7.3. 其他资源
9.8. 删除对 ROSA 集群的访问
使用 rosa
命令行删除对 AWS (ROSA)集群中的 Red Hat OpenShift Service 的访问权限。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.8.1. 使用 rosa
CLI 撤销 专用管理员访问权限
如果您是创建集群、机构管理员用户或超级用户的用户,您可以撤销 dedicated-admin
用户的访问权限。
前提条件
- 您已在集群中添加了身份提供程序(IDP)。
- 您有 IDP 用户名,用于撤销其权限的用户。
- 已登陆到集群。
流程
输入以下命令撤销用户的
dedicated-admin
访问权限:$ rosa revoke user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
输入以下命令验证您的用户是否不再有
dedicated-admin
访问权限。输出不会列出已撤销的用户。$ oc get groups dedicated-admins
9.8.2. 使用 rosa
CLI 撤销 cluster-admin
访问
只有创建集群的用户才能撤销 cluster-admin
用户的访问权限。
前提条件
- 您已在集群中添加了身份提供程序(IDP)。
- 您有 IDP 用户名,用于撤销其权限的用户。
- 已登陆到集群。
流程
输入以下命令撤销用户的
cluster-admin
访问:$ rosa revoke user cluster-admins --user=myusername --cluster=mycluster
输入以下命令验证用户是否不再具有
cluster-admin
访问权限。输出不会列出已撤销的用户。$ oc get groups cluster-admins
9.9. 删除 ROSA 集群
使用 rosa
命令行删除 AWS (ROSA)集群中的 Red Hat OpenShift Service。
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.9.1. 前提条件
如果 Red Hat OpenShift Service on AWS 创建了一个 VPC,则必须从集群中删除以下项目,然后才能成功删除集群:
- 网络配置,如 VPN 配置和 VPC 对等连接
- 任何添加到 VPC 中的额外服务
如果这些配置和服务保留,集群不会正确删除。
9.9.2. 删除 ROSA 集群和特定于集群的 IAM 资源
您可以使用 ROSA CLI (rosa
) 或 Red Hat OpenShift Cluster Manager 删除使用 AWS 安全令牌服务(STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群。
删除集群后,您可以使用 ROSA CLI (rosa
) 清理 AWS 帐户中特定于集群的 Identity and Access Management (IAM) 资源。特定于集群的资源包括 Operator 角色和 OpenID Connect (OIDC)供应商。
集群删除必须在删除 IAM 资源前完成,因为集群删除和清理过程会用到这些资源。
如果安装了附加组件,集群删除需要更长的时间,因为在删除集群前卸载附加组件。时间的数量取决于附加组件的数量和大小。
前提条件
- 已安装 ROSA 集群。
-
您已在安装主机上安装和配置了最新的 ROSA CLI (
rosa
)。
流程
获取集群 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://rh-oidc.s3.us-east-1.amazonaws.com/1s5v4k39lhm8sm59m90mi0822o31844a 3
重要在删除集群后,您需要使用 ROSA CLI (
rosa
)删除特定于集群的 STS 资源。删除集群:
使用 Red Hat OpenShift Cluster Manager 删除集群:
- 导航到 OpenShift Cluster Manager Hybrid Cloud Console。
-
点击集群
旁边的 Options 菜单并选择 Delete cluster。
- 在提示符处键入集群名称并点 Delete。
使用 ROSA CLI (
rosa
)删除集群:输入以下命令删除集群并观察日志,将 <
cluster_name&
gt; 替换为集群的名称或 ID:$ rosa delete cluster --cluster=<cluster_name> --watch
重要在删除 Operator 角色和 OIDC 供应商前,您必须等待集群删除完成。需要特定于集群的 Operator 角色来清理 OpenShift Operator 创建的资源。Operator 使用 OIDC 供应商进行身份验证。
删除集群 Operator 用于身份验证的 OIDC 供应商:
$ rosa delete oidc-provider -c <cluster_id> --mode auto 1
- 1
- 将
<cluster_id
> 替换为集群的 ID。
注意您可以使用
-y
选项,在提示符处自动回答 yes。可选。删除特定于集群的 Operator IAM 角色:
重要帐户范围的 IAM 角色可以被同一 AWS 帐户中的其他 ROSA 集群使用。只有角色在其他集群不需要时才删除。
$ rosa delete operator-roles -c <cluster_id> --mode auto 1
- 1
- 将
<cluster_id
> 替换为集群的 ID。
9.10. 创建集群和用户的命令快速参考
AWS 安全令牌服务(STS)是推荐的凭证模式,用于在 AWS (ROSA)上安装并与之交互,因为它提供了增强的安全性。
9.10.1. 命令快速参考列表
如果您已经创建了第一个集群和用户,这个列表可在创建其他集群和用户时作为命令快速引用列表。
## Configures your AWS account and ensures everything is setup correctly $ rosa init ## Starts the cluster creation process (~30-40minutes) $ rosa create cluster --cluster-name=<cluster_name> ## Connect your IDP to your cluster $ rosa create idp --cluster=<cluster_name> --interactive ## Promotes a user from your IDP to dedicated-admin level $ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name> ## Checks if your install is ready (look for State: Ready), ## and provides your Console URL to login to the web console. $ rosa describe cluster --cluster=<cluster_name>