容忍策略
集群容忍策略允许调度器将Pod调度至带有对应污点的集群上,需要与集群污点配合使用。每个集群可以添加一个或多个污点,对于未设置节点容忍策略的Pod,调度器会根据集群上的污点效果进行选择性调度,以避免Pod被分配到不合适的节点上。
默认的集群容忍策略
在创建工作负载时,UCS会为您的负载配置默认的容忍策略。默认的容忍策略会在某集群出现故障后为其添加相应污点,待持续时长超出容忍时长后会自动驱逐该集群上所有Pod。
在驱逐所有故障集群上的Pod后,待该集群恢复正常,UCS不会按照原有调度策略将Pod迁回该集群。若您需要继续执行原调度策略配置,可以对工作负载进行重新调度。
污点键 |
容忍策略 |
---|---|
cluster.karmada.io/not-ready |
集群状态为not ready时自动添加该污点,持续时长超出容忍时长后会自动驱逐该集群上所有Pod。 |
cluster.karmada.io/unreachable |
集群状态为不可用时自动添加该污点,持续时长超出容忍时长后会自动驱逐该集群上所有Pod。 |
通过控制台配置集群容忍策略
- 登录UCS控制台。
- 在创建工作负载时,单击“下一步:调度与差异化”。
- 添加污点容忍策略。
参数名
参数描述
污点键
节点的污点键。
操作符
- Equal:设置此操作符表示准确匹配指定污点键(必填)和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。
- Exists:设置此操作符表示匹配存在指定污点键的节点,此时容忍度不能指定污点值。若不填写污点键则可以容忍全部污点。
污点值
- 如果操作符的值是 Exists,则value属性可省略。
- 如果操作符的值是 Equal,则表示其key与value之间的关系是Equal(等于)。
- 如果不指定操作符属性,则默认值为Equal。
污点策略
- 全部:表示匹配所有污点效果。
- NoSchedule:表示匹配污点效果为NoSchedule的污点。
- NoExecute:表示匹配污点效果为NoExecute的污点。
容忍时间窗
即tolerationSeconds参数,当污点策略为NoExecute时支持配置。
在容忍时间窗内,Pod还会在拥有污点的节点上运行,超出时间后会被驱逐。