我可以强制 Kubernetes 在同一节点中不要 运行 超过 X 个 pod 副本吗?

Can I force Kubernetes not to run more than X replicas of a pod in the same node?

我有一个小型 Kubernetes 集群,仅包含两个节点 运行ning 在 t3a.micro AWS EC2 实例上(为了省钱)。

我有一个小型 Web 应用程序,我正在尝试 运行 在此集群中。我有一个用于此应用程序的 Deployment。此部署已将 spec.replicas 设置为 4。

当我 运行 这个 Deployment 时,我注意到 Kubernetes 在一个节点中安排了 3 个 pods,在另一个节点中安排了 1 个 pod。

是否可以强制 Kubernetes 为每个节点最多调度 2 pods 个 Deployment?在同一个 pod 中拥有 3 个实例让我很危险地接近 运行 在这些微型 EC2 实例中耗尽内存。

谢谢!

正确的解决方案是设置内存请求和限制,正确匹配每个 pod 上的稳态和突发 RAM 消耗水平,然后调度程序将为您完成所有这些计算。

但为了将来和其他人,有一个新功能允许这样做 https://kubernetes.io/blog/2020/05/introducing-podtopologyspread/。这不是完全匹配,您不能设置全局上限,而是可以要求 pods 在受最大偏斜上限限制的集群上均匀分布。