我有一个K8s集群,该集群运行独立的作业(每个作业有一个吊舱),我希望它们能够运行完成。但是,调度程序有时会在其他节点上重新调度它们。我的作业需要单次运行,并且在其他节点上重新启动它们对于我来说是不可接受的结果。
我当时在查看Pod中断预算(PDB),但据我了解,他们的选择器适用于Pod的标签。由于我的每个工作都不相同,并且有单独的标签,因此如何使用PDB告诉K8s,我的Pod的 all 的maxUnavailable为0?
我也使用了此注释
"cluster-autoscaler.kubernetes.io/safe-to-evict": false
但这不会影响因资源压力而驱逐豆荚。
理想情况下,我应该能够告诉K8s,除非我的Pod完整,否则都不应该驱逐他们。
答案 0 :(得分:2)
您应指定资源,以使您的工作成为有保证的服务质量:
resources:
limits:
memory: "200Mi"
cpu: "700m"
requests:
memory: "200Mi"
cpu: "700m"
请求数应等于限制数-这样,您的广告连播将被保证并且不再被逐出。
了解更多:https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod