我试图了解时间表在某些情况下的行为方式/原因。有人可以解释调度程序在这些场景中会做什么(以及为什么)吗?
假设我有一个 10GB 的内存盒
我有一个内存请求设置为 1G 的容器。我运行了它的 10 个副本,我希望在同一个盒子上看到所有 10 个(在这种情况下忽略任何 kube 系统样式的 pod)
现在假设我还添加了设置为 2G 的内存限制。发生什么了?对我来说,这对调度程序说“这个 pod 要求 1G,但可以增长到 2G”——调度程序是否仍将所有 10 个放在同一个盒子上,知道它很可能不得不将其中的一半踢掉?或者它会分配 2G,因为这是描述的限制?
假设如果我不声明限制,那么 pod 会一直增长,直到节点耗尽内存,然后杀死超出其请求资源的 pod,我是否也正确?或者它会假设某种默认值?
请求是需要在节点上专门提供给该 pod 以便它进行调度的内容。这是从可用资源计数中扣除的内容。限制就是限制。pod 的使用将被限制为该值。
因此,如果您有 10G 节点,并且想要req: 1G, limit: 2G在其上安装pod,您将能够安装其中的 10 个,并且如果其他节点有足够的未使用内存(即您请求 1G,但实际上使用 700M,这为您提供了大约 3G 请求,但未使用的空间可用于由 Pod 突发到 2G 限制。
| 归档时间: |
|
| 查看次数: |
956 次 |
| 最近记录: |