Kubernetes:在没有资源限制的情况下调度 Pod

cod*_*ith 2 kubernetes google-kubernetes-engine

Kubernetes:当 Pod 没有定义资源限制/请求时会发生什么?

当 Pod 没有(或只有部分)定义资源限制/请求时,它可以在 Kubernetes (GKE) 中使用多少资源?

例如,我有一个只有内存限制和内存请求的 pod ,但它没有 CPU 规格。此 pod 可用的 CPU 是否为:

  • 0
  • 节点/命名空间上剩余的数量(总计减去所有其他 pod 声明)
  • 尽可能多地了解节点/命名空间上其他 pod 的实际使用情况

Das*_*kar 5

如果您没有为 Container 指定 CPU 限制,则适用以下情况之一:

Container 对它可以使用的 CPU 资源没有上限。容器可以使用运行 pod 的节点上可用的所有 CPU 资源。因此,在您的情况下,它将是您在问题中指定的第二个选项:尽可能多地留在节点/命名空间上。

通常 Kubernetes 集群管理员定义集群中每个命名空间的限制。因此 Container 运行在具有默认 CPU 限制的命名空间中,并且 Container 会自动分配默认限制。

应该为每个 Namespace 定义资源配额,这样可以方便地摆脱没有资源请求或限制的 Pod 并耗尽所有资源。这意味着您不能调度 pod,直到您在特定命名空间中指定该 pod 的资源要求,这是推荐的最佳实践

有关更多信息,您可以参考此部分:https : //kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#if-you-do-not-specify-a-cpu-limit