具有自动缩放功能的 GKE 节点池不会缩小规模

问题描述 投票:0回答:1

我有一个带有两个节点池的 GKE 集群。我在我的一个节点池上打开了自动缩放功能,但它似乎没有自动缩小。

我已启用 HPA,效果很好。当我看不到流量时,它会将 Pod 缩小到 1。

API 目前没有获得任何流量,因此我预计节点也会缩小规模。

但它仍然运行最多 5 个节点,尽管某些节点使用的可分配内存/CPU 少于 50%。

我在这里错过了什么?我计划将这些 pod 移至更大的机器,但要做到这一点,我需要节点自动缩放来控制每月成本。

kubernetes google-kubernetes-engine autoscaling
1个回答
3
投票

导致CA降尺度不成功的原因有很多。如果我们恢复正常工作,它将是这样的:

  • 集群自动缩放程序将定期(每 10 秒)检查节点的利用率。
  • 如果利用率小于0.5,节点将被视为利用率不足。
  • 然后节点将被标记为删除,并将在接下来的 10 分钟内进行监控,以确保利用率保持在 0.5 以下。
  • 如果即使在 10 分钟后它仍然未得到充分利用,那么该节点将被集群自动缩放程序删除。

如果上述任务没有完成,那么其他原因会阻止您的节点缩小规模。根据我的经验,PDB 需要应用于 kube-system pod,我想说这可能就是原因;然而,发生这种情况的原因有很多,以下是可能导致缩小问题的原因:

1。 PDB 不会应用于您的 kube-system pod。 Kube-system pod 会阻止 Cluster Autoscaler 删除运行它们的节点。您可以为 kube-system pod 手动添加 Pod 中断预算 (PDB),以便可以在其他地方安全地重新安排,这可以使用下一个命令添加:

`kubectl create poddisruptionbudget PDB-NAME --namespace=kube-system --selector app=APP-NAME --max-unavailable 1`

2。使用本地存储(卷)的容器,甚至是空卷。 Kubernetes 可以防止使用本地存储的 Pod 节点上发生缩减事件。寻找这种阻止 Cluster Autoscaler 缩小节点规模的配置。

3.带有

cluster-autoscaler.kubernetes.io/safe-to-evict: true
注释的 Pod。 查找带有此注释的 pod,可以防止节点缩减

4。带有

cluster-autoscaler.kubernetes.io/scale-down-disabled: false
注释的节点。 查找具有此注释且可能阻止集群自动缩放的节点。我建议您检查这些配置,以便使您的集群缩减未充分利用的节点。 -----

您还可以看到this页面,其中解释了防止缩小规模的配置,这可能就是您所发生的情况。

© www.soinside.com 2019 - 2024. All rights reserved.