一篇带你学习Kubernetes Descheduler 使用( 五 )

 
不过需要注意不能同时配置 thresholdPriority? 和 thresholdPriorityClassName,如果指定的优先级类不存在,则 descheduler 不会创建它,并且会引发错误 。
注意事项当使用 descheduler 驱除 Pods 的时候,需要注意以下几点:

  • 关键性 Pod 不会被驱逐,比如 priorityClassName? 设置为 system-cluster-critical? 或 system-node-critical 的 Pod 。
  • 不属于 RS、Deployment 或 Job 管理的 Pods 不会被驱逐 。
  • DaemonSet 创建的 Pods 不会被驱逐 。
  • 使用 LocalStorage? 的 Pod 不会被驱逐,除非设置 evictLocalStoragePods: true 。
  • 具有 PVC 的 Pods 不会被驱逐,除非设置 ignorePvcPods: true 。
  • 在 LowNodeUtilization? 和 RemovePodsViolatingInterPodAntiAffinity? 策略下,Pods 按优先级从低到高进行驱逐,如果优先级相同,Besteffort? 类型的 Pod 要先于 Burstable? 和 Guaranteed 类型被驱逐 。
  • annotations? 中带有 descheduler.alpha.kubernetes.io/evict 字段的 Pod 都可以被驱逐,该注释用于覆盖阻止驱逐的检查,用户可以选择驱逐哪个 Pods 。
  • 如果 Pods 驱逐失败,可以设置 --v=4? 从 descheduler 日志中查找原因,如果驱逐违反 PDB 约束,则不会驱逐这类 Pods 。

【一篇带你学习Kubernetes Descheduler 使用】


推荐阅读