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

使用Terraform创建GKE集群遇SSD_TOTAL_GB配额不足403错误求助

问题分析与解决

你的猜测部分正确,但存在额外的配额逻辑差异

Terraform销毁后确实可能残留资源占用SSD配额,但还有一个关键原因:GKE标准集群与Autopilot集群的配额计算规则不同。Autopilot集群由谷歌托管,其SSD资源不占用你账户的SSD_TOTAL_GB配额(或占用量远低于标准集群),所以控制台能创建,但你的Terraform标准集群会触发配额不足报错。

是否存在未自动删除的资源?原因是什么?

大概率存在残留资源,常见原因包括:

  • Terraform状态不一致:如果之前的terraform destroy中途失败(比如网络中断、权限问题),Terraform状态文件会标记资源已销毁,但实际GCP上的磁盘、节点池等资源还存在,导致配额被占用。
  • GKE资源销毁延迟:GKE集群/节点池销毁后,关联的SSD磁盘可能不会立即被删除,尤其是预抢占式节点的本地SSD,有时会残留一段时间。
  • Terraform配置缺失清理参数:你的现有配置没有明确要求销毁节点池时删除关联磁盘,部分情况下GCP会保留磁盘资源。

解决步骤

1. 手动清理GCP上的残留资源

  • 打开GCP控制台,进入Compute Engine > 磁盘页面,筛选目标区域的SSD磁盘,找到所有“未附加”的磁盘(尤其是名称包含你的集群/节点池前缀的),直接删除。
  • 进入Kubernetes Engine > 集群页面,确认没有残留的集群或节点池,若有则手动删除。

2. 修正Terraform状态与配置

  • 执行以下命令查看Terraform管理的资源列表:
    terraform state list
    
  • 对比GCP实际存在的资源,把已在GCP删除但仍在Terraform状态中的资源移除:
    terraform state rm google_container_node_pool.cluster_node_pool
    terraform state rm google_container_cluster.cluster
    
  • 更新Terraform配置,给节点池添加delete_nodes_on_destroy = true参数,确保销毁时清理节点和磁盘:
    resource "google_container_node_pool" "cluster_node_pool" {
      name       = "${var.cluster-name}-${terraform.workspace}-node-pool"
      location   = var.region
      cluster    = google_container_cluster.cluster.name
      node_count = 1
      # 添加这一行确保销毁节点池时删除所有节点及磁盘
      delete_nodes_on_destroy = true
    
      node_config {
        preemptible  = true
        machine_type = "e2-medium"
        service_account = google_service_account.default.email
        oauth_scopes    = [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    }
    

3. 重新执行Terraform操作

  • 先执行terraform plan确认配置和状态一致,再执行terraform apply尝试重新创建集群。如果还是报配额错误,检查是否还有残留资源,或者去GCP配额页面申请小幅提升SSD_TOTAL_GB配额(免费试用账户通常支持小额提升)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:01:05