8.2. 使用 ROSA CLI 管理对象
使用 Red Hat OpenShift Service on AWS (ROSA) CLI 管理对象 rosa
,如添加 dedicated-admin
用户、管理集群和调度集群升级。
要访问只能通过 HTTP 代理服务器访问的集群,您可以设置 HTTP_PROXY
、HTTPS_PROXY
和 NO_PROXY
变量。rosa
CLI 尊重这些环境变量,以便与集群的所有通信都通过 HTTP 代理进行。
8.2.1. 常用命令和参数
这些常用命令和参数可用于 Red Hat OpenShift Service on AWS (ROSA) CLI。
8.2.1.1. debug
为父命令启用调试模式,以帮助进行故障排除。
示例
$ rosa create cluster --cluster-name=<cluster_name> --debug
8.2.1.2. 下载
将指定软件的最新兼容版本下载到存档文件中的当前目录。提取存档内容,并将内容添加到您的路径中以使用软件。要下载最新的 ROSA CLI,请指定 rosa
。要下载最新的 OpenShift CLI,请指定 oc
。
示例
$ rosa download <software>
8.2.1.3. 帮助
显示 ROSA CLI (rosa
)和可用命令列表的常规帮助信息。此选项也可以用作参数来显示父命令(如 version
或 create
)的帮助信息。
例子
显示 ROSA CLI 的常规帮助。
$ rosa --help
显示 版本
的一般帮助。
$ rosa version --help
8.2.1.4. interactive
启用交互模式。
示例
$ rosa create cluster --cluster-name=<cluster_name> --interactive
8.2.1.5. 配置集
从凭证文件中指定 AWS 配置集。
示例
$ rosa create cluster --cluster-name=<cluster_name> --profile=myAWSprofile
8.2.1.6. version
显示 rosa
版本,并检查是否有更新的版本。
示例
$ rosa version [arguments]
输出示例
当有较新版本的 ROSA CLI 可用时显示。
1.2.12 There is a newer release version '1.2.15', please consider updating: https://mirror.openshift.com/pub/openshift-v4/clients/rosa/latest/
8.2.2. 父命令
Red Hat OpenShift Service on AWS (ROSA) CLI rosa
使用父命令和子命令来管理对象。父命令是 create
, edit
, delete
, list
, 和 describe
。并非所有父命令都可用于所有子命令。如需更多信息,请参阅描述子命令的特定参考主题。
8.2.2.1. create
使用子命令对对象或资源时创建对象或资源。
示例
$ rosa create cluster --cluster-name=mycluster
8.2.2.2. edit
对对象的编辑选项,如使集群私有。
示例
$ rosa edit cluster --cluster=mycluster --private
8.2.2.3. delete
使用子命令对对象或资源时删除对象或资源。
示例
$ rosa delete ingress --cluster=mycluster
8.2.2.4. list
列出特定集群的集群或资源。
示例
$ rosa list users --cluster=mycluster
8.2.2.5. describe
显示集群的详情。
示例
$ rosa describe cluster --cluster=mycluster
8.2.3. 创建对象
本节论述了集群和资源的 create
命令
8.2.3.1. 创建 account-roles
为集群创建所需的集群范围的角色和策略资源。
语法
$ rosa create account-roles [flags]
选项 | 定义 |
---|---|
--debug | 启用调试模式。 |
-i,--interactive | 启用交互模式。 |
-m, --mode string | 如何执行操作。有效选项有:
|
--path string | 集群范围的角色和策略的 Amazon 资源名称(ARN)路径,包括 Operator 策略。 |
--permissions-boundary string | 用于为帐户角色设置权限边界的策略 ARN。 |
--prefix string |
所有生成的 AWS 资源的用户定义前缀。默认值为 |
--profile string | 使用您的凭证文件中的特定 AWS 配置集。 |
-y,--yes | 自动回答 yes 以确认操作。 |
8.2.3.2. 创建管理员
使用自动生成的密码创建集群管理员,以便登录到集群。
语法
$ rosa create admin --cluster=<cluster_name>|<cluster_id>
选项 | 定义 |
---|---|
--cluster <cluster_name>|<cluster_id> | 必需。要添加到身份提供程序(IDP)的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile string | 从您的凭证文件中指定一个 AWS 配置集。 |
示例
创建一个集群管理员,它可以登录到名为 mycluster
的集群。
$ rosa create admin --cluster=mycluster
8.2.3.3. 创建 breakuildDefaults 凭证
为启用了外部身份验证的托管 control plane 集群创建一个 breakfish 凭证。
语法
$ rosa create break-glass-credential --cluster=<cluster_name> [arguments]
选项 | 定义 |
---|---|
--cluster <cluster_name>|<cluster_id> | 必需。将添加 break visualization 凭据的集群的名称或 ID。 |
--expiration | 可选:在过期前可以使用 breakerior 凭证的时间。过期持续时间必须至少为 10 分钟,最多 24 小时。如果没有输入值,则过期持续时间默认为 24 小时。 |
--username | 可选。中断简介凭据的用户名。如果没有输入值,则会为您生成一个随机用户名。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--region |
指定一个 AWS 区域,覆盖 |
--yes |
自动回答 |
例子
向名为 mycluster
的集群添加一个 breakerior 凭证。
语法
$ rosa create break-glass-credential --cluster=mycluster
使用交互模式,向名为 mycluster
的集群添加 breaktra credential。
语法
$ rosa create break-glass-credential --cluster=mycluster -i
8.2.3.4. 创建集群
创建新集群。
语法
$ rosa create cluster --cluster-name=<cluster_name> [arguments]
选项 | 定义 |
---|---|
--additional-compute-security-group-ids <sec_group_id> | 与集群创建的标准机器池一起使用的一个或多个额外安全组的标识符。有关额外安全组的更多信息,请参阅附加资源 下 安全组 的要求。 |
--additional-infra-security-group-ids <sec_group_id> | 与与集群一同创建的 infra 节点一起使用的一个或多个额外安全组的标识符。有关额外安全组的更多信息,请参阅附加资源 下 安全组 的要求。 |
--additional-control-plane-security-group-ids <sec_group_id> | 与与集群创建的 control plane 节点一起使用的一个或多个额外安全组的标识符。有关额外安全组的更多信息,请参阅附加资源 下 安全组 的要求。 |
--additional-allowed-principals <arn> | 以逗号分隔的额外允许主体 ARN 列表,添加到托管的 control plane 的 VPC 端点服务中,以便自动接受额外的 VPC 端点连接请求。 |
--cluster-name <cluster_name> |
必需。集群的名称。与 |
--compute-machine-type <instance_type> | 集群中计算节点的实例类型。这决定了分配给每个计算节点的内存和 vCPU 数量。有关有效实例类型的更多信息,请参阅 ROSA 服务定义中的 AWS 实例类型。 |
--controlplane-iam-role <arn> | 附加到 control plane 实例的 IAM 角色的 ARN。 |
--create-cluster-admin |
可选。作为集群创建的一部分,为集群创建本地管理员用户( |
--cluster-admin-user |
可选。指定与- |
--cluster-admin-password |
可选。指定与- |
--disable-scp-checks | 指明在尝试安装集群时是否禁用了云权限检查。 |
--dry-run | 模拟创建集群。 |
--domain-prefix |
可选:当与 |
--ec2-metadata-http-tokens string |
为 EC2 实例配置 IMDSv2。有效值为 |
--enable-autoscaling |
启用计算节点自动扩展。默认情况下,自动缩放设置为 |
--etcd-encryption | 在 Red Hat OpenShift Service on AWS (classical architecture)集群上启用 ETCD 键值加密。 |
--etcd-encryption-kms-arn | 使用在 AWS 密钥管理服务中管理的客户管理的密钥启用 ETCD 存储加密。 |
--host-prefix <subnet> |
分配给每个节点的子网前缀长度,作为整数。例如,如果主机前缀设置为 |
--machine-cidr <address_block> |
ROSA 在安装集群时使用的 IP 地址块(ipNet),例如 重要
OVN-Kubernetes 是 ROSA 4.11 及之后的版本中的默认网络供应商,在内部使用 |
--max-replicas <number_of_nodes> |
指定启用自动扩展时的最大计算节点数量。默认: |
--min-replicas <number_of_nodes> |
指定启用自动扩展时的最小计算节点数量。默认: |
--multi-az | 部署到多个数据中心。 |
--no-cni | 创建没有 Container Network Interface (CNI)插件的集群。然后,用户可以获取自己的 CNI 插件,并在集群创建后安装它。 |
--operator-roles-prefix <string> | 用于 OpenShift 安装程序所需 Operator 使用的所有 IAM 角色的前缀。如果没有指定前缀,则会自动生成前缀。 |
--pod-cidr <address_block> |
从中分配 Pod IP 地址的 IP 地址块(ipNet),例如 重要
OVN-Kubernetes 是 ROSA 4.11 及之后的版本中的默认网络供应商,在内部使用 |
--private | 限制主 API 端点和应用程序路由来直接、专用连接。 |
--private-link |
指定使用 AWS PrivateLink 提供 VPC 和服务间的私有连接。使用 |
--region <region_name> |
worker 池所在的 AWS 区域的名称,如 |
--replicas n |
每个可用区置备的 worker 节点数量。单区集群至少需要 2 个节点。多区集群至少需要 3 个节点。默认: |
--role-arn <arn> | OpenShift Cluster Manager 用来创建集群的安装程序角色的 ARN。如果您还没有创建帐户角色,则需要此项。 |
--service-cidr <address_block> |
服务的 IP 地址块(ipNet),如 重要
OVN-Kubernetes 是 ROSA 4.11 及之后的版本中的默认网络供应商,在内部使用 |
--sts | --non-sts | 指定是否使用 AWS 安全令牌服务(STS)或 IAM 凭证(非STS)来部署集群。 |
--subnet-ids <aws_subnet_id> |
安装集群时使用的 AWS 子网 ID,如
使用 |
--support-role-arn string | Red Hat Site Reliability engineerss (SRE)使用的角色 ARN,以启用对集群帐户的访问提供支持。 |
--tags | 在 AWS 中由 Red Hat OpenShift Service on AWS 创建的资源中使用的标签。标签可帮助您管理、识别、组织、搜索和过滤 AWS 中的资源。标签用逗号分开,例如:"key value, foo bar"。 重要 Red Hat OpenShift Service on AWS 只支持在集群创建过程中对 Red Hat OpenShift 资源的自定义标签。添加后,无法删除或编辑标签。集群需要添加的标签才能遵守红帽产品服务等级协议(SLA)。这些标签不能被删除。 Red Hat OpenShift Service on AWS 不支持在 ROSA 集群管理的资源外添加额外的标签。当 AWS 资源由 ROSA 集群管理时,这些标签可能会丢失。在这些情况下,您可能需要自定义解决方案或工具来协调标签,并保持它们保持不变。 |
--version string |
用于安装集群或集群资源的 ROSA 版本。对于 |
--worker-iam-role string | 附加到计算实例的 IAM 角色的 ARN。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
创建名为 mycluster
的集群。
$ rosa create cluster --cluster-name=mycluster
使用特定 AWS 区域创建集群。
$ rosa create cluster --cluster-name=mycluster --region=us-east-2
创建在默认 worker 机器池上启用自动扩展的集群。
$ rosa create cluster --cluster-name=mycluster -region=us-east-1 --enable-autoscaling --min-replicas=2 --max-replicas=5
8.2.3.5. 创建 external-auth-provider
添加外部身份提供程序,而不是 OpenShift OAuth2 服务器。
您只能在 ROSA 上使用带有 HCP 集群的外部身份验证供应商。
语法
$ rosa create external-auth-provider --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--claim-mapping-groups-claim <string> | 必需。描述如何将信息从 ID 令牌转换为集群身份的规则。 |
--claim-validation-rule <strings> |
用于验证令牌声明的规则,以验证用户身份。输入将采用 < |
--claim-mapping-username-claim <string> | 用于构建集群身份的用户名的声明名称。 |
--cluster <cluster_name>|<cluster_id> | 必需。将添加 IDP 的集群的名称或 ID。 |
--console-client-id <string> | OpenShift Cluster Manager Web 控制台的 OIDC 客户端的 OIDC 客户端的标识符。 |
--console-client-secret <string> | 与控制台应用程序注册关联的 secret。 |
--issuer-audiences <strings> | 用于检查传入令牌的一组受众。有效令牌必须在其受众声明中至少包含这些值之一。 |
--issuer-ca-file <string> | 对服务器发出请求时使用的 PEM 编码证书文件的路径。 |
--issuer-url <string> | 令牌签发者的服务 URL。 |
--name <string> | 用于引用外部身份验证提供程序的名称。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集字符串。 |
例子
将 Microsoft Entra ID 身份提供程序添加到名为 mycluster
的集群。
$ rosa create external-auth-provider --cluster=mycluster --name <provider_name> --issuer-audiences <audience_id> --issuer-url <issuing id> --claim-mapping-username-claim email --claim-mapping-groups-claim groups
8.2.3.6. 创建 idp
添加身份提供程序 (IDP) 以定义用户如何登录到集群。
语法
$ rosa create idp --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster <cluster_name>|<cluster_id> | 必需。将添加 IDP 的集群的名称或 ID。 |
--ca <path_to_file> |
在向服务器发出请求时使用的 PEM 编码证书文件的路径,例如 |
--client-id | 注册的应用程序中的客户端 ID (字符串)。 |
--client-secret | 来自注册的应用程序的客户端 secret(字符串)。 |
--mapping-method |
指定在用户登录时如何将新身份(字符串)映射到用户。默认: |
--name | 身份提供程序的名称(字符串)。 |
--type |
身份提供程序的类型(字符串)。选择: |
选项 | 定义 |
---|---|
--hostname | 与托管 GitHub Enterprise 实例一起使用的可选域(字符串)。 |
--organizations | 指定用于登录访问的组织。只有至少是一个所列机构(字符串)成员的用户才能登录。 |
--teams |
指定用于登录访问的团队。只有至少属于列出的团队(字符串)的成员的用户才能登录。格式为 |
选项 | 定义 |
---|---|
--host-url |
GitLab 提供程序的主机 URL (字符串)。默认: |
选项 | 定义 |
---|---|
--hosted-domain | 将用户限制为 Google Apps 域(字符串)。 |
选项 | 定义 |
---|---|
--bind-dn | 在搜索阶段要绑定的域名(字符串)。 |
--bind-password | 在搜索阶段要绑定到的密码(字符串)。 |
--email-attributes | 列表(字符串)应用作电子邮件地址的属性。 |
--id-attributes |
列表(字符串)值应用作用户 ID 的属性。默认: |
--insecure | 不使 TLS 连接到服务器。 |
--name-attributes |
列表(字符串)值应用作显示名称的属性。默认: |
--url | RFC 2255 URL (字符串),用于指定正在使用的 LDAP 搜索参数。 |
--username-attributes |
列表(字符串)值应用作首选用户名的属性。默认: |
选项 | 定义 |
---|---|
--email-claims | 用作电子邮件地址的声明的列表(字符串)。 |
--extra-scopes |
在授权令牌请求期间,除了 |
--issuer-url | OpenID 供应商断言为签发者标识符的 URL (字符串)。它必须使用没有 URL 查询参数或片段的 HTTPS 方案。 |
--name-claims | 用作显示名称的声明的列表(字符串)。 |
--username-claims | 在置备用户时用作首选用户名的声明的列表(字符串)。 |
--groups-claims | 用作组名称的声明的列表(字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
将 GitHub 身份提供程序添加到名为 mycluster
的集群。
$ rosa create idp --type=github --cluster=mycluster
按照交互式提示添加身份提供程序。
$ rosa create idp --cluster=mycluster --interactive
8.2.3.7. 创建入口
添加入口端点以启用集群的 API 访问。
语法
$ rosa create ingress --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster <cluster_name>|<cluster_id> | 必需:将添加入口的集群的名称或 ID。 |
--label-match | ingress 的标签匹配(字符串)。格式必须是用逗号分开的 key=value 对列表。如果没有指定标签,则在两个路由器上都公开所有路由。 |
--private | 将应用程序路由限制为直接、私有连接。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
将内部入口添加到名为 mycluster
的集群。
$ rosa create ingress --private --cluster=mycluster
将公共入口添加到名为 mycluster
的集群。
$ rosa create ingress --cluster=mycluster
使用路由选择器标签匹配添加 ingress。
$ rosa create ingress --cluster=mycluster --label-match=foo=bar,bar=baz
8.2.3.8. 创建 kubeletconfig
创建自定义 KubeletConfig
对象,以允许自定义机器池中的节点配置。对于 Red Hat OpenShift Service on AWS 集群,这些设置是集群范围的。对于带有托管的 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),每个机器池可以以不同的方式配置。
语法
$ rosa create kubeletconfig --cluster=<cluster_name|cluster_id> --name=<kubeletconfig_name> --pod-pids-limit=<number> [flags]
选项 | 定义 |
---|---|
--pod-pids-limit <number> |
必需。与 |
-c, --cluster <cluster_name>|<cluster_id> |
必需。要创建 |
--name |
带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA)是必需的。可选 for Red Hat OpenShift Service on AWS,因为集群只有一个 |
-i,--interactive | 启用交互模式。 |
-h, --help | 显示此命令的帮助信息。 |
有关为集群设置 PID 限制的更多信息,请参阅配置 PID 限制。
8.2.3.9. 创建 machinepool
将机器池添加到现有集群。
语法
$ rosa create machinepool --cluster=<cluster_name> | <cluster_id> --replicas=<number> --name=<machinepool_name> [arguments]
选项 | 定义 |
---|---|
--additional-security-group-ids <sec_group_id> | 此机器池要使用的一个或多个额外安全组的标识符。有关额外安全组的更多信息,请参阅附加资源 下 安全组 的要求。 |
--cluster <cluster_name>|<cluster_id> | 必需:将添加机器池的集群的名称或 ID。 |
--disk-size | 在 Gib 或 TiB 中设置机器池的磁盘大小。默认值为 300 GiB。 对于 ROSA (经典架构)集群版本 4.13 或更早版本,最小磁盘大小为 128 GiB,最大为 1 TiB。对于集群版本 4.14 及更新的版本,最小值为 128 GiB,最大值为 16 TiB。 对于带有 HCP 集群的 ROSA,最小磁盘大小为 75 GiB,最大值为 16,384 GiB。 |
--enable-autoscaling |
启用或禁用计算节点的自动扩展。若要启用自动扩展,请使用此参数及 |
--instance-type |
应该使用的实例类型(字符串)。默认值: |
--kubelet-configs <kubeletconfig_name> |
对于带有托管的 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),任何 |
--labels | 机器池的标签(字符串)。格式必须是用逗号分开的 key=value 对列表。此列表会持续覆盖对节点标签所做的任何修改。 |
--max-replicas | 指定启用自动扩展时的最大计算节点数量。 |
--min-replicas | 指定启用自动扩展时的最小计算节点数量。 |
--max-surge |
对于带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),
默认值为 |
--max-unavailable |
对于带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),
默认值为 |
--name | 必需:机器池的名称(字符串)。 |
--replicas | 没有配置自动扩展时需要。此机器池的机器数量(整数)。 |
--tags |
将用户定义的标签应用到 AWS 中 ROSA 创建的所有资源。标签用逗号分开,例如: |
--taints |
机器池的污点。此字符串值应该以逗号分隔的 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
交互式将机器池添加到名为 mycluster
的集群。
$ rosa create machinepool --cluster=mycluster --interactive
将名为 mp-1
的机器池添加到启用了自动扩展的集群。
$ rosa create machinepool --cluster=mycluster --enable-autoscaling --min-replicas=2 --max-replicas=5 --name=mp-1
添加名为 mp-1
的机器池,其 3 个副本为 m5.xlarge
到一个集群。
$ rosa create machinepool --cluster=mycluster --replicas=3 --instance-type=m5.xlarge --name=mp-1
将机器池(mp-1
)添加到带有托管的 control plane (HCP)集群的 Red Hat OpenShift Service (ROSA)中,配置 6 个副本和以下升级行为:
- 在升级过程中最多可以置备 2 个超额节点。
- 确保在升级过程中没有超过 3 个节点。
$ rosa create machinepool --cluster=mycluster --replicas=6 --name=mp-1 --max-surge=2 --max-unavailable=3
在集群中添加带有标签的机器池。
$ rosa create machinepool --cluster=mycluster --replicas=2 --instance-type=r5.2xlarge --labels=foo=bar,bar=baz --name=mp-1
添加带有标签到集群的机器池。
$ rosa create machinepool --cluster=mycluster --replicas=2 --instance-type=r5.2xlarge --tags='foo bar,bar baz' --name=mp-1
8.2.3.10. 创建网络
创建网络,以通过 AWS CloudFormation 模板创建任何必要的 AWS 资源。此帮助程序命令旨在帮助创建和配置 VPC 以用于 HCP 的 ROSA。此命令还支持零个出口集群。
运行此命令会在 AWS 帐户中创建资源。
对于自定义或高级配置,强烈建议您直接使用 aws cloudformation
命令或创建带有所需配置的新自定义模板。
语法
$ rosa create network [flags]
选项 | 定义 |
---|---|
<template-name> |
允许您使用自定义模板。模板必须位于模板文件夹中,构建为 |
默认模板 YAML
AWSTemplateFormatVersion: '2010-09-09' Description: CloudFormation template to create a ROSA Quickstart default VPC. This CloudFormation template may not work with rosa CLI versions later than 1.2.47. Please ensure that you are using the compatible CLI version before deploying this template. Parameters: AvailabilityZoneCount: Type: Number Description: "Number of Availability Zones to use" Default: 1 MinValue: 1 MaxValue: 3 Region: Type: String Description: "AWS Region" Default: "us-west-2" Name: Type: String Description: "Name prefix for resources" VpcCidr: Type: String Description: CIDR block for the VPC Default: '10.0.0.0/16' Conditions: HasAZ1: !Equals [!Ref AvailabilityZoneCount, 1] HasAZ2: !Equals [!Ref AvailabilityZoneCount, 2] HasAZ3: !Equals [!Ref AvailabilityZoneCount, 3] One: Fn::Or: - Condition: HasAZ1 - Condition: HasAZ2 - Condition: HasAZ3 Two: Fn::Or: - Condition: HasAZ3 - Condition: HasAZ2 Resources: VPC: Type: AWS::EC2::VPC Properties: CidrBlock: !Ref VpcCidr EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Ref Name - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' S3VPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: VpcId: !Ref VPC ServiceName: !Sub "com.amazonaws.${Region}.s3" VpcEndpointType: Gateway RouteTableIds: - !Ref PublicRouteTable - !Ref PrivateRouteTable SubnetPublic1: Condition: One Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Select [0, !Cidr [!Ref VpcCidr, 6, 8]] AvailabilityZone: !Select [0, !GetAZs ''] MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub "${Name}-Public-Subnet-1" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' - Key: 'kubernetes.io/role/elb' Value: '1' SubnetPrivate1: Condition: One Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Select [1, !Cidr [!Ref VpcCidr, 6, 8]] AvailabilityZone: !Select [0, !GetAZs ''] MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub "${Name}-Private-Subnet-1" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' - Key: 'kubernetes.io/role/internal-elb' Value: '1' SubnetPublic2: Condition: Two Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Select [2, !Cidr [!Ref VpcCidr, 6, 8]] AvailabilityZone: !Select [1, !GetAZs ''] MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub "${Name}-Public-Subnet-2" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' - Key: 'kubernetes.io/role/elb' Value: '1' SubnetPrivate2: Condition: Two Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Select [3, !Cidr [!Ref VpcCidr, 6, 8]] AvailabilityZone: !Select [1, !GetAZs ''] MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub "${Name}-Private-Subnet-2" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' - Key: 'kubernetes.io/role/internal-elb' Value: '1' SubnetPublic3: Condition: HasAZ3 Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Select [4, !Cidr [!Ref VpcCidr, 6, 8]] AvailabilityZone: !Select [2, !GetAZs ''] MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub "${Name}-Public-Subnet-3" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' - Key: 'kubernetes.io/role/elb' Value: '1' SubnetPrivate3: Condition: HasAZ3 Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Select [5, !Cidr [!Ref VpcCidr, 6, 8]] AvailabilityZone: !Select [2, !GetAZs ''] MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub "${Name}-Private-Subnet-3" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' - Key: 'kubernetes.io/role/internal-elb' Value: '1' InternetGateway: Type: AWS::EC2::InternetGateway Properties: Tags: - Key: Name Value: !Ref Name - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' AttachGateway: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway ElasticIP1: Type: AWS::EC2::EIP Properties: Domain: vpc Tags: - Key: Name Value: !Ref Name - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' ElasticIP2: Type: AWS::EC2::EIP Properties: Domain: vpc Tags: - Key: Name Value: !Ref Name - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' ElasticIP3: Condition: HasAZ3 Type: AWS::EC2::EIP Properties: Domain: vpc Tags: - Key: Name Value: !Ref Name - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' NATGateway1: Condition: One Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt ElasticIP1.AllocationId SubnetId: !Ref SubnetPublic1 Tags: - Key: Name Value: !Sub "${Name}-NAT-1" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' NATGateway2: Condition: Two Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt ElasticIP2.AllocationId SubnetId: !Ref SubnetPublic2 Tags: - Key: Name Value: !Sub "${Name}-NAT-2" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' NATGateway3: Condition: HasAZ3 Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt ElasticIP3.AllocationId SubnetId: !Ref SubnetPublic3 Tags: - Key: Name Value: !Sub "${Name}-NAT-3" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' PublicRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Ref Name - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' PublicRoute: Type: AWS::EC2::Route DependsOn: AttachGateway Properties: RouteTableId: !Ref PublicRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway PrivateRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub "${Name}-Private-Route-Table" - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' - Key: 'service' Value: 'ROSA' PrivateRoute: Type: AWS::EC2::Route Properties: RouteTableId: !Ref PrivateRouteTable DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !If - One - !Ref NATGateway1 - !If - Two - !Ref NATGateway2 - !If - HasAZ3 - !Ref NATGateway3 - !Ref "AWS::NoValue" PublicSubnetRouteTableAssociation1: Condition: One Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref SubnetPublic1 RouteTableId: !Ref PublicRouteTable PublicSubnetRouteTableAssociation2: Condition: Two Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref SubnetPublic2 RouteTableId: !Ref PublicRouteTable PublicSubnetRouteTableAssociation3: Condition: HasAZ3 Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref SubnetPublic3 RouteTableId: !Ref PublicRouteTable PrivateSubnetRouteTableAssociation1: Condition: One Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref SubnetPrivate1 RouteTableId: !Ref PrivateRouteTable PrivateSubnetRouteTableAssociation2: Condition: Two Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref SubnetPrivate2 RouteTableId: !Ref PrivateRouteTable PrivateSubnetRouteTableAssociation3: Condition: HasAZ3 Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref SubnetPrivate3 RouteTableId: !Ref PrivateRouteTable SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: "Authorize inbound VPC traffic" VpcId: !Ref VPC SecurityGroupIngress: - IpProtocol: -1 FromPort: 0 ToPort: 0 CidrIp: "10.0.0.0/16" SecurityGroupEgress: - IpProtocol: -1 FromPort: 0 ToPort: 0 CidrIp: 0.0.0.0/0 Tags: - Key: Name Value: !Ref Name - Key: 'service' Value: 'ROSA' - Key: 'rosa_managed_policies' Value: 'true' - Key: 'rosa_hcp_policies' Value: 'true' EC2VPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: VpcId: !Ref VPC ServiceName: !Sub "com.amazonaws.${Region}.ec2" PrivateDnsEnabled: true VpcEndpointType: Interface SubnetIds: - !If [One, !Ref SubnetPrivate1, !Ref "AWS::NoValue"] - !If [Two, !Ref SubnetPrivate2, !Ref "AWS::NoValue"] - !If [HasAZ3, !Ref SubnetPrivate3, !Ref "AWS::NoValue"] SecurityGroupIds: - !Ref SecurityGroup KMSVPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: VpcId: !Ref VPC ServiceName: !Sub "com.amazonaws.${Region}.kms" PrivateDnsEnabled: true VpcEndpointType: Interface SubnetIds: - !If [One, !Ref SubnetPrivate1, !Ref "AWS::NoValue"] - !If [Two, !Ref SubnetPrivate2, !Ref "AWS::NoValue"] - !If [HasAZ3, !Ref SubnetPrivate3, !Ref "AWS::NoValue"] SecurityGroupIds: - !Ref SecurityGroup STSVPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: VpcId: !Ref VPC ServiceName: !Sub "com.amazonaws.${Region}.sts" PrivateDnsEnabled: true VpcEndpointType: Interface SubnetIds: - !If [One, !Ref SubnetPrivate1, !Ref "AWS::NoValue"] - !If [Two, !Ref SubnetPrivate2, !Ref "AWS::NoValue"] - !If [HasAZ3, !Ref SubnetPrivate3, !Ref "AWS::NoValue"] SecurityGroupIds: - !Ref SecurityGroup EcrApiVPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: VpcId: !Ref VPC ServiceName: !Sub "com.amazonaws.${Region}.ecr.api" PrivateDnsEnabled: true VpcEndpointType: Interface SubnetIds: - !If [One, !Ref SubnetPrivate1, !Ref "AWS::NoValue"] - !If [Two, !Ref SubnetPrivate2, !Ref "AWS::NoValue"] - !If [HasAZ3, !Ref SubnetPrivate3, !Ref "AWS::NoValue"] SecurityGroupIds: - !Ref SecurityGroup EcrDkrVPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: VpcId: !Ref VPC ServiceName: !Sub "com.amazonaws.${Region}.ecr.dkr" PrivateDnsEnabled: true VpcEndpointType: Interface SubnetIds: - !If [One, !Ref SubnetPrivate1, !Ref "AWS::NoValue"] - !If [Two, !Ref SubnetPrivate2, !Ref "AWS::NoValue"] - !If [HasAZ3, !Ref SubnetPrivate3, !Ref "AWS::NoValue"] SecurityGroupIds: - !Ref SecurityGroup Outputs: VPCId: Description: "VPC Id" Value: !Ref VPC Export: Name: !Sub "${Name}-VPCId" VPCEndpointId: Description: The ID of the VPC Endpoint Value: !Ref S3VPCEndpoint Export: Name: !Sub "${Name}-VPCEndpointId" PublicSubnets: Description: "Public Subnet Ids" Value: !Join [",", [!If [One, !Ref SubnetPublic1, !Ref "AWS::NoValue"], !If [Two, !Ref SubnetPublic2, !Ref "AWS::NoValue"], !If [HasAZ3, !Ref SubnetPublic3, !Ref "AWS::NoValue"]]] Export: Name: !Sub "${Name}-PublicSubnets" PrivateSubnets: Description: "Private Subnet Ids" Value: !Join [",", [!If [One, !Ref SubnetPrivate1, !Ref "AWS::NoValue"], !If [Two, !Ref SubnetPrivate2, !Ref "AWS::NoValue"], !If [HasAZ3, !Ref SubnetPrivate3, !Ref "AWS::NoValue"]]] Export: Name: !Sub "${Name}-PrivateSubnets" EIP1AllocationId: Description: Allocation ID for ElasticIP1 Value: !GetAtt ElasticIP1.AllocationId Export: Name: !Sub "${Name}-EIP1-AllocationId" EIP2AllocationId: Description: Allocation ID for ElasticIP2 Value: !GetAtt ElasticIP2.AllocationId Export: Name: !Sub "${Name}-EIP2-AllocationId" EIP3AllocationId: Condition: HasAZ3 Description: Allocation ID for ElasticIP3 Value: !GetAtt ElasticIP3.AllocationId Export: Name: !Sub "${Name}-EIP3-AllocationId" NatGatewayId: Description: The NAT Gateway IDs Value: !Join [",", [!If [One, !Ref NATGateway1, !Ref "AWS::NoValue"], !If [Two, !Ref NATGateway2, !Ref "AWS::NoValue"], !If [HasAZ3, !Ref NATGateway3, !Ref "AWS::NoValue"]]] Export: Name: !Sub "${Name}-NatGatewayId" InternetGatewayId: Description: The ID of the Internet Gateway Value: !Ref InternetGateway Export: Name: !Sub "${Name}-InternetGatewayId" PublicRouteTableId: Description: The ID of the public route table Value: !Ref PublicRouteTable Export: Name: !Sub "${Name}-PublicRouteTableId" PrivateRouteTableId: Description: The ID of the private route table Value: !Ref PrivateRouteTable Export: Name: !Sub "${Name}-PrivateRouteTableId" EC2VPCEndpointId: Description: The ID of the EC2 VPC Endpoint Value: !Ref EC2VPCEndpoint Export: Name: !Sub "${Name}-EC2VPCEndpointId" KMSVPCEndpointId: Description: The ID of the KMS VPC Endpoint Value: !Ref KMSVPCEndpoint Export: Name: !Sub "${Name}-KMSVPCEndpointId" STSVPCEndpointId: Description: The ID of the STS VPC Endpoint Value: !Ref STSVPCEndpoint Export: Name: !Sub "${Name}-STSVPCEndpointId" EcrApiVPCEndpointId: Description: The ID of the ECR API VPC Endpoint Value: !Ref EcrApiVPCEndpoint Export: Name: !Sub "${Name}-EcrApiVPCEndpointId" EcrDkrVPCEndpointId: Description: The ID of the ECR DKR VPC Endpoint Value: !Ref EcrDkrVPCEndpoint Export: Name: !Sub "${Name}-EcrDkrVPCEndpointId"
选项 | 定义 |
---|---|
--template-dir |
允许您指定模板目录的路径。覆盖 |
--param name | 定义网络的名称。使用自定义模板文件时所需的参数。 |
--param Region | 定义网络的区域。使用自定义模板文件时所需的参数。 |
--param <various> |
可用的参数取决于模板。当模板目录中查找可用参数时,请使用- |
--mode=manual | 提供 AWS 命令以创建网络堆栈。 |
示例
使用常规参数和标志创建基本网络。
$ rosa create network rosa-quickstart-default-vpc --param Tags=key1=value1,key2=value2 --param Name=example-stack --param Region=us-west-2
8.2.3.11. 创建 ocm-role
为集群创建所需的 ocm-role 资源。
语法
$ rosa create ocm-role [flags]
选项 | 定义 |
---|---|
--admin | 为角色启用管理功能。 |
--debug | 启用调试模式。 |
-i,--interactive | 启用交互模式。 |
-m, --mode string | 如何执行操作。有效选项有:
|
--path string | OCM 角色和策略的 ARN 路径。 |
--permissions-boundary string | 用于为 OCM 角色设置权限边界的策略 ARN。 |
--prefix string |
所有生成的 AWS 资源的用户定义前缀。默认值为 |
--profile string | 使用您的凭证文件中的特定 AWS 配置集。 |
-y,--yes | 自动回答 yes 以确认操作。 |
有关使用 rosa create ocm-role
命令创建 OCM 角色的更多信息,请参阅 帐户范围的 IAM 角色和策略引用。
8.2.3.12. 创建 user-role
为集群创建所需的 user-role 资源。
语法
$ rosa create user-role [flags]
选项 | 定义 |
---|---|
--debug | 启用调试模式。 |
-i,--interactive | 启用交互模式。 |
-m, --mode string | 如何执行操作。有效选项有:
|
--path string | 用户角色和策略的 ARN 路径。 |
--permissions-boundary string | 用于为用户角色设置权限边界的策略 ARN。 |
--prefix string |
所有生成的 AWS 资源的用户定义前缀。默认为 |
--profile string | 使用您的凭证文件中的特定 AWS 配置集。 |
-y,--yes | 自动回答 yes 以确认操作。 |
有关使用 rosa create user-role
命令创建的用户角色的更多信息,请参阅了解 AWS 帐户关联。
8.2.4. 其他资源
- 如需支持的 实例类型列表,请参阅 AWS 实例类型。
- 如需创建 集群所需的 IAM 角色列表,请参阅帐户范围的 IAM 角色和策略引用。
- 如需有关 OCM 角色和用户角色的更多信息,请参阅了解 AWS 帐户关联。
- 有关 安全组 要求的信息,请参阅其他自定义安全组。
8.2.5. 编辑对象
本节论述了集群和资源的 edit
命令。
8.2.5.1. 编辑集群
允许对现有集群进行编辑。
语法
$ rosa edit cluster --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--additional-allowed-principals <arn> | 以逗号分隔的额外允许主体 ARN 列表,添加到 Hosted Control Plane 的 VPC 端点服务中,以便自动接受额外的 VPC 端点连接请求。 |
--cluster | 必需:要编辑的集群的名称或 ID (字符串)。 |
--private | 限制主 API 端点直接和专用连接。 |
--enable-delete-protection=true | 启用删除保护功能。 |
--enable-delete-protection=false | 禁用删除保护功能。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
编辑名为 mycluster
的集群使其私有。
$ rosa edit cluster --cluster=mycluster --private
在名为 mycluster
的集群中以交互方式编辑所有集群选项。
$ rosa edit cluster --cluster=mycluster --interactive
8.2.5.2. edit ingress
编辑集群的默认应用程序路由器。
有关编辑非默认应用程序路由器的详情,请参考 其他资源。
语法
$ rosa edit ingress --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:将添加入口的集群的名称或 ID (字符串)。 |
--cluster-routes-hostname | OAuth、控制台和下载的组件路由主机名。 |
--cluster-routes-tls-secret-ref | 用于 OAuth、控制台和下载的组件路由 TLS secret 引用。 |
--excluded-namespaces |
ingress 排除的命名空间。格式是一个以逗号分隔的列表 |
--label-match | ingress 的标签匹配(字符串)。格式必须是用逗号分开的 key=value 对列表。如果没有指定标签,则在两个路由器上都公开所有路由。 |
--lb-type |
Load Balancer 类型。选项是 |
--namespace-ownership-policy |
ingress 的命名空间所有权策略。选项为 |
--private | 将应用程序路由限制为直接、私有连接。 |
--route-selector | ingress 的路由选择器。format 是以逗号分隔的 key=value 列表。如果没有指定标签,则在两个路由器上都公开所有路由。对于旧的入口支持,它们会包括标签,否则它们被视为排除标签。 |
--wildcard-policy |
ingress 的通配符策略。选项是 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
在名为 mycluster
的集群上,创建一个 ID 为 a1b2
的额外入口作为私有连接。
$ rosa edit ingress --private --cluster=mycluster a1b2
使用名为 mycluster
的集群上的 ID a1b2
更新额外入口的路由器选择器。
$ rosa edit ingress --label-match=foo=bar --cluster=mycluster a1b2
使用名为 mycluster
的集群中的子域标识符 应用程序
更新默认入口。
$ rosa edit ingress --private=false --cluster=mycluster apps
更新 apps2
入口的负载均衡器类型。
$ rosa edit ingress --lb-type=nlb --cluster=mycluster apps2
8.2.5.3. 编辑 kubeletconfig
编辑机器池中的自定义 KubeletConfig
对象。
语法
$ rosa edit kubeletconfig --cluster=<cluster_name|cluster_id> --name=<kubeletconfig_name> --pod-pids-limit=<number> [flags]
选项 | 定义 |
---|---|
-c, --cluster <cluster_name>|<cluster_id> |
必需。编辑 |
-i,--interactive | 启用交互模式。 |
--pod-pids-limit <number> |
必需。与 |
--name |
带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA)是必需的。可选 for Red Hat OpenShift Service on AWS,因为集群只有一个 |
-h, --help | 显示此命令的帮助信息。 |
有关为集群设置 PID 限制的更多信息,请参阅配置 PID 限制。
8.2.5.4. edit machinepool
编辑集群中的机器池。
语法
$ rosa edit machinepool --cluster=<cluster_name_or_id> <machinepool_name> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:要编辑额外机器池的集群的名称或 ID (字符串)。 |
--enable-autoscaling |
启用或禁用计算节点的自动扩展。若要启用自动扩展,请使用此参数及 |
--labels | 机器池的标签(字符串)。格式必须是用逗号分开的 key=value 对列表。编辑此值只会影响机器池的新创建的节点,这通过增加节点号创建,而不影响现有节点。此列表会持续覆盖对节点标签所做的任何修改。 |
--kubelet-configs <kubeletconfig_name> |
对于带有托管的 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),任何 |
--max-replicas | 指定启用自动扩展时的最大计算节点数量。 |
--min-replicas | 指定启用自动扩展时的最小计算节点数量。 |
--max-surge |
对于带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),
默认值为 |
--max-unavailable |
对于带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA),
默认值为 |
--node-drain-grace-period | 指定升级或替换机器池时的节点排空宽限期。(仅适用于 HCP 集群的 ROSA。) |
--replicas | 没有配置自动扩展时需要。此机器池的机器数量(整数)。 |
--taints |
机器池的污点。此字符串值应该以逗号分隔的 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
在名为 mycluster
的集群上,设置一个名为 mp1
的机器池上的 4 个副本。
$ rosa edit machinepool --cluster=mycluster --replicas=4 mp1
在名为 mycluster
的集群上,启用名为 mp1
的机器池上的自动扩展。
$ rosa edit machinepool --cluster=mycluster --enable-autoscaling --min-replicas=3 --max-replicas=5 mp1
在名为 mycluster
的集群上,禁用名为 mp1
的机器池上的自动扩展。
$ rosa edit machinepool --cluster=mycluster --enable-autoscaling=false --replicas=3 mp1
在名为 mycluster
的集群上,修改名为 mp1
的机器池上的自动扩展范围。
$ rosa edit machinepool --max-replicas=9 --cluster=mycluster mp1
在带有托管的 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA)上,编辑 mp1
机器池,以在升级过程中添加以下行为:
- 在升级过程中最多可以置备 2 个超额节点。
- 确保在升级过程中没有超过 3 个节点。
$ rosa edit machinepool --cluster=mycluster mp1 --max-surge=2 --max-unavailable=3
将 KubeletConfig
对象与带有 HCP 集群的 ROSA 上的现有 high-pid-pool
机器池关联。
$ rosa edit machinepool -c mycluster --kubelet-configs=set-high-pids high-pid-pool
8.2.6. 其他资源
- 有关编辑非默认应用程序路由器的信息,请参阅配置 Ingress Controller。
8.2.7. 删除对象
本节论述了集群和资源的 delete
命令。
8.2.7.1. 删除管理员
从指定的集群删除集群管理员。
语法
$ rosa delete admin --cluster=<cluster_name> | <cluster_id>
选项 | 定义 |
---|---|
--cluster | 必需:要添加到身份提供程序(IDP)的集群名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
从名为 mycluster
的集群中删除集群管理员。
$ rosa delete admin --cluster=mycluster
8.2.7.2. 删除集群
删除集群。
语法
$ rosa delete cluster --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:要删除的集群的名称或 ID (字符串)。 |
--watch | 监视集群卸载日志。 |
--best-effort |
跳过集群破坏性链中的步骤,这些链中已知会导致集群删除过程失败。您应该谨慎使用这个选项,建议您在使用 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--yes |
自动回答 |
例子
删除名为 mycluster
的集群。
$ rosa delete cluster --cluster=mycluster
8.2.7.3. 删除 external-auth-provider
从集群中删除外部身份验证供应商。
语法
$ rosa delete external-auth-provider <name_of_external_auth_provider> --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需。集群的名称或 ID 字符串将从外部身份验证供应商从中删除。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集字符串。 |
--yes |
自动回答 |
示例
从名为 mycluster
的集群中删除名为 exauth-1
的身份供应商。
$ rosa delete external-auth-provider exauth-1 --cluster=mycluster
8.2.7.4. 删除 idp
从集群中删除特定的身份提供程序 (IDP)。
语法
$ rosa delete idp --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:删除 IDP 的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--yes |
自动回答 |
示例
从名为 mycluster
的集群中删除名为 github
的身份供应商。
$ rosa delete idp github --cluster=mycluster
8.2.7.5. 删除入口
从集群中删除非默认应用程序路由器(入口)。
语法
$ rosa delete ingress --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:要删除入口的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--yes |
自动回答 |
例子
从名为 mycluster
的集群中删除 ID 为 a1b2
的 ingress。
$ rosa delete ingress --cluster=mycluster a1b2
从名为 mycluster
的集群中删除子域名称 apps2
的二级入口。
$ rosa delete ingress --cluster=mycluster apps2
8.2.7.6. 删除 kubeletconfig
从集群中删除自定义 KubeletConfig
对象。
语法
$ rosa delete kubeletconfig --cluster=<cluster_name|cluster_id> [flags]
选项 | 定义 |
---|---|
-c, --cluster <cluster_name>|<cluster_id> |
必需。要删除 |
-h, --help | 显示此命令的帮助信息。 |
--name |
带有托管 control plane (HCP)集群的 Red Hat OpenShift Service on AWS (ROSA)是必需的。可选 for Red Hat OpenShift Service on AWS,因为集群只有一个 |
-y,--yes |
自动回答 |
8.2.7.7. delete machinepool
从集群中删除机器池。
语法
$ rosa delete machinepool --cluster=<cluster_name> | <cluster_id> <machine_pool_id>
选项 | 定义 |
---|---|
--cluster | 必需:将从中删除机器池的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--interactive | 启用交互模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--yes |
自动回答 |
示例
从名为 mycluster
的集群中删除 ID 为 mp-1
的机器池。
$ rosa delete machinepool --cluster=mycluster mp-1
8.2.8. 安装和卸载附加组件
本节论述了如何在集群中安装和卸载 Red Hat managed service add-ons。
8.2.8.1. 安装附加组件
在集群上安装受管服务附加组件。
语法
$ rosa install addon --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:安装附加组件的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 使用您的凭据文件中的特定 AWS 配置集(字符串)。 |
--yes |
自动回答 |
示例
将 dbaas-operator
附加组件安装添加到名为 mycluster
的集群。
$ rosa install addon --cluster=mycluster dbaas-operator
8.2.8.2. 卸载附加组件
从集群中删除受管服务附加组件。
语法
$ rosa uninstall addon --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:将从中卸载附加组件的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 使用您的凭据文件中的特定 AWS 配置集(字符串)。 |
--yes |
自动回答 |
示例
从名为 mycluster
的集群中删除 dbaas-operator
附加组件安装。
$ rosa uninstall addon --cluster=mycluster dbaas-operator
8.2.9. 列出和描述对象
本节介绍了集群和资源的 list
和 describe
命令。
8.2.9.1. 列出附加组件
列出受管服务附加组件安装。
语法
$ rosa list addons --cluster=<cluster_name> | <cluster_id>
选项 | 定义 |
---|---|
--cluster | 必需:要列出附加组件的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
8.2.9.2. 列出 breakinitial 凭证
列出集群的所有中断特征凭据。
语法
$ rosa list break-glass-credential [arguments]
选项 | 定义 |
---|---|
--cluster <cluster_name>|<cluster_id> | 必需。添加了 break visualization 凭据的集群的名称或 ID。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出名为 mycluster
的集群的所有 breaktra credentials。
$ rosa list break-glass-credential --cluster=mycluster
8.2.9.3. 列出集群
列出所有集群。
语法
$ rosa list clusters [arguments]
选项 | 定义 |
---|---|
--count |
要显示的集群数量(整数)。默认: |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
8.2.9.4. 列出 external-auth-provider
列出集群的任何外部身份验证供应商。
语法
$ rosa list external-auth-provider --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:列出外部身份验证供应商的集群的名称或 ID 字符串。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集字符串。 |
示例
列出名为 mycluster
的集群的任何外部身份验证供应商。
$ rosa list external-auth-provider --cluster=mycluster
8.2.9.5. list idps
列出集群的所有身份提供程序 (IDP)。
语法
$ rosa list idps --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:为其列出 IDP 的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出名为 mycluster
的集群的所有身份提供程序 (IDP)。
$ rosa list idps --cluster=mycluster
8.2.9.6. 列出 ingresses
列出集群的所有 API 和入口端点。
语法
$ rosa list ingresses --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:为其列出 IDP 的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出名为 mycluster
的集群的所有 API 和入口端点。
$ rosa list ingresses --cluster=mycluster
8.2.9.7. list instance-types
列出用于 ROSA 的所有可用实例类型。可用性基于帐户的 AWS 配额。
语法
$ rosa list instance-types [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--output |
输出格式。允许的格式是 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出所有实例类型。
$ rosa list instance-types
8.2.9.8. 列出 kubeletconfigs
列出集群中配置的 KubeletConfig
对象。
语法
$ rosa list kubeletconfigs --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:列出机器池用于的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
示例
列出名为 mycluster
的集群上所有 KubeletConfig
对象。
$ rosa list kubeletconfigs --cluster=mycluster
8.2.9.9. list machinepools
列出集群上配置的机器池。
语法
$ rosa list machinepools --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:列出机器池用于的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出名为 mycluster
的集群中的所有机器池。
$ rosa list machinepools --cluster=mycluster
8.2.9.10. 列出区域
列出当前 AWS 帐户的所有可用区域。
语法
$ rosa list regions [arguments]
选项 | 定义 |
---|---|
--multi-az | 列出为多个可用区支持的区域。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出所有可用区域。
$ rosa list regions
8.2.9.11. 列出升级
列出所有可用的和已调度的集群版本升级。
语法
$ rosa list upgrades --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:列出可用升级的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出名为 mycluster
的集群的所有可用升级。
$ rosa list upgrades --cluster=mycluster
8.2.9.12. 列出用户
列出指定集群的集群管理员和专用管理员用户。
语法
$ rosa list users --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:集群管理员要列出的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出名为 mycluster
的集群的所有集群管理员和专用管理员。
$ rosa list users --cluster=mycluster
8.2.9.13. 列出版本
列出所有可用于创建集群的 OpenShift 版本。
语法
$ rosa list versions [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
列出所有 OpenShift Container Platform 版本。
$ rosa list versions
8.2.9.14. 描述管理员
显示指定 cluster-admin
用户以及要登录到集群的命令的详细信息。
语法
$ rosa describe admin --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需: cluster-admin 所属集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
描述名为 mycluster
的集群的 cluster-admin
用户。
$ rosa describe admin --cluster=mycluster
8.2.9.15. 描述附加组件
显示托管服务附加组件的详细信息。
语法
$ rosa describe addon <addon_id> | <addon_name> [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
描述名为 dbaas-operator
的附加组件。
$ rosa describe addon dbaas-operator
8.2.9.16. 描述 breakinitial 凭证
显示特定集群的 breaktra credential 的详细信息。
语法
$ rosa describe break-glass-credential --id=<break_glass_credential_id> --cluster=<cluster_name>| <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:集群的名称或 ID (字符串)。 |
--id | 必需: breakinitial 凭证的 ID (字符串)。 |
--kubeconfig | 可选:从 break visualization 凭证中删除 kubeconfig。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
8.2.9.17. 描述集群
显示集群的详情。
语法
$ rosa describe cluster --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--get-role-policy-bindings | 列出附加到分配给集群的 STS 角色的策略。 |
示例
描述名为 mycluster
的集群。
$ rosa describe cluster --cluster=mycluster
8.2.9.18. 描述 kubeletconfig
显示自定义 KubeletConfig
对象的详情。
语法
$ rosa describe kubeletconfig --cluster=<cluster_name|cluster_id> [flags]
选项 | 定义 |
---|---|
-c, --cluster <cluster_name>|<cluster_id> |
必需。您要查看 |
-h, --help | 显示此命令的帮助信息。 |
--name |
可选。指定要描述的 |
-o, --output string | -o, --output string |
8.2.9.19. 描述 machinepool
描述在集群中配置的特定机器池。
语法
$ rosa describe machinepool --cluster=[<cluster_name>|<cluster_id>] --machinepool=<machinepool_name> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:集群的名称或 ID (字符串)。 |
--machinepool | 必需: machinepool 的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
描述名为 mycluster
的集群上名为 mymachinepool
的机器池。
$ rosa describe machinepool --cluster=mycluster --machinepool=mymachinepool
8.2.10. 撤销对象
本节论述了集群和资源的 revoke
命令。
8.2.10.1. revoke-break-glass-credential
从启用了外部身份验证的指定的托管 control plane 集群中撤销所有 breakcommands 凭证。
语法
$ rosa revoke break-glass-credential --cluster=<cluster_name> | <cluster_id>
选项 | 定义 |
---|---|
--cluster | 必需:将删除中断凭证的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
--yes |
自动回答 |
示例
从名为 mycluster
的集群中撤销 breakinitial 凭据。
$ rosa revoke break-glass-credential --cluster=mycluster
8.2.11. 升级和删除对象的升级
本节论述了对象的 upgrade
命令用法。
8.2.11.1. 升级集群
调度集群升级。
语法
$ rosa upgrade cluster --cluster=<cluster_name> | <cluster_id> [arguments]
选项 | 定义 |
---|---|
--cluster | 必需:要调度升级的集群的名称或 ID (字符串)。 |
--interactive | 启用交互模式。 |
--version | 集群要升级到的 OpenShift Container Platform 的版本(字符串)。 |
--schedule-date |
升级将在协调通用时间(UTC)中指定的时间运行时的下一个日期(字符串)。格式: |
--schedule-time |
下次升级将在 Coordinated Universal Time (UTC)中的指定日期上运行。格式: |
--node-drain-grace-period [1] |
设置一个宽限期(字符串),以便在升级过程中遵守 pod 中断预算保护的工作负载的时间。在此宽限期后,任何无法从节点成功排空的 pod 中断预算保护的所有工作负载都会强制被驱除。默认: |
--control-plane [2] | 升级集群的托管 control plane。 |
- 仅限经典集群
- 仅限使用 HCP 集群的 ROSA
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
例子
在名为 mycluster
的集群上以交互方式调度升级。
$ rosa upgrade cluster --cluster=mycluster --interactive
在名为 mycluster
的集群上,在小时内调度集群升级。
$ rosa upgrade cluster --cluster=mycluster --version 4.5.20
8.2.11.2. 删除集群升级
取消调度的集群升级。
语法
$ rosa delete upgrade --cluster=<cluster_name> | <cluster_id>
选项 | 定义 |
---|---|
--cluster | 必需:将取消升级的集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--yes |
自动回答 |
8.2.11.3. 升级 machinepool
升级在使用 HCP 集群的 ROSA 上配置的特定机器池。
machinepools 的 upgrade
命令只适用于 HCP 集群的 ROSA。
语法
$ rosa upgrade machinepool --cluster=<cluster_name> <machinepool_name>
选项 | 定义 |
---|---|
--cluster | 必需:集群的名称或 ID (字符串)。 |
--schedule-date |
升级将在协调通用时间(UTC)中指定的时间运行时的下一个日期(字符串)。格式: |
--schedule-time |
下次升级将在 Coordinated Universal Time (UTC)中的指定日期上运行。格式: |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
在名为 mycluster
的集群上升级机器池。
$ rosa upgrade machinepool --cluster=mycluster
8.2.11.4. delete machinepool upgrade
取消调度的 machinepool 升级。
语法
$ rosa delete upgrade --cluster=<cluster_name> <machinepool_name>
选项 | 定义 |
---|---|
--cluster | 必需:集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
8.2.11.5. 升级角色
升级在集群中配置的角色。
语法
$ rosa upgrade roles --cluster=<cluster_id>
选项 | 定义 |
---|---|
--cluster | 必需:集群的名称或 ID (字符串)。 |
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
示例
升级名为 mycluster
的集群上的角色。
$ rosa upgrade roles --cluster=mycluster