|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
启用集群代理调度自定义
cattle-cluster-agent 允许启用优先级类和 Pod 中断预算的自动部署。
当此功能启用时,所有新配置的节点驱动程序、自定义和导入的 RKE2 和 K3s 集群将在配置过程中自动部署优先级类和 Pod 中断预算。现有集群可以通过在集群对象上使用 Rancher UI 或设置特定注释 来逐步更新为此新行为。
在默认情况下禁用该功能。
启用集群代理调度自定义
|
启用或禁用此功能仅影响新集群。现有下游集群不会自动更新。请参见 更新现有集群。 |
-
在左上角,单击 ☰ > 全局设置
-
选择 功能标志
-
找到
cluster-agent-scheduling-customization功能并单击 ⋮ > 激活
配置全局设置
您可以通过在 Rancher UI 中更新 cluster-agent-default-priority-class 和 cluster-agent-default-pod-disruption-budget 全局设置来自定义默认优先级类 (PC) 和 Pod 中断预算 (PDB)。请注意,优先级类和 Pod 中断预算都有配置限制:
-
为默认 PC 设置的
Value不能小于负 10 亿,也不能大于 10 亿。 -
为 PC 设置的
PreemptionPolicy必须等于PreemptLowerPriority或Never。 -
您不能将 PDB
minAvailable和maxUnavailable字段都配置为非零值。 -
PDB
minAvailable必须是非负整数,或非负整数百分比(例如1或100%)。 -
PDB
maxUnavailable必须是非负整数,或非负整数百分比(例如1或100%)。
更新现有集群
|
当此功能被禁用时,您无法修改现有集群的集群代理调度自定义字段。但是,无论功能状态如何,您始终可以去除配置。 |
启用此功能后,您可以通过两种方式为现有集群配置调度自定义:
-
使用 Rancher UI
-
编辑所需的集群,并在集群代理选项卡中导航到集群配置部分。
-
启用`Prevent Rancher cluster agent pod eviction`复选框。
-
相关的`clusters.provisioning.cattle.io`或`clusters.management.cattle.io`对象上的必要字段将使用全局设置中设置的值自动配置。
-
-
保存集群。
-
-
使用注解
-
可以使用
provisioning.cattle.io/enable-scheduling-customization注解来更新集群,而无需使用 Rancher UI。在配置优先级类和 Pod 中断预算后,此注解将自动从集群中去除。-
此注解的值可以是
true或false,以自动添加或去除调度自定义。 -
对于节点驱动程序提供和自定义集群,请在相关的`clusters.provisioning.cattle.io`对象上应用此注解。
-
对于导入的集群,请在相关的`clusters.management.cattle.io`对象上应用注解。
-
-
应用更新的全局设置
为了防止调度程序行为的意外变化,当`cluster-agent-default-priority-class`和`cluster-agent-default-pod-disruption-budget`全局设置更改时,Rancher不会更新现有的下游集群。有两种方法可以更新现有集群以使用最新的全局设置:
-
使用 Rancher UI
-
在配置集群时,集群代理选项卡中将显示一个额外的复选框,位于集群配置部分。选中`Apply global settings for Priority Class and Pod Disruption Budget`复选框将在保存集群后自动更新优先级类和 Pod 中断预算,以匹配全局设置。
-
-
调整集群yaml
-
您可以使用`kubectl`或Rancher UI的“以Yaml编辑”功能手动调整集群对象中的相关字段。调度自定义可以在集群对象的`spec.ClusterAgentDeploymentCustomization.SchedulingCustomization`部分找到。
-
或者,可以使用`provisioning.cattle.io/enable-scheduling-customization`注解来去除并重新添加在特定集群上设置的更新调度自定义字段。
-
下游对象
当此功能在给定集群中启用时,Rancher将自动创建两个下游资源:
-
将在
cattle-system命名空间中自动创建一个 Pod 中断预算,名为cattle-cluster-agent-pod-disruption-budget。 -
将自动创建一个优先级类,名为
cattle-cluster-agent-priority-class。
这些对象由Rancher维护,必须不被修改或删除。Rancher服务器将自动更新这些对象,以匹配在集群对象上设置的配置,并在不再需要时将其去除。
RBAC 考虑因素
在下游集群上启用此功能之前,集群管理员应评估当前的 RBAC 配置,以防止对 cattle-cluster-agent-priority-class 的常见访问。在外部用户可以访问集群的情况下,例如在提供集群作为服务时,建议限制对 cattle-cluster-agent-priority-class 对象的访问,以防止更改或删除。
对于 cattle-cluster-agent-pod-disruption-budget 对象不需要做类似的考虑,因为 Pod 中断预算是命名空间对象。Rancher 将在特权 cattle-cluster-agent-pod-disruption-budget 命名空间中创建 cattle-system。