Kubernetes 如何防止调度程序/自动缩放程序逐出独立作业(运行到完成)?
我有一个K8s集群,它运行独立的作业(每个作业有一个pod),我希望它们运行到完成。然而,调度程序有时会在不同的节点上重新调度它们。我的作业需要单次运行,在不同的节点上重新启动它们对我来说是不可接受的结果 我在查看Pod中断预算(PDB),但据我所知,他们的选择器适用于Pod标签。由于我的每项工作都是不同的,并且有一个单独的标签,我如何使用PDB告诉K8s我的所有POD的maxUnavailable为0 我也使用了这个注释Kubernetes 如何防止调度程序/自动缩放程序逐出独立作业(运行到完成)?,kubernetes,google-kubernetes-engine,kubernetes-jobs,Kubernetes,Google Kubernetes Engine,Kubernetes Jobs,我有一个K8s集群,它运行独立的作业(每个作业有一个pod),我希望它们运行到完成。然而,调度程序有时会在不同的节点上重新调度它们。我的作业需要单次运行,在不同的节点上重新启动它们对我来说是不可接受的结果 我在查看Pod中断预算(PDB),但据我所知,他们的选择器适用于Pod标签。由于我的每项工作都是不同的,并且有一个单独的标签,我如何使用PDB告诉K8s我的所有POD的maxUnavailable为0 我也使用了这个注释 "cluster-autoscaler.kubernetes.io/sa
"cluster-autoscaler.kubernetes.io/safe-to-evict": false
但这并不影响资源压力下的豆荚驱逐
理想情况下,我应该能够告诉K8s,除非我的POD已完成,否则不应将其逐出。您应该指定资源,以便您的工作能够保证服务质量:
resources:
limits:
memory: "200Mi"
cpu: "700m"
requests:
memory: "200Mi"
cpu: "700m"
请求应该等于限制-然后你的pod将得到保证,不再被驱逐
阅读更多: