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



我有一个包含 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 代替部署。守护程序集将 Pod 分发到群集的所有节点。这将在添加时自动将您的 Pod 分发到新节点。这样,您可以在删除旧节点之前添加一个新节点,并且您的 Pod 仍将运行。

最新更新