首页 > 解决方案 > 在 AKS 中缩减后将所有 pod 移动到同一节点

问题描述

我们在 AKS 中有一个部署,我们在晚上缩减到 3 次,早上最多缩减到 9 次。

一个节点上只有 3 个这些 pod 的资源。所以早上 AKS 应该创建 2 个新节点。

但是发生的情况是,晚上的缩减有时会杀死每个节点上的 2 个 pod,以保持 3 个运行节点和 1 个 pod。有时 2 个节点,1 个有 1 个 pod,1 个有 2 个 pod。

我们想要的是在晚上运行 1 个节点和 3 个 pod。

我们怎样才能做到这一点?

标签: kubernetesazure-aks

解决方案


您是否检查过Cluster Autoscaler?从理论上讲,这可以帮助实现您的要求?

Cluster Autoscaler 是一个独立的程序,它可以调整 Kubernetes 集群的大小以满足当前的需求。

Cluster Autoscaler 是一个在以下条件之一为真时自动调整 Kubernetes 集群大小的工具:

  • 由于资源不足,集群中存在运行失败的 pod。
  • 集群中存在长时间未充分利用的节点,它们的 pod 可以放置在其他现有节点上。

为什么这个自动缩放器或集群自动缩放器与基于 CPU 使用的节点自动缩放器有何不同

Cluster Autoscaler 确保集群中的所有 pod 都有运行的地方,无论是否有任何 CPU 负载。此外,它试图确保集群中没有不需要的节点。

基于 CPU 使用(或任何基于指标)的集群/节点组自动扩缩器在扩展和缩减时不关心 Pod。因此,他们可能会添加一个没有任何 pod 的节点,或者删除一个上面有一些系统关键 pod 的节点,例如 kube-dns。不鼓励将这些自动缩放器与 Kubernetes 一起使用。

检查cluster-autoscaler aks 插件示例


推荐阅读