将google cloud Kubernetes群集调整为零不起作用

将google cloud Kubernetes群集调整为零不起作用,kubernetes,google-cloud-platform,Kubernetes,Google Cloud Platform,我尝试使用 gcloud container clusters resize $CLUSTER_NAME --size=0 --zone $ZONE 我收到一条成功消息,但节点池的大小保持不变(我只使用一个节点池) 是否可以将群集的大小调整为零?有时,在自动缩放操作生效之前,您只需等待10-20分钟。 在其他情况下,可能需要检查是否满足缩小节点的某些条件 根据: Cluster autoscaler还根据节点池的总容量需求测量每个节点的使用情况。如果一个节点在一段时间内没有调度新的POD,并且

我尝试使用

gcloud container clusters resize $CLUSTER_NAME --size=0 --zone $ZONE
我收到一条成功消息,但节点池的大小保持不变(我只使用一个节点池)


是否可以将群集的大小调整为零?

有时,在自动缩放操作生效之前,您只需等待10-20分钟。
在其他情况下,可能需要检查是否满足缩小节点的某些条件

根据:

Cluster autoscaler还根据节点池的总容量需求测量每个节点的使用情况。如果一个节点在一段时间内没有调度新的POD,并且该节点上运行的所有POD都可以调度到池中的其他节点上,则autoscaler会移动POD并删除该节点

请注意,cluster autoscaler根据Pod资源请求工作,即您的Pod请求了多少资源。Cluster autoscaler不考虑您的POD正在积极使用的资源。实际上,cluster autoscaler相信您提供的Pod资源请求是准确的,并基于该假设在节点上调度Pod

注意:从Kubernetes 1.7版开始,您可以为节点池指定最小大小为零。如果不需要其中的实例来运行您的工作负载,这允许您的节点池完全缩小。但是,虽然节点池可以扩展到零大小,但总体群集大小不会扩展到零节点(因为运行系统POD始终需要至少一个节点)

群集自动缩放器有以下限制: -缩小时,cluster autoscaler支持一个Pod的优美终止期,最长可达10分钟。即使Pod配置了更高的宽限期,Pod也总是在最长10分钟后被杀死

注意:对群集自动缩放器所做的每一次更改都会导致Kubernetes主机重新启动,这需要几分钟才能完成

但是,中提到的一些情况可能会阻止CA删除节点:

什么类型的POD可以阻止CA删除节点?
  • 具有限制性播客预算的播客
  • Kube系统吊舱:
    • 默认情况下,不会在节点上运行*
    • 没有PDB或他们的PDB限制太多(因为CA 0.6)
  • 没有控制器对象支持的POD(因此不是通过部署、副本集、作业、有状态集等创建的)*
  • 本地存储的豆荚*
  • 由于各种限制(缺少资源、不匹配的节点选择器或关联、匹配的反关联等)而无法移动到其他位置的POD *除非pod具有以下注释(CA 1.0.3或更高版本支持):
“cluster autoscaler.kubernetes.io/safe to execute”:“true”

如何将集群扩展到一个节点? 在版本0.6之前,Cluster Autoscaler未接触运行重要kube系统吊舱(如DNS、Heapster、>Dashboard等)的节点。如果这些吊舱落在不同的节点上,CA无法缩小群集,用户可能会得到一个完全空的3节点群集。在0.6中,我们添加了一个选项,告诉CA可以移动一些系统吊舱。如果用户为kube系统pod配置了一个,则PDB设置将覆盖不接触运行该pod的节点的默认策略。因此,要启用kube系统吊舱迁移,应将其设置为0(或