将Worker节点返回到群集后重新分配负载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Worker节点返回到群集后重新分配负载相关的知识,希望对你有一定的参考价值。

我有一个由5个工作节点组成的集群,然后关闭其中一个工作程序,并将正在其中执行的pod分发给其他节点。

现在我再次启动工作节点,但是pod不会再次重新分配,所以我有一个节点几乎是免费的。

有没有办法强制kubernetes将负载重新分配给“新”工作节点?

谢谢。

答案

我不相信有一个内置的机制来“负载平衡”集群。随着时间的推移,系统将自行恢复正常。

如果要触发一些重新分配,可以扩展可以并行运行的部署,然后再将其缩小。其他你可以重新发布。

另一答案

您无法将pod从一个节点移动到另一个节点而不会将其删除,因此您可以继续杀死pod(如果没有影响)。最有可能的是,它们将被安排到自由节点。

有一些方法可以配置关联,但如果再次关闭一个节点,您将发现自己处于相同的情况,因此它无济于事。

另一答案

正如@rln所提到的,缩小和向上缩小可以触发重新分配。如果你正在使用kubectl,这些是命令。

缩小:kubectl scale --replicas=<SIZE LESS THAN YOUR CURRENT DEPLOYMENT> deployment/<DEPLOYMENT_NAME> -n <NAMESPACE>

等待pod终止。

缩小规模:kubectl scale --replicas=<ORIGINAL DESIRED DEPLOYMENT SIZE> deployment/<DEPLOYMENT_NAME> -n <NAMESPACE>

另一答案

您可以使用DaemonSet代替部署。 DaemonSets将pod分发到群集的所有节点。这会在添加时自动将您的pod分发到新节点。这样,您可以在删除旧节点之前添加新节点,并且您的pod仍将运行。

以上是关于将Worker节点返回到群集后重新分配负载的主要内容,如果未能解决你的问题,请参考以下文章

LVS负载均衡群集

LVS + Keepalived 搭建高可用的负载均衡群集

将负载分配到在集群的每个节点上运行的 perl 脚本实例

搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!!

LVS—NAT负载均衡群集

Centos 7搭建LVS+Keepalived高可用Web服务群集