3.11.2. Descheduler 配置集
以下 descheduler 配置集可用:
AffinityAndTaints
此配置集驱除违反了 pod 间的反关联性、节点关联性和节点污点的 pod。
它启用了以下策略:
-
RemovePodsViolatingInterPodAntiAffinity
:删除违反了 pod 间的反关联性的 pod。 -
RemovePodsViolatingNodeAffinity
:移除违反了节点关联性的 pod。 RemovePodsViolatingNodeTaints
:移除违反了节点上的NoSchedule
污点的 pod。移除具有节点关联性类型
requiredDuringSchedulingIgnoredDuringExecution
的 pod。
-
TopologyAndDuplicates
此配置集会驱除 pod 以努力在节点间平均分配类似的 pod 或相同拓扑域的 pod。
它启用了以下策略:
-
RemovePodsViolatingTopologySpreadConstraint
:找到未平衡的拓扑域,并在DoNotSchedule
约束被违反时尝试从较大的 pod 驱除 pod。 -
RemoveDuplicates
:确保只有一个 pod 与同一节点上运行的副本集、复制控制器、部署或作业相关联。如果存在多个重复的 pod,则这些重复的 pod 会被驱除以更好地在集群中的 pod 分布。
-
LifecycleAndUtilization
此配置集驱除长时间运行的 pod,并平衡节点之间的资源使用情况。
它启用了以下策略:
RemovePodsHavingTooManyRestarts
:移除容器重启次数过多的 pod。所有容器(包括初始容器)重启总和大于 100 个的 Pod。
LowNodeUtilization
:查找使用率不足的节点,并在可能的情况下从其他过度使用的节点中驱除 pod,以希望这些被驱除的 pod 可以在使用率低的节点上被重新创建。如果节点的用量低于 20%(CPU、内存和 pod 的数量),则该节点将被视为使用率不足。
如果节点的用量超过 50%(CPU、内存和 pod 的数量),则该节点将被视为过量使用。
PodLifeTime
:驱除太老的 pod。移除时间超过 24 小时的 Pod。