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

And*_*jía 2 kubernetes kubernetes-deployment kubernetes-pod

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

我有一个小型网络应用程序,我试图在这个集群中运行。我有一个Deployment这个应用程序的单曲。此部署已spec.replicas设置为 4。

当我运行此命令时Deployment,我注意到 Kubernetes 在一个节点中调度了 3 个 pod,在另一个节点中调度了 1 个 pod。

是否可以强制 Kubernetes 每个节点最多调度 2 个 pod Deployment?在同一个 Pod 中拥有 3 个实例,这些小型 EC2 实例的内存几乎耗尽。

谢谢!

cod*_*ger 5

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

但对于未来和其他人来说,有一个新功能可以实现这一点https://kubernetes.io/blog/2020/05/introducing-podtopologyspread/。这不是完全匹配,您不能设置全局上限,而是可以要求 pod 在集群上均匀分布,但要遵守最大倾斜上限。