如何在缩减 Azure Kubernetes 服务 (AKS) 中的节点后重新安排我的 pods?

How to reschedule my pods after scaling down a node in Azure Kubernetes Service (AKS)?

我将从一个例子开始。假设我有一个包含三个节点的 AKS 集群。这些节点中的每一个都运行一组 pods,比方说 5 pods。我的集群上总共有 15 pods 运行,每个节点 5 pods,3 个节点。

现在假设我的节点根本没有得到充分利用,我决定缩减到 2 个节点而不是 3 个。

当我选择在 Azure 中执行此操作并将我的节点数从 3 更改为 2 时,Azure 将关闭第 3 个节点。但是,它还会删除第 3 个节点上 运行 的所有 pods。如何让我的集群将 pods 从第 3 个节点重新安排到第 1 个或第 2 个节点,这样我就不会丢失它们及其内容?

我现在觉得可以安全缩减节点的唯一方法是手动重新安排。

假设您正在使用 Kubernetes 部署(或副本集),那么它应该会为您执行此操作。您的部署配置了一定数量的副本,以便在您删除节点时为每个 pod 创建副本,调度程序将看到当前活动数量小于所需数量并创建新副本。

如果您只是在没有部署的情况下部署 pods,则不会发生这种情况,唯一的解决方案是手动重新部署,这就是您要使用部署的原因。

不过请记住,您创建的是新的 pods,您并没有移动之前的 运行 pods。您在之前的 pods 中拥有的任何未保留的状态都将消失。这就是它的工作原理。