如何在aws-eks(kubernetes)中跨所有节点/工作者自动重新平衡pod



假设我们在ec2自动缩放min中有4个节点eks集群,其中有4个结点。一个kubernetes应用程序堆栈部署在同一个pod-one节点上。现在流量增加了在eks级别触发的HPA。现在总的pod是8个pod,两个pod-在一个节点上。还触发了自动缩放。现在总共有6个节点。

它观察到的所有吊舱都保持当前状态。后自动缩放。

有没有一种直接而简单的方法?一些已经运行的pod应该在额外的节点上自动启动(检测它并在最近添加的空闲工作者/节点上重新安排它自己(i:e未使用-通过强制驱逐pod(

提前感谢。

查看Descheduler。这个项目作为一个Kubernetes作业运行,旨在当它认为集群不平衡时杀死pod。

LowNodeUtilization策略似乎适合您的情况:

如果可能,从其他节点希望重新创建被驱逐的吊舱将在这些未充分利用的节点上进行调度。


另一种选择是手动应用一些混乱工程,强制对部署进行滚动更新,希望调度器在重新创建pod时能够解决平衡问题。

您可以使用kubectl rollout restart my-deployment。这比简单地用kubectl delete pod删除吊舱要好得多,因为推出后将确保"再平衡"期间的可用性(尽管完全删除吊舱会增加更好地再平衡的机会(。

一个简单的方法是使用下面的命令通过选择器删除所有这些pod,并让部署在集群中重新创建这些pod

kubectl delete po-l key=值

可能还有其他的可能性。很高兴从其他那里得知

相关内容

最新更新