Openshift/Kubernetes 中的“初始内存分配”与“限制”有何不同?

Openshift/Kubernetes 中的“初始内存分配”与“限制”有何不同?

在 Java 中,有最小堆空间 ( -Xms) 和最大堆空间 ( -Xmx)。最小堆空间从启动时分配给 JVM,“最大堆空间”是 JVM 在达到该限制时会说“堆空间不足”的限制。

Openshift/Kubernetes 中 pod 是否存在如此不同的值(初始值和限制值),或者由于某种原因初始内存分配总是等于限制值?

答案1

在Kubernetes中,对CPU、内存等资源的控制机制有 requestslimits

Requests是容器保证能获得的资源。如果容器请求资源,Kubernetes 将只将其调度到能够为其提供该资源的节点上。

Limits确保容器不会超过某个值。容器只允许达到限制值,然后受到限制。

如果您没有指定 CPU 限制:

  • 容器可以使用其运行节点上可用的所有处理器资源 - 因为它可以使用的 CPU 资源没有上限。
  • 当容器在具有默认 CPU 限制的命名空间中运行时,会自动为容器分配默认限制。如果需要更改,可以使用限制范围

如果您指定了 CPU 限制但未指定 CPU 请求,Kubernetes 会自动分配与限制匹配的 CPU 请求。

要了解更多信息,请参阅本文档本文

相关内容