【问题标题】:Kubernetes cluster in Google (GKE) is over scaling nodesGoogle 中的 Kubernetes 集群 (GKE) 超过了扩展节点
【发布时间】:2018-12-04 17:58:35
【问题描述】:

我在 GCP 中有一个 Kubernetes 集群,运行多个节点池并启用了自动扩展。 似乎自动缩放器过度缩放... 附上节点列表及其使用情况(我使用的是32CPU机器类型)。

无法理解为什么自动缩放器不合并其中一些机器,因为使用量远低于容量,并且在多台机器上运行的 pod 可以轻松合并为一个。

我没有使用任何特殊的污点/亲和力,所以我不明白为什么会发生这种过度缩放。阅读节点自动缩放器文档也不能解释这种行为。

列:状态、请求的 CPU、总 CPU、请求的 RAM、总 RAM

【问题讨论】:

  • 某些类型的 POD 可以阻止集群自动缩放器删除节点。检查 this link 以查看您的 POD 是否满足这些特殊标准。
  • 这些条件都不符合。在我看来,快速变化的 pod 扩展存在问题。升级时,kubernetes 会在整个集群中调度新的 pod,从而导致节点保持正常运行。也许是一种在负载最多的节点上优先考虑新 pod(来自 HPA)的方法?
  • 在这个link 中讨论了集群自动缩放器不缩小 pod 的一些原因。根据我们的经验,一些常见的原因是具有限制性 PodDisruptionBudget 的 Pod 和运行在节点上的 Kube 系统 pod 会阻止自动扩缩器删除节点。如果您需要进一步的帮助,您可以向kuberentes community 提交新问题并在其中发布您的节点的具体描述。
  • 我没有使用 PodDisruptionBudget 以及在 kube-system 和 GKE 中运行的唯一 pod。我没有使用这个ns。有没有办法在GKE下查看cluster-autoscaler的日志(没有system pod负责扩容)?

标签: kubernetes google-compute-engine google-kubernetes-engine


【解决方案1】:

正如您对 kube-system pod 的确认,您可能在节点中运行了一些 kube-system pod,这些 pod 会阻止自动缩放器移除节点;请看this

关于 GKE 下的 cluster-autoscaler 的日志,很遗憾我认为你没有这样的访问权限。如果您有权访问主计算机,请检查 /var/log/cluster-autoscaler.log 中的 Cluster Autoscaler 日志。 Cluster Autoscaler 记录了很多有用的信息,包括它为什么认为 pod 不可移动或者它的扩展计划是什么。更多信息,您可以查看this

请注意,完全有可能节点未充分利用,但 pod 不适合其他任何地方,因此这可能是无法删除节点的原因。逻辑记录在here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2020-09-27
    • 2018-05-05
    • 2017-04-16
    • 2020-03-02
    • 2020-04-22
    相关资源
    最近更新 更多