GKE Kubernetes Autoscaler-最大群集cpu,达到内存限制

时间:2020-03-10 10:36:54

标签: kubernetes google-kubernetes-engine

GKE Autoscaler不能在15个节点(以前的限制)之后向上扩展节点

我已将“群集”中的MinMax值更改为17-25

enter image description here 但是节点数停留在14-15上并且没有增加,现在我的集群已满,没有更多的Pod可以容纳,因此每个新部署都应触发节点扩展并将其自己安排到新节点上,而不是发生。

创建部署后,它停留在Pending状态,并显示一条消息:

pod didn't trigger scale-up (it wouldn't fit if a new node is added): 1 max cluster cpu, memory limit reached

最大群集cpu,达到内存限制听起来像最大节点数仍然是14-15,那怎么可能?为什么不触发节点放大?

ClusterAutoscalerStatus:

apiVersion: v1
data:
  status: |+
    Cluster-autoscaler status at 2020-03-10 10:35:39.899329642 +0000 UTC:
    Cluster-wide:
      Health:      Healthy (ready=14 unready=0 notStarted=0 longNotStarted=0 registered=14 longUnregistered=0)
                   LastProbeTime:      2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
                   LastTransitionTime: 2020-03-10 09:49:11.965623459 +0000 UTC m=+4133.007827509
      ScaleUp:     NoActivity (ready=14 registered=14)
                   LastProbeTime:      2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
                   LastTransitionTime: 2020-03-10 08:40:47.775200087 +0000 UTC m=+28.817404126
      ScaleDown:   NoCandidates (candidates=0)
                   LastProbeTime:      2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
                   LastTransitionTime: 2020-03-10 09:49:49.580623718 +0000 UTC m=+4170.622827779

    NodeGroups:
      Name:        https://content.googleapis.com/compute/v1/projects/project/zones/europe-west4-b/instanceGroups/adjust-scope-bff43e09-grp
      Health:      Healthy (ready=14 unready=0 notStarted=0 longNotStarted=0 registered=14 longUnregistered=0 cloudProviderTarget=14 (minSize=17, maxSize=25))
                   LastProbeTime:      2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
                   LastTransitionTime: 2020-03-10 09:46:19.45614781 +0000 UTC m=+3960.498351857
      ScaleUp:     NoActivity (ready=14 cloudProviderTarget=14)
                   LastProbeTime:      2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
                   LastTransitionTime: 2020-03-10 09:46:19.45614781 +0000 UTC m=+3960.498351857
      ScaleDown:   NoCandidates (candidates=0)
                   LastProbeTime:      2020-03-10 10:35:39.608193389 +0000 UTC m=+6920.650397445
                   LastTransitionTime: 2020-03-10 09:49:49.580623718 +0000 UTC m=+4170.622827779

部署非常小! (200m CPU,256Mi mem),因此如果要添加新节点肯定适合。

看起来像nodepool / autoscaler中的一个错误,因为15是我以前的节点数限制,所以看起来15仍然是最高。

编辑: 具有较大计算机的新节点池,GKE中的自动缩放功能已打开,经过一段时间后仍然存在相同的问题,即使节点具有可用资源也是如此。 节点顶部:

NAME                                                  CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
gke-infrastructure-n-autoscaled-node--0816b9c6-fm5v   805m         41%    4966Mi          88%       
gke-infrastructure-n-autoscaled-node--0816b9c6-h98f   407m         21%    2746Mi          48%       
gke-infrastructure-n-autoscaled-node--0816b9c6-hr0l   721m         37%    3832Mi          67%       
gke-infrastructure-n-autoscaled-node--0816b9c6-prfw   1020m        52%    5102Mi          90%       
gke-infrastructure-n-autoscaled-node--0816b9c6-s94x   946m         49%    3637Mi          64%       
gke-infrastructure-n-autoscaled-node--0816b9c6-sz5l   2000m        103%   5738Mi          101%      
gke-infrastructure-n-autoscaled-node--0816b9c6-z6dv   664m         34%    4271Mi          75%       
gke-infrastructure-n-autoscaled-node--0816b9c6-zvbr   970m         50%    3061Mi          54%

消息1 max cluster cpu, memory limit reached仍然没有。更新部署时仍然会发生这种情况,新版本有时会停留在Pending中,因为它不会触发扩展。

EDIT2: 在使用cloud命令描述集群时,我发现了这一点:

autoscaling:
  autoprovisioningNodePoolDefaults:
    oauthScopes:
    - https://www.googleapis.com/auth/logging.write
    - https://www.googleapis.com/auth/monitoring
    serviceAccount: default
  enableNodeAutoprovisioning: true
  resourceLimits:
  - maximum: '5'
    minimum: '1'
    resourceType: cpu
  - maximum: '5'
    minimum: '1'
    resourceType: memory

如何在启用自动缩放功能的情况下工作?如果达到这些目标,将不会触发放大? (总和已经超过了)

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,正在把头撞在墙上,试图弄清楚发生了什么。甚至支持也无法解决。

问题是,如果在群集级别启用节点自动配置,则将设置整个群集允许的实际最小/最大cpu和mem。乍一看,UI似乎建议您为每个自动配置的节点想要的最小/最大CPU和内存-但这是不正确的。因此,例如,如果您想要最多100个节点,每个节点8个CPU,那么您的最大CPU应该是800个。我知道群集的最大值显然很有用,因此事情不会失控,但是呈现不直观。由于您实际上无法控制针对您的机器类型选择的内容,因此您认为不让kubernetes为一个核心任务选择一个100核心机器会很有用吗?那就是我以为是什么时候配置的。

节点自动配置非常有用,因为如果出于某种原因您在自己的节点池上进行了自动配置,有时由于配额问题它不能满足您的需求,那么集群级节点自动配置器将找出一个它可以提供满足您需求的不同节点池计算机类型。在我的方案中,我使用的是C2 CPU,该区域中缺少这些CPU,因此我的节点池停止了自动扩展。

为了使事情更加混乱,大多数人从指定节点池计算机类型开始,因此他们已经习惯于基于每个节点自定义这些限制。但是随后有些事情像配额问题一样停止工作,您根本不知道,因此您不顾一切地在群集级别上配置节点自动配置器,但是由于认为您正在为新的潜在计算机类型指定限制而完全搞砸了。 / p>

希望这有助于清除某些内容。

答案 1 :(得分:0)

能否请您检查是否未达到项目配额?像,尝试手动创建VM。 如果与配额无关,可以指定使用的GKE版本吗?