0
所以,假设有一个集群节点,有 4 个 CPU 内核。
它正在运行两个 pod。每个 pod 将 CPU 要求设置为:500m,但 CPU 限制为 4000m。
运行kubectl
describe node 告诉我 CPU 限制为 8 (200%)
我知道它声称 200%,因为我有两个 pod,每个 pod 都将其 CPU 限制设置为 4 个 CPU 内核。
这只是语义还是存在潜在问题?我的意思是,如果两个 pod 都需要爆破到 3 个 CPU 核心(低于每个核心的限制),这在物理上是不可能的,他们必须以更少的数量解决。
所有 pod 限制的总和是否存在超过其主机节点 CPU 能力的潜在问题?或者只是作为 CPU 限制所要求的指示,知道它可能无法提供服务——毕竟,Pod 可能不知道彼此在同一个节点中。
是的,限制是该节点 CPU 的 200%。是的,这是过度使用,你有 4 个 CPU 而不是 8 个。
CPU 很容易节流,调度程序为您提供更少的时间片。来自关于资源请求和限制的 Google 帖子:
这是一个性能和容量规划问题。请求为 500m 但限制为 4000m 的 Pod 可以突发到调度最小值的 8 倍。这可能是性能上的重大偏差,具体取决于资源可用性。如果这很糟糕,取决于您是否想要可预测的性能或机会性地使用容量。
Pod 不必知道节点上要安排什么来影响容量规划。
总体而言,提高超额认购率往往会使调整集群规模和获得可预测的性能变得更加困难。也许很难判断将节点加倍是否会提高性能,以及在没有证据的情况下是否有人认为更多更好。