4.2. 管理计算节点
本文档论述了如何使用 Red Hat OpenShift Service on AWS 管理计算(也称为 worker)节点。
机器池中配置了计算节点的大部分更改。机器池是集群中有相同配置的计算节点的一组计算节点,提供轻松管理。
您可以编辑机器池配置选项,如扩展、添加节点标签和添加污点。
4.2.1. 创建机器池 复制链接链接已复制到粘贴板!
在安装 Red Hat OpenShift Service on AWS 集群时会创建一个机器池。安装后,您可以使用 OpenShift Cluster Manager 或 ROSA 命令行界面(CLI) (rosa
)为集群创建额外的机器池。
对于 rosa
版本 1.2.25 及更早的版本的用户,创建的机器池会标识为 Default
。对于 rosa
版本 1.2.26 及之后的版本的用户,与集群一起创建的机器池被识别为 worker
。
4.2.1.1. 使用 OpenShift Cluster Manager 创建机器池 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Cluster Manager 为 Red Hat OpenShift Service on AWS 集群创建额外的机器池。
先决条件
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
流程
- 进入到 OpenShift Cluster Manager 并选择您的集群。
- 在 Machine pool 选项卡下,点 Add machine pool。
- 添加机器池名称。
从列表中选择 Compute 节点实例类型。实例类型定义机器池中各个计算节点的 vCPU 和内存分配。
注意在创建池后,您无法更改机器池的实例类型。
可选:为机器池配置自动扩展:
- 选择 Enable autoscaling 以自动扩展机器池中的机器数量,以满足部署需求。
设置自动扩展的最小和最大节点数限值。集群自动扩展不会减少或增加机器池节点数超过您指定的限制。
注意另外,您可以在创建机器池后为机器池设置自动扩展首选项。
- 如果没有启用自动扩展,请从下拉菜单中选择 Compute 节点数。这定义了置备到可用区的机器池的计算节点数量。
- 可选:配置 Root 磁盘大小。
可选:为您的机器池添加节点标签和污点:
- 展开 Edit node labels and taints 菜单。
- 在 Node labels 下,为您的节点标签添加 Key 和 Value 项。
在 Taints 下,为您的污点添加 Key 和 Value 条目。
注意只有集群已至少有一个没有污点的机器池时,才能创建带有污点的机器池。
对于每个污点,从下拉菜单中选择 Effect。可用选项包括
NoSchedule
、PreferNoSchedule
和NoExecute
。注意另外,您可以在创建机器池后添加节点标签和污点。
可选:选择用于此机器池中节点的附加自定义安全组。您必须已创建了安全组,并将其与您为这个集群选择的 VPC 关联。您无法在创建机器池后添加或编辑安全组。
重要对于 Red Hat OpenShift Service on AWS 集群上的机器池,可以使用最多 10 个额外的安全组。
- 点 Add machine pool 创建机器池。
验证
- 验证机器池页面中是否存在 机器池,配置是如预期的。
4.2.1.2. 使用 ROSA CLI 创建机器池 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa
)为 Red Hat OpenShift Service on AWS 集群创建额外的机器池。
先决条件
- 您已在工作站上安装和配置了最新的 ROSA CLI。
- 使用 ROSA CLI 登录您的红帽帐户。
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
流程
要添加不使用自动扩展的机器池,请创建机器池,并定义实例类型、计算(也称为 worker)节点数和节点标签:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
--name=<machine_pool_id>
- 指定机器池的名称。
--replicas=<replica_count>
-
指定要置备的计算节点数量。如果您使用一个可用区部署 Red Hat OpenShift Service on AWS,这定义了置备到区域的机器池的计算节点数量。如果您使用多个可用区部署集群,这会定义在所有区中要置备的计算节点数量,计数必须是 3。在没有配置自动扩展时,需要
--replicas
参数。 --instance-type=<instance_type>
-
可选:为您的机器池中的计算节点设置实例类型。实例类型定义池中各个计算节点的 vCPU 和内存分配。将
<instance_type>
替换为实例类型。默认值为m5.xlarge
。在创建池后,您无法更改机器池的实例类型。 --labels=<key>=<value>,<key>=<value>
-
可选:定义机器池的标签。将
<key>=<value>,<key>=<value>
替换为以逗号分隔的键-值对,例如--labels=key1=value1,key2=value2
。 --taints=<key>=<value>:<effect>,<key>=<value>:<effect>
-
可选:定义机器池的污点。使用每个污点的实际的 key, value, 和 effect 替换 Replace
<key>=<value>:<effect>,<key>=<value>:<effect>
,例如--taints=key1=value1:NoSchedule,key2=value2:NoExecute
。可用效果包括NoSchedule
、PreferNoSchedule
和NoExecute
。 --disk-size=<disk_size>
-
可选:指定 worker 节点磁盘大小。该值可以是 GB、GiB、TB 或 TiB。将
<disk_size
> 替换为数字值和单位,如 example-disk-size=200GiB
。 --availability-zone=<availability_zone_name>
-
可选:您可以在您选择的可用区创建机器池。将
<availability_zone_name
> 替换为可用区名称。 --additional-security-group-ids <sec_group_id>
可选: 对于没有 Red Hat managed VPC 的集群中的机器池,您可以选择要在机器池中使用的其他自定义安全组。您必须已创建了安全组,并将其与您为这个集群选择的 VPC 关联。您无法在创建机器池后添加或编辑安全组。
重要对于 Red Hat OpenShift Service on AWS 集群上的机器池,可以使用最多 10 个额外的安全组。
--subnet <subnet_id>
可选: 对于 BYO VPC 集群,您可以选择子网来创建 Single-AZ 机器池。如果子网没有集群创建子网,则必须有一个带有键
kubernetes.io/cluster/<infra-id
> 且值为shared
的标签。客户可以使用以下命令获取 Infra ID:rosa describe cluster -c <cluster name>|grep "Infra ID:"
$ rosa describe cluster -c <cluster name>|grep "Infra ID:"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Infra ID: mycluster-xqvj7
Infra ID: mycluster-xqvj7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您不能同时设置--
subnet
和--availability-zone
,在 Single-AZ 机器池创建时只允许 1。
以下示例创建一个名为
mymachinepool
的机器池,它使用m5.xlarge
实例类型并具有 2 个计算节点副本。这个示例还添加了 2 个特定于工作负载的标签:rosa create machinepool --cluster=mycluster --name=mymachinepool --replicas=2 --instance-type=m5.xlarge --labels=app=db,tier=backend
$ rosa create machinepool --cluster=mycluster --name=mymachinepool --replicas=2 --instance-type=m5.xlarge --labels=app=db,tier=backend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Machine pool 'mymachinepool' created successfully on cluster 'mycluster' I: To view all machine pools, run 'rosa list machinepools -c mycluster'
I: Machine pool 'mymachinepool' created successfully on cluster 'mycluster' I: To view all machine pools, run 'rosa list machinepools -c mycluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要添加使用自动扩展的机器池,请创建机器池,并定义自动扩展配置、实例类型和节点标签:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
--name=<machine_pool_id>
-
指定机器池的名称。将
<machine_pool_id>
替换为机器池的名称。 --enable-autoscaling
- 在机器池中启用自动扩展来满足部署需求。
--min-replicas=<minimum_replica_count>
and--max-replicas=<maximum_replica_count>
定义最小和最大计算节点限值。集群自动扩展不会减少或增加机器池节点数超过您指定的限制。
--min-replicas
和--max-replicas
参数在可用区的机器池中定义自动扩展限制。--instance-type=<instance_type>
-
可选:为您的机器池中的计算节点设置实例类型。实例类型定义池中各个计算节点的 vCPU 和内存分配。将
<instance_type>
替换为实例类型。默认值为m5.xlarge
。在创建池后,您无法更改机器池的实例类型。 --labels=<key>=<value>,<key>=<value>
-
可选:定义机器池的标签。将
<key>=<value>,<key>=<value>
替换为以逗号分隔的键-值对,例如--labels=key1=value1,key2=value2
。 --taints=<key>=<value>:<effect>,<key>=<value>:<effect>
-
可选:定义机器池的污点。使用每个污点的实际的 key, value, 和 effect 替换 Replace
<key>=<value>:<effect>,<key>=<value>:<effect>
,例如--taints=key1=value1:NoSchedule,key2=value2:NoExecute
。可用效果包括NoSchedule
、PreferNoSchedule
和NoExecute
。 --availability-zone=<availability_zone_name>
-
可选:您可以在您选择的可用区创建机器池。将
<availability_zone_name
> 替换为可用区名称。
以下示例创建一个名为
mymachinepool
的机器池,它使用m5.xlarge
实例类型并启用自动扩展。最少的计算节点限值为 3,最大为 6 个。这个示例还添加了 2 个特定于工作负载的标签:rosa create machinepool --cluster=mycluster --name=mymachinepool --enable-autoscaling --min-replicas=3 --max-replicas=6 --instance-type=m5.xlarge --labels=app=db,tier=backend
$ rosa create machinepool --cluster=mycluster --name=mymachinepool --enable-autoscaling --min-replicas=3 --max-replicas=6 --instance-type=m5.xlarge --labels=app=db,tier=backend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Machine pool 'mymachinepool' created successfully on hosted cluster 'mycluster' I: To view all machine pools, run 'rosa list machinepools -c mycluster'
I: Machine pool 'mymachinepool' created successfully on hosted cluster 'mycluster' I: To view all machine pools, run 'rosa list machinepools -c mycluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要将 Windows License Included 的机器池添加到 Red Hat OpenShift Service on AWS 集群中,请参阅为 AWS 上的 Red Hat OpenShift Service 包括的 AWS Windows License。
只有在满足以下条件时,才能创建 Windows License 包括的机器池:
- 主机集群是一个 Red Hat OpenShift Service on AWS 集群。
实例类型是裸机 EC2。
重要用于 Red Hat OpenShift Service on AWS 的 AWS Windows 许可证只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
验证
您可以列出集群中的所有机器池,或描述独立的机器池。
列出集群中可用的机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR Default No 1/1 m5. xlarge us-east-2c subnet-00552ad67728a6ba3 4.14.34 Yes mymachinepool Yes 3/3-6 m5.xlarge app=db, tier=backend us-east-2a subnet-0cb56f5f41880c413 4.14.34 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR Default No 1/1 m5. xlarge us-east-2c subnet-00552ad67728a6ba3 4.14.34 Yes mymachinepool Yes 3/3-6 m5.xlarge app=db, tier=backend us-east-2a subnet-0cb56f5f41880c413 4.14.34 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 描述集群中特定机器池的信息:
rosa describe machinepool --cluster=<cluster_name> --machinepool=mymachinepool
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=mymachinepool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证机器池已包含在输出中,并且配置符合预期。
4.2.2. 配置机器池磁盘卷 复制链接链接已复制到粘贴板!
可以配置机器池磁盘卷大小,以获得更大的灵活性。默认磁盘大小为 300 GiB。
对于 Red Hat OpenShift Service on AWS 集群,磁盘大小可以从最小 75 GiB 配置为最多 16,384 GiB。
您可以使用 OpenShift Cluster Manager 或 ROSA 命令行界面(CLI) (rosa
)为集群配置机器池磁盘大小。
无法调整现有集群和机器池节点卷的大小。
集群创建的先决条件
- 您可以选择在集群安装过程中为默认机器池选择节点磁盘大小。
集群创建过程
- 在 Red Hat OpenShift Service on AWS 集群向导中导航到 Cluster settings。
- 进入 Machine pool 步骤。
- 选择所需的 Root 磁盘大小。
- 选择 Next 以继续创建集群。
创建机器池的先决条件
- 您可以选择在安装集群后为新机器池选择节点磁盘大小。
创建机器池的步骤
- 进入到 OpenShift Cluster Manager 并选择您的集群。
- 导航到 Machine pool 选项卡。
- 点 Add machine pool。
- 选择所需的 Root 磁盘大小。
- 选择 Add machine pool 来创建机器池。
4.2.2.1. 使用 ROSA CLI 配置机器池磁盘卷 复制链接链接已复制到粘贴板!
集群创建的先决条件
- 您可以选择在集群安装过程中为默认机器池选择根磁盘大小。
集群创建过程
在为所需的根磁盘大小创建 OpenShift 集群时运行以下命令:
rosa create cluster --worker-disk-size=<disk_size>
$ rosa create cluster --worker-disk-size=<disk_size>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该值可以是 GB、GiB、TB 或 TiB。将
<disk_size
> 替换为数字值和单位,如--worker-disk-size=200GiB
。您不能分隔数字和单元。不允许有空格。
创建机器池的先决条件
- 您可以选择在安装集群后为新机器池选择根磁盘大小。
创建机器池的步骤
执行以下命令扩展集群:
rosa create machinepool --cluster=<cluster_id> \ --disk-size=<disk_size>
$ rosa create machinepool --cluster=<cluster_id> \
1 --disk-size=<disk_size>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 通过登录到 AWS 控制台并找到 EC2 虚拟机根卷大小,确认新的机器池磁盘大小。
4.2.3. 删除机器池 复制链接链接已复制到粘贴板!
如果您的工作负载要求已更改,当前机器池已不再满足您的需要,则可以删除机器池。
您可以使用 Red Hat OpenShift Cluster Manager 或 ROSA 命令行界面(CLI) (rosa
)删除机器池。
4.2.3.1. 使用 OpenShift Cluster Manager 删除机器池 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Cluster Manager 删除 Red Hat OpenShift Service on AWS 集群的机器池。
先决条件
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 集群处于 ready 状态。
- 您有一个没有污点的机器池,至少有两个用于单个 AZ 集群或用于多个 AZ 集群的三个实例。
流程
- 在 OpenShift Cluster Manager 中,导航到 Cluster List 页面,再选择包含您要删除的机器池的集群。
- 在所选集群中,选择 Machine pool 选项卡。
-
在 Machine pool 选项卡中,点您要删除的机器池的 Options 菜单
。
点击 Delete。
所选机器池已删除。
4.2.3.2. 使用 ROSA CLI 删除机器池 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa
)删除 Red Hat OpenShift Service on AWS 集群的机器池。
对于 rosa
版本 1.2.25 及更早的版本的用户,创建的机器池(ID='Default')不能被删除。对于 rosa
版本 1.2.26 及更高版本的用户,如果集群中的一个机器池没有污点,则创建的机器池(ID='worker')可以被删除。
先决条件
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 集群处于 ready 状态。
- 您有一个没有污点的机器池,并且至少有两个实例用于 Single-AZ 集群,或三个实例用于 Multi-AZ 集群。
流程
在 ROSA CLI 中运行以下命令:
rosa delete machinepool -c=<cluster_name> <machine_pool_ID>
$ rosa delete machinepool -c=<cluster_name> <machine_pool_ID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
? Are you sure you want to delete machine pool <machine_pool_ID> on cluster <cluster_name>? (y/N)
? Are you sure you want to delete machine pool <machine_pool_ID> on cluster <cluster_name>? (y/N)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入
y
删除机器池。所选机器池已删除。
4.2.4. 手动扩展计算节点 复制链接链接已复制到粘贴板!
如果您还没有为机器池启用自动扩展,您可以手动扩展池中计算(也称为 worker)节点的数量来满足部署需求。
您必须单独扩展每个机器池。
先决条件
-
您已在工作站上安装和配置了最新的 ROSA 命令行界面(CLI) (
rosa
)。 - 使用 ROSA CLI 登录您的红帽帐户。
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个现有的机器池。
流程
列出集群中的机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES DISK SIZE SG IDs default No 2 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2 mp1 No 2 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES DISK SIZE SG IDs default No 2 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2 mp1 No 2 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 增加或减少机器池中的计算节点副本数量:
rosa edit machinepool --cluster=<cluster_name> \ --replicas=<replica_count> \ <machine_pool_id>
$ rosa edit machinepool --cluster=<cluster_name> \ --replicas=<replica_count> \
1 <machine_pool_id>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出集群中可用的机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES DISK SIZE SG IDs default No 2 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2 mp1 No 3 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES DISK SIZE SG IDs default No 2 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2 mp1 No 3 m5.xlarge us-east-1a 300GiB sg-0e375ff0ec4a6cfa2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在上一命令的输出中,验证机器池的计算节点副本数是否如预期。在示例输出中,
mp1
机器池的计算节点副本数已扩展到 3。
4.2.5. 节点标签 复制链接链接已复制到粘贴板!
标签是应用于 Node
对象的键值对。您可以使用标签来组织一组对象,并控制 pod 的调度。
您可以在集群创建过程中或之后添加标签。标签可以随时修改或更新。
4.2.5.1. 在机器池中添加节点标签 复制链接链接已复制到粘贴板!
随时为计算(也称为 worker)节点添加或编辑标签,以便以与您的相关方式管理节点。例如,您可以将工作负载的类型分配给特定的节点。
标签以一个键值对的形式进行分配。对于其分配到的对象,每个键需要是唯一的。
先决条件
-
您已在工作站上安装和配置了最新的 ROSA 命令行界面(CLI) (
rosa
)。 - 使用 ROSA CLI 登录您的红帽帐户。
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个现有的机器池。
流程
列出集群中的机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为机器池添加或更新节点标签:
要为不使用自动扩展的机器池添加或更新节点标签,请运行以下命令:
rosa edit machinepool --cluster=<cluster_name> \ --labels=<key>=<value>,<key>=<value> \ <machine_pool_id>
$ rosa edit machinepool --cluster=<cluster_name> \ --labels=<key>=<value>,<key>=<value> \
1 <machine_pool_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<key>=<value>,<key>=<value>
替换为以逗号分隔的键-值对,例如--labels=key1=value1,key2=value2
。此列表会持续覆盖对节点标签所做的任何修改。
以下示例将标签添加到
db-nodes-mp
机器池:rosa edit machinepool --cluster=mycluster --replicas=2 --labels=app=db,tier=backend db-nodes-mp
$ rosa edit machinepool --cluster=mycluster --replicas=2 --labels=app=db,tier=backend db-nodes-mp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用新标签描述机器池的详情:
rosa describe machinepool --cluster=<cluster_name> --machinepool=<machine-pool-name>
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machine-pool-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证您的机器池在输出中是否包含这些标签。
4.2.6. 为机器池添加标签 复制链接链接已复制到粘贴板!
您可以在机器池中为计算节点(也称为 worker 节点)添加标签,以引入在置备机器池时生成的 AWS 资源的自定义用户标签,请注意您在创建机器池后您无法编辑标签。
4.2.6.1. 使用 ROSA CLI 向机器池添加标签 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa
)为 Red Hat OpenShift Service on AWS 集群添加标签。创建机器池后,您无法编辑标签。
您必须确保您的标签键不是 aws
、red-hat-managed
、red-hat-clustertype
或 Name
。另外,不得设置以 kubernetes.io/cluster/
开头的标签键。您的标签的密钥不能超过 128 个字符,而您的标签的值不能超过 256 个字符。红帽保留以后添加其他保留标签的权利。
先决条件
-
在您的工作站上安装和配置了最新的 AWS (
aws
)、ROSA (rosa
) 和 OpenShift (oc
) CLI。 - 使用 ROSA CLI 登录您的红帽帐户。
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
流程
运行以下命令,创建带有自定义标签的机器池:
rosa create machinepools --cluster=<name> --replicas=<replica_count> \ --name <mp_name> --tags='<key> <value>,<key> <value>'
$ rosa create machinepools --cluster=<name> --replicas=<replica_count> \ --name <mp_name> --tags='<key> <value>,<key> <value>'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<key> <value>,<key>
; <value> 替换为每个标签的键和值。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用
describe
命令查看带有标签的机器池的详情,并验证输出中是否包含您的机器池的标签:rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.7. 为机器池添加污点 复制链接链接已复制到粘贴板!
您可以为机器池中的计算(也称为 worker)节点添加污点,以控制哪些 pod 调度到它们。将污点应用到机器池时,调度程序无法将 pod 放置到池中节点上,除非 pod 规格包含污点的容限。污点可以使用 Red Hat OpenShift Cluster Manager 或 ROSA 命令行界面(CLI) (rosa
)添加到机器池中。
集群必须至少有一个不包含任何污点的机器池。
4.2.7.1. 使用 OpenShift Cluster Manager 为机器池添加污点 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Cluster Manager 为 Red Hat OpenShift Service on AWS 集群添加污点。
先决条件
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个机器池,它不包含任何污点,至少包含两个实例。
流程
- 进入到 OpenShift Cluster Manager 并选择您的集群。
-
在 Machine pool 选项卡中,点您要向其添加污点的机器池的 Options 菜单
。
- 选择 Edit taint。
- 为您的污点添加 Key 和 Value 条目。
-
从列表中选择污点的 Effect。可用选项包括
NoSchedule
、PreferNoSchedule
和NoExecute
。 - 可选:如果要向机器池添加更多污点,请选择 Add taint。
- 点 Save 将污点应用到机器池。
验证
- 在 Machine pool 选项卡中,选择机器池旁边的 > 来扩展视图。
- 验证您的污点是否在展开的视图中的 Taints 下列出。
4.2.7.2. 使用 ROSA CLI 为机器池添加污点 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (CLI)为 Red Hat OpenShift Service on AWS 集群添加污点。
对于 rosa
版本 1.2.25 及更早的版本的用户,在与集群创建的机器池(ID=Default
)中无法更改污点数量。对于 rosa
版本 1.2.26 及更高版本的用户,可以在与集群创建的机器池(ID=worker
)内更改污点数量。必须至少有一个没有污点的机器池,且至少有两个副本。
先决条件
-
在您的工作站上安装和配置了最新的 AWS (
aws
)、ROSA (rosa
) 和 OpenShift (oc
) CLI。 -
使用
rosa
CLI 登录您的红帽帐户。 - 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个机器池,它不包含任何污点,至少包含两个实例。
流程
运行以下命令列出集群中的机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为机器池添加或更新污点:
要为不使用自动扩展的机器池添加或更新污点,请运行以下命令:
rosa edit machinepool --cluster=<cluster_name> \ --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \ <machine_pool_id>
$ rosa edit machinepool --cluster=<cluster_name> \ --taints=<key>=<value>:<effect>,<key>=<value>:<effect> \
1 <machine_pool_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用每个污点的实际的 key, value, 和 effect 替换 Replace
<key>=<value>:<effect>,<key>=<value>:<effect>
,例如--taints=key1=value1:NoSchedule,key2=value2:NoExecute
。可用效果包括NoSchedule
、PreferNoSchedule
和NoExecute
。此列表会持续覆盖对节点污点所做的任何修改。
以下示例将污点添加到
db-nodes-mp
机器池:rosa edit machinepool --cluster=mycluster --replicas 2 --taints=key1=value1:NoSchedule,key2=value2:NoExecute db-nodes-mp
$ rosa edit machinepool --cluster=mycluster --replicas 2 --taints=key1=value1:NoSchedule,key2=value2:NoExecute db-nodes-mp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
描述带有新污点的机器池详情:
rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证您的机器池是否包含在输出中。
4.2.8. 配置机器池 AutoRepair 复制链接链接已复制到粘贴板!
Red Hat OpenShift Service on AWS 支持自动修复机器池,称为 AutoRepair。当您希望 Red Hat OpenShift Service on AWS 服务检测到某些不健康节点时,自动修复很有用,排空不健康的节点,并重新创建节点。如果不应替换不健康的节点,您可以禁用 AutoRepair,例如在节点被保留的情况下。在机器池中默认启用 AutoRepair。
当节点的状态为 NotReady
或处于未知状态(通常为 8 分钟)时,自动修复过程会取消节点不健康。每当两个或多个节点同时变为不健康时,自动修复过程将停止修复节点。同样,当新节点创建不健康时,即使在预定义的时间(通常为 20 分钟)后,该服务会自动修复。
机器池 AutoRepair 仅适用于 Red Hat OpenShift Service on AWS 集群。
4.2.8.1. 使用 OpenShift Cluster Manager 在机器池上配置 AutoRepair 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Cluster Manager 为 Red Hat OpenShift Service on AWS 集群配置机器池 AutoRepair。
先决条件
- 您创建了带有 HCP 集群的 ROSA。
- 您有一个现有的机器池。
流程
- 进入到 OpenShift Cluster Manager 并选择您的集群。
-
在 Machine pool 选项卡中,点您要为其配置自动修复的机器池的 Options 菜单
。
- 从菜单中,选择 Edit。
- 从显示的 Edit Machine Pool 对话框中,找到 AutoRepair 选项。
- 选择或清除 AutoRepair 旁边的框以启用或禁用。
- 点 Save 将更改应用到机器池。
验证
- 在 Machine pool 选项卡中,选择机器池旁边的 > 来扩展视图。
- 验证您的机器池在展开视图中是否有正确的 AutoRepair 设置。
4.2.8.2. 使用 ROSA CLI 配置机器池 AutoRepair 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa
)为 Red Hat OpenShift Service on AWS 集群配置机器池 AutoRepair。
先决条件
-
您已在工作站上安装和配置了最新的 AWS (
aws
)和 ROSA (rosa
) CLI。 -
使用
rosa
CLI 登录您的红帽帐户。 - 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个现有的机器池。
流程
运行以下命令列出集群中的机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-0df2ec3377847164f 4.16.6 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在机器池中启用或禁用 AutoRepair:
要为机器池禁用 AutoRepair,请运行以下命令:
rosa edit machinepool --cluster=mycluster --machinepool=<machinepool_name> --autorepair=false
$ rosa edit machinepool --cluster=mycluster --machinepool=<machinepool_name> --autorepair=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要为机器池启用 AutoRepair,请运行以下命令:
rosa edit machinepool --cluster=mycluster --machinepool=<machinepool_name> --autorepair=true
$ rosa edit machinepool --cluster=mycluster --machinepool=<machinepool_name> --autorepair=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Updated machine pool 'machinepool_name' on cluster 'mycluster'
I: Updated machine pool 'machinepool_name' on cluster 'mycluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
描述机器池的详情:
rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machinepool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证输出中机器池的 AutoRepair 设置是否正确。
4.2.9. 在机器池中添加节点调整 复制链接链接已复制到粘贴板!
您可以为机器池中的计算(也称为 worker 节点)添加调整,以控制其在 Red Hat OpenShift Service on AWS 集群上的配置。
先决条件
-
您已在工作站上安装和配置了最新的 ROSA 命令行界面(CLI) (
rosa
)。 - 使用 'rosa' 登录您的红帽帐户。
- 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个现有的机器池。
- 您有一个现有的调优配置。
流程
列出集群中的所有机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR db-nodes-mp No 0/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes workers No 2/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR db-nodes-mp No 0/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes workers No 2/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以将调优配置添加到现有或新机器池中。
在创建机器池时添加调整:
rosa create machinepool -c <cluster-name> --name <machinepoolname> --tuning-configs <tuning_config_name>
$ rosa create machinepool -c <cluster-name> --name <machinepoolname> --tuning-configs <tuning_config_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
? Tuning configs: sample-tuning I: Machine pool 'db-nodes-mp' created successfully on hosted cluster 'sample-cluster' I: To view all machine pools, run 'rosa list machinepools -c sample-cluster'
? Tuning configs: sample-tuning I: Machine pool 'db-nodes-mp' created successfully on hosted cluster 'sample-cluster' I: To view all machine pools, run 'rosa list machinepools -c sample-cluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为机器池添加或更新调整:
rosa edit machinepool -c <cluster-name> --machinepool <machinepoolname> --tuning-configs <tuning_config_name>
$ rosa edit machinepool -c <cluster-name> --machinepool <machinepoolname> --tuning-configs <tuning_config_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
I: Updated machine pool 'db-nodes-mp' on cluster 'mycluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
描述您添加调优配置的机器池:
rosa describe machinepool --cluster=<cluster_name> --machinepool=<machine_pool_name>
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=<machine_pool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证您的机器池是否包含在输出中调整配置。
4.2.10. 配置节点排空宽限期 复制链接链接已复制到粘贴板!
您可以为集群中的机器池配置节点排空宽限期。机器池的节点排空宽限期是集群在升级或替换机器池时遵守 Pod Disruption Budget 保护的工作负载的时间。在这个宽限期后,所有剩余的工作负载都会被强制被驱除。节点排空宽限期的值范围是从 0
到 1 周
。使用默认值 0
或空值时,机器池会在没有任何时间限制的情况下排空,直到完成为止。
先决条件
-
您已在工作站上安装和配置了最新的 ROSA 命令行界面(CLI) (
rosa
)。 - 您在 AWS 集群上创建了 Red Hat OpenShift Service。
- 您有一个现有的机器池。
流程
运行以下命令,列出集群中的所有机器池:
rosa list machinepools --cluster=<cluster_name>
$ rosa list machinepools --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes workers No 2/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET VERSION AUTOREPAIR db-nodes-mp No 2/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes workers No 2/2 m5.xlarge us-east-2a subnet-08d4d81def67847b6 4.14.34 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查机器池的节点排空宽限期:
rosa describe machinepool --cluster <cluster_name> --machinepool=<machinepool_name>
$ rosa describe machinepool --cluster <cluster_name> --machinepool=<machinepool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID: workers Cluster ID: 2a90jdl0i4p9r9k9956v5ocv40se1kqs ... Node drain grace period: ...
ID: workers Cluster ID: 2a90jdl0i4p9r9k9956v5ocv40se1kqs ... Node drain grace period:
1 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果这个值为空,机器池会在没有时间限制的情况下排空,直到完成为止。
可选:运行以下命令来更新机器池的节点排空宽限期:
rosa edit machinepool --node-drain-grace-period="<node_drain_grace_period_value>" --cluster=<cluster_name> <machinepool_name>
$ rosa edit machinepool --node-drain-grace-period="<node_drain_grace_period_value>" --cluster=<cluster_name> <machinepool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在机器池升级过程中更改节点排空宽限期适用于将来的升级,而不是进行中升级。
验证
运行以下命令,检查机器池的节点排空宽限期:
rosa describe machinepool --cluster <cluster_name> <machinepool_name>
$ rosa describe machinepool --cluster <cluster_name> <machinepool_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID: workers Cluster ID: 2a90jdl0i4p9r9k9956v5ocv40se1kqs ... Node drain grace period: 30 minutes ...
ID: workers Cluster ID: 2a90jdl0i4p9r9k9956v5ocv40se1kqs ... Node drain grace period: 30 minutes ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在输出中验证您的机器池的正确
节点排空宽限期
。