Kubernetes 是否合并 containers/pods 以最小化资源碎片?

Does Kubernetes consolidate containers/pods in order to minimize resource fragmentation?

我们一直在使用 AWS-ECS 来调度我们的容器。我在 ECS 中看到的最紧迫的问题是 'resource fragmentation'.

假设我有以下任务 definitions/pods 以及相应的资源要求:

  POD    CPU    Desired  Total_CPU
- task1  1024      2       2048
- task2  512       4       2048
- task3  256       1       256

(为简单起见,仅保留 CPU 个要求)

如果我们考虑可用的 VM CPU=2048,我们至少需要 3 个 VM 才能获得上述服务 运行。

更进一步,对于 运行 蓝绿部署,我们理论上只需要 一个 VM 和 2048 CPU 个单元。

但是,随着部署的进行,容器将分散在所有可用的 VM 中。由于资源不可用,这将使蓝绿部署花费太多时间(甚至失败)。

因此,要使蓝绿部署按预期工作,我们需要在集群中 更多额外的 VM(更多 $$$)

我想知道 Kubernetes 是否提供这样的功能来整合 pods 以保持最小的资源碎片。

Kubernetes 目前没有重新安排 pods 以在节点之间重新平衡它们,但是 planning has begun to include a rescheduler 几个月后我们的 1.3 版本中会为此目的