【发布时间】:2020-06-22 05:56:00
【问题描述】:
GKE Autoscaler 不会在 15 个节点后扩展节点(以前的限制)
我已将 Cluster 中的 Min 和 Max 值更改为 17-25
但是节点数停留在 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: 在使用云命令描述集群时,我发现了这一点:
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
在启用自动缩放的情况下如何工作?如果达到这些,它不会触发放大吗? (总和已经超过了)
【问题讨论】:
-
您使用了哪些命令来扩展更新
ClusterAutoscaler,您的主版本是什么? -
我使用的是 GKE,所以我无法访问 master,因为它是由 google 管理的。此外,我没有一个名为 ClusterAutoscaler 的 CRD,但起初缩放工作正常,然后我更改了 maxNode 计数,但没有反映出来。所有节点都运行最新(今天更新)
-
可以使用
gcloud命令进行缩放。您是否已在 GUI 中这样做或进行过更正? -
两种都试过了,效果一样 - 卡在 15 上。我最后的解决方案是创建新的节点池。
-
您是否尝试过手动将 1 个节点添加到当前节点池?这可能会再次触发缩放。
标签: kubernetes google-kubernetes-engine