当前位置: 首页 > 知识库问答 >
问题:

库伯内特斯集群自动缩放器似乎不能在GKE上工作?

范霄
2023-03-14

我已经定义了一个节点池,最小实例设置为1,最大实例设置为5,并启用了自动缩放。

然而,它似乎并没有缩小规模。

  • 我已经封锁了一个节点。
  • 已经超过12小时了
  • 没有挂起的豆荚
  • 删除节点不会减少我自己部署的副本数量

正在讨论的节点上运行着以下POD:

  • fluentd

除了在守护进程集中定义的redispod之外,上述所有pod都在库贝-system命名空间中。

是否需要其他配置?也许是预算?

kubectl descripe-n kube system configmap cluster autoscaler status的输出

Name:         cluster-autoscaler-status
Namespace:    kube-system
Labels:       <none>
Annotations:  cluster-autoscaler.kubernetes.io/last-updated=2018-06-15 10:40:16.289611397 +0000 UTC

Data
====
status:
----
Cluster-autoscaler status at 2018-06-15 10:40:16.289611397 +0000 UTC:
Cluster-wide:
  Health:      Healthy (ready=4 unready=0 notStarted=0 longNotStarted=0 registered=4 longUnregistered=0)
               LastProbeTime:      2018-06-15 10:40:14.942263061 +0000 UTC
               LastTransitionTime: 2018-06-15 09:17:56.845900388 +0000 UTC
  ScaleUp:     NoActivity (ready=4 registered=4)
               LastProbeTime:      2018-06-15 10:40:14.942263061 +0000 UTC
               LastTransitionTime: 2018-06-15 09:18:55.777577792 +0000 UTC
  ScaleDown:   NoCandidates (candidates=0)
               LastProbeTime:      2018-06-15 10:40:14.942263061 +0000 UTC
               LastTransitionTime: 2018-06-15 09:39:03.33504599 +0000 UTC

NodeGroups:
  Name:        https://content.googleapis.com/compute/v1/projects/gcpwp-ayurved-subs-staging/zones/europe-west1-b/instanceGroups/gke-wordpress-preempt-nodes-9c33afcb-grp
  Health:      Healthy (ready=3 unready=0 notStarted=0 longNotStarted=0 registered=3 longUnregistered=0 cloudProviderTarget=3 (minSize=2, maxSize=3))
               LastProbeTime:      2018-06-15 10:40:14.942263061 +0000 UTC
               LastTransitionTime: 2018-06-15 09:17:56.845900388 +0000 UTC
  ScaleUp:     NoActivity (ready=3 cloudProviderTarget=3)
               LastProbeTime:      2018-06-15 10:40:14.942263061 +0000 UTC
               LastTransitionTime: 2018-06-15 09:18:55.777577792 +0000 UTC
  ScaleDown:   NoCandidates (candidates=0)
               LastProbeTime:      2018-06-15 10:40:14.942263061 +0000 UTC
               LastTransitionTime: 2018-06-15 09:39:03.33504599 +0000 UTC


Events:  <none>

共有3个答案

谢鸿
2023-03-14

同样如GKE常见问题中所述,节点不会被缩减,直到在该节点上运行的所有pod的cpu和内存请求之和小于该节点可分配的50%。

孙嘉悦
2023-03-14

我认为问题在于度量服务器和kube dns。有关详细信息,请参见GKE autoscaler常见问题解答。简单的回答是,不建议让metrics服务器可收回。您可以将kube dns设置为可收回(详细信息见此处)。

至于你的具体问题,我认为你需要kubectl drain节点(如果节点还没有启动,该命令也会封锁)

韩景胜
2023-03-14

有一些约束可以阻止节点缩小。

您应该根据什么类型的POD可以阻止CA删除节点来逐个验证列出的POD?文档这将帮助你发现是否有一个豆荚阻止它。

如果它确实是redispod,那么您可以尝试使用“安全驱逐”注释:

"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"

如果它是一个系统吊舱,我会在其他节点上尝试同样的方法,看看缩小规模对它们是否有效。根据GKE文档,您应该能够将集群缩小到每个集群1个节点,或者完全针对特定的节点池。

 类似资料:
  • 我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他

  • 我正在尝试让cadence在kubernetes集群上运行。然而,我注意到Cadence服务器初始化中有一个bug,它阻止Cassandra脚本正确初始化模式。https://github.com/uber/cadence/issues/1713:所以我想我会手动完成这一步。我执行了以下步骤- < li >在docker compose上从https://raw . githubuserconte

  • 我一直在努力让DNS插件在CentOS 7.2集群上工作。我使用以下说明安装了群集:http://severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services 在此配置中,主服务器正在运行:etcd、库贝-调度器、库贝-apiserver和库贝-控制器-管理器。这些节点正在运行:do

  • 据我所知,作业对象应该在一定时间后收获豆荚。但是在我的GKE集群(库伯内特斯1.1.8)上,“kubectl get pods-a”似乎可以列出几天前的豆荚。 所有这些都是使用乔布斯API创建的。 我确实注意到在使用 kubectl 删除作业后,pod 也被删除了。 我在这里主要担心的是,我将在批量作业中在集群上运行成千上万个pod,并且不想让内部待办系统过载。

  • 我在GKE上设置了Istio(Kubernetes入口模式,而不是Istio网关)。但是,我无法使用curl从外部访问 istio ingressgateway LoadBalancer 10.48.11.240 35.222.111.100 15020:30115/TCP,80:31420/TCP,443:32019/TCP,31400:31267/TCP,15029:30180/TCP,150