停用或休眠GKE集群以节省成本的最佳实践方案有哪些?
GKE集群临时停用/休眠节省成本最佳实践
1. 短期停用(7天以内,需保留集群所有配置):缩容所有节点池副本数为0
这是最常用的方案,不需要删除集群,所有控制面资源配置都会完整保留:
- 操作命令:
单节点池执行:gcloud container clusters resize [集群名称] --node-pool [节点池名称] --num-nodes 0 --region [集群区域]
多节点池可以循环执行上述命令,或者直接在GCP控制台节点池管理页批量调整节点数为0 - 成本变化:仅收取GKE标准版集群的固定管理费用(Autopilot模式无节点运行时不收取集群管理费),以及你保留的持久化磁盘、静态IP、负载均衡等关联资源费用
- 恢复方式:把节点池副本数调整回原数值即可,工作负载会自动重新调度启动
- 注意事项:节点本地磁盘存储的临时数据(如日志、本地缓存)会随节点销毁永久丢失,需要留存的请提前备份
2. 长期停用(7天以上,不需要保留运行状态):删除集群+备份资源配置
POC完成后短期内不会复用集群的话,这是成本最低的方案:
- 操作步骤:
- 导出所有需要保留的集群资源配置:
kubectl get all,configmap,secret,ingress,persistentvolumeclaim -A -o yaml > gke-poc-resources-backup.yaml - 直接删除集群:
gcloud container clusters delete [集群名称] --region [集群区域]
如果你是用Terraform等IaC工具管理集群,直接销毁对应基础设施栈即可,不需要单独导出资源
- 导出所有需要保留的集群资源配置:
- 成本变化:删除后不会产生任何集群管理、节点运行费用,仅收取备份文件存储、保留的持久化磁盘的极低费用
- 恢复方式:重新创建同版本GKE集群,导入备份的资源配置即可恢复所有工作负载
- 注意事项:如果集群有自定义CRD、RBAC规则,导出备份时记得单独添加对应资源类型,避免漏导
3. Autopilot模式专属方案:使用集群暂停功能
如果你的集群是GKE Autopilot模式,可以直接用官方提供的暂停能力:
- 操作命令:
gcloud container clusters update [集群名称] --region [集群区域] --enable-cluster-suspension,也可以在GCP控制台集群详情页直接点击暂停按钮 - 成本变化:暂停后不收取集群管理费、节点运行费,仅收取持久化磁盘存储费用
- 注意事项:集群最长可暂停30天,超过期限会被自动删除;恢复操作10分钟内即可完成,所有配置完整保留
通用运维建议
- 停用前提前清理不需要的持久化卷、负载均衡、静态IP等资源,避免产生不必要的闲置费用
- 不管选用哪种停用方案,都提前做一次全量资源备份,避免恢复时丢失配置
- 有定期启停需求(如工作日用、周末停用)的话,可以配合Cloud Function加定时触发器实现自动缩扩容,不需要人工操作
内容的提问来源于stack exchange,提问作者Aadesh kale
相关产品推荐
相关产品推荐

