Kubernetes 如何防止调度程序/自动缩放程序逐出独立作业(运行到完成)?

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

我有一个K8s集群,它运行独立的作业(每个作业有一个pod),我希望它们运行到完成。然而,调度程序有时会在不同的节点上重新调度它们。我的作业需要单次运行,在不同的节点上重新启动它们对我来说是不可接受的结果

我在查看Pod中断预算(PDB),但据我所知,他们的选择器适用于Pod标签。由于我的每项工作都是不同的,并且有一个单独的标签,我如何使用PDB告诉K8s我的所有POD的maxUnavailable为0

我也使用了这个注释

"cluster-autoscaler.kubernetes.io/safe-to-evict": false
但这并不影响资源压力下的豆荚驱逐


理想情况下,我应该能够告诉K8s,除非我的POD已完成,否则不应将其逐出。

您应该指定资源,以便您的工作能够保证服务质量:

resources:
  limits:
    memory: "200Mi"
    cpu: "700m"
  requests:
    memory: "200Mi"
    cpu: "700m"
请求应该等于限制-然后你的pod将得到保证,不再被驱逐

阅读更多: