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

能否通过Terraform调整GKE节点池磁盘大小且不重建集群、无停机?

如何用Terraform无停机调整GKE节点池磁盘大小(无需重建集群)

完全可以实现,不需要销毁重建整个集群或节点池,通过Terraform配置结合GKE的滚动更新策略,就能自动化迁移工作负载并完成磁盘大小调整,全程无停机。

具体操作步骤:

  1. 修改Terraform节点池配置
    找到你的google_container_node_pool资源块,调整node_config里的disk_size_gb字段为目标值。例如:
resource "google_container_node_pool" "your_node_pool" {
  name       = "your-node-pool-name"
  cluster    = google_container_cluster.your_cluster.name
  node_count = 4

  node_config {
    machine_type = "n2-standard-2"
    disk_size_gb = 100  # 这里改成你需要的磁盘大小
  }

  # 关键:配置滚动更新策略,保证无停机
  management {
    auto_repair  = true
    auto_upgrade = true
  }

  update_config {
    max_surge       = 1       # 滚动更新时最多新增1个节点
    max_unavailable = 0       # 保证更新过程中没有节点不可用,零停机
  }
}
  1. 验证并执行变更
    运行terraform plan检查变更内容——此时Terraform应该只会标记节点池的disk_size_gb为待更新项,不会出现销毁节点池的计划。确认无误后执行terraform apply。

  2. GKE滚动更新过程
    Terraform会调用GKE API触发节点池的滚动更新:

  • 先启动配置了新磁盘大小的节点
  • 将旧节点上的Pod驱逐到新节点(依赖Kubernetes的Pod调度和副本控制器保证服务可用性)
  • 旧节点完成负载迁移后被销毁
  • 重复上述步骤直到所有节点都更新完毕

重要注意事项:

  • 仅支持持久化磁盘(pd-standard/pd-balanced/pd-ssd),本地SSD无法调整大小
  • max_unavailable = 0可以严格保证零停机,但会延长更新时间;如果允许短暂的节点数减少,可以适当调整为1(需确保你的工作负载副本数足够)
  • 若之前未配置update_config,建议先添加该配置并执行一次apply,再修改磁盘大小,避免出现批量销毁节点的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:55:26