如何防止调度程序/自动定标器逐出独立的作业(这些作业可以完成)?

时间:2019-04-24 08:06:14

标签: kubernetes google-kubernetes-engine kubernetes-jobs

我有一个K8s集群,该集群运行独立的作业(每个作业有一个吊舱),我希望它们能够运行完成。但是,调度程序有时会在其他节点上重新调度它们。我的作业需要单次运行,并且在其他节点上重新启动它们对于我来说是不可接受的结果。

我当时在查看Pod中断预算(PDB),但据我了解,他们的选择器适用于Pod的标签。由于我的每个工作都不相同,并且有单独的标签,因此如何使用PDB告诉K8s,我的Pod的 all 的maxUnavailable为0?

我也使用了此注释

"cluster-autoscaler.kubernetes.io/safe-to-evict": false

但这不会影响因资源压力而驱逐豆荚。

理想情况下,我应该能够告诉K8s,除非我的Pod完整,否则都不应该驱逐他们。

1 个答案:

答案 0 :(得分:2)

您应指定资源,以使您的工作成为有保证的服务质量:

resources:
  limits:
    memory: "200Mi"
    cpu: "700m"
  requests:
    memory: "200Mi"
    cpu: "700m"

请求数应等于限制数-这样,您的广告连播将被保证并且不再被逐出。

了解更多:https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod