You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非使用时段(夜间/周末)无损关停GKE集群的实现流程咨询

GKE集群非使用时段启停(无工作负载影响)已验证流程

核心思路:直接关停GKE集群会强制终止工作负载,因此采用缩容节点池至0节点的方式模拟“关停”,恢复时再扩容节点池,工作负载会自动调度回新节点,全程不影响数据与服务可用性。

一、前置准备

  • 给所有业务工作负载配置PodDisruptionBudget(PDB),避免缩容时Pod被强制中断:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: my-app-pdb
spec:
  minAvailable: 1  # 根据业务需求调整,比如核心服务设为总Pod数的50%
  selector:
    matchLabels:
      app: my-app
  • 确认目标节点池支持缩容至0(GKE默认节点池均支持,无需额外配置)。

二、非使用时段缩容节点池至0

手动操作(gcloud命令行)

  1. 查看集群下的节点池列表:
    gcloud container node-pools list --cluster=你的集群名 --zone=集群所在区域
  2. 逐个缩容节点池到0:
    gcloud container node-pools resize 目标节点池名 --cluster=你的集群名 --zone=集群所在区域 --num-nodes=0

自动化操作(推荐,Cloud Scheduler+Cloud Function)

  1. 创建Cloud Function,封装缩容逻辑(Python示例):
import googleapiclient.discovery

def resize_to_zero(event, context):
    container_client = googleapiclient.discovery.build('container', 'v1')
    project_id = '你的项目ID'
    zone = '集群所在区域'
    cluster_name = '你的集群名'
    node_pool_name = '目标节点池名'

    request = container_client.projects().zones().clusters().nodePools().resize(
        name=f'projects/{project_id}/zones/{zone}/clusters/{cluster_name}/nodePools/{node_pool_name}',
        body={'nodeCount': 0}
    )
    response = request.execute()
    print(f"节点池已缩容至0: {response}")
  1. 在Cloud Scheduler中创建定时任务,比如:
    • 工作日每晚22点触发:Cron表达式 0 22 * * 1-5
    • 周末每晚22点触发:Cron表达式 0 22 * * 0,6

三、工作时段恢复节点池

手动操作(gcloud命令行)

扩容到原节点数量(比如3个节点):
gcloud container node-pools resize 目标节点池名 --cluster=你的集群名 --zone=集群所在区域 --num-nodes=3

自动化操作

  1. 修改上述Cloud Function的nodeCount为原节点数(比如3)
  2. 创建Cloud Scheduler定时任务,比如工作日早8点触发:Cron表达式 0 8 * * 1-5

四、流程验证

  1. 缩容后检查节点状态:kubectl get nodes,确认所有节点已被移除
  2. 检查Pod状态:kubectl get pods,所有Pod会进入Pending状态,但不会被删除(受PDB保护)
  3. 扩容后等待节点创建完成,再次查看Pod状态:kubectl get pods,Pod会自动调度到新节点并恢复运行
  4. 访问业务接口,确认服务正常响应

关键注意事项

  • GKE托管控制平面无法关停,但缩容节点池至0已能大幅节省计算资源成本
  • 有状态应用需确保使用持久化存储(如GCE Persistent Disk),扩容后Pod可重新挂载PV,数据不会丢失
  • 若配置了节点亲和性/污点容忍,需确保扩容后的节点符合Pod调度规则

内容的提问来源于stack exchange,提问作者Schatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:17:39