3

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

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

我也用过这个注解

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

但这并不影响 pod 驱逐对资源压力的影响。

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

4

1 回答 1

3

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

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

请求应该等于限制 - 然后您的 pod 将成为 Guaranteed 并且不会再被驱逐。

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

于 2019-04-24T08:13:01.133 回答