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

为何配置gcs_fuse_csi_driver_config时提示不支持的块类型?

GKE Terraform配置中gcs_fuse_csi_driver_config报unsupported block type错误的原因及解决

问题描述

我参考了相关官方文档后,在google_container_cluster资源中配置了GCS FUSE CSI驱动,具体代码如下:

resource "google_container_cluster" "primary-cluster" {
  enable_kubernetes_alpha  = false
  enable_legacy_abac       = false
  enable_shielded_nodes    = false
  remove_default_node_pool = true
  initial_node_count       = 1
  location                 = local.ws_vars["zone"]
  logging_service          = "logging.googleapis.com/kubernetes"
  monitoring_service       = "monitoring.googleapis.com/kubernetes"
  name                     = local.ws_vars["cluster-name"]
  network                  = "projects/${local.ws_vars["project-id"]}/global/networks/${local.ws_vars["network"]}"
  project                  = local.ws_vars["project-id"]
  subnetwork               = "projects/${local.ws_vars["project-id"]}/regions/us-east4/subnetworks/${local.ws_vars["network"]}"

  #Figure out how to enable notifications and add pubsub topic for that.


  ip_allocation_policy {
    #cluster_ipv4_cidr_block = local.ws_vars["cidr-block"]
    cluster_secondary_range_name  = "subnet-pods"
    services_secondary_range_name = "subnet-services"
  }

  addons_config {
    horizontal_pod_autoscaling {
      disabled = false
    }

    http_load_balancing {
      disabled = false
    }

    network_policy_config {
      disabled = false
    }

    gcs_fuse_csi_driver_config {
      enabled = true
    }
  }

  database_encryption {
    state = "DECRYPTED"
  }

  maintenance_policy {
    daily_maintenance_window {
      start_time = "01:00"
    }
  }

  network_policy {
    enabled  = true
    provider = "CALICO"
  }

  private_cluster_config {
    enable_private_endpoint = false
    enable_private_nodes    = true
    master_ipv4_cidr_block  = "172.14.0.0/28"
  }

  release_channel {
    channel = local.ws_vars["channel"]
  }

  timeouts {}

  vertical_pod_autoscaling {
    enabled = true
  }

  workload_identity_config {
    workload_pool = "${local.ws_vars["project-id"]}.svc.id.goog"
  }
}

但执行Terraform时收到错误提示:unsupported block type,请问这是什么原因?


错误原因及解决方法

出现这个错误的核心原因主要有两个:

  1. Terraform Google Provider版本过低
    gcs_fuse_csi_driver_config配置块是在Terraform Google Provider的4.0.0版本之后才引入的。如果当前使用的Provider版本低于这个阈值,Terraform无法识别该配置块,直接抛出unsupported block type错误。

解决方法:在Terraform配置文件中更新Provider版本约束,示例如下:

terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = ">= 4.0.0" # 可指定更高的稳定版本
    }
  }
}

之后执行terraform init -upgrade完成Provider版本升级。

  1. GKE集群版本不兼容
    GCS FUSE CSI驱动要求GKE集群的Kubernetes版本至少为1.21+(不同Provider版本对应支持的集群版本可能略有差异)。若集群版本低于此要求,即使Provider版本达标,也会出现配置不兼容问题。

解决方法:

  • 确认当前GKE集群的Kubernetes版本符合要求;
  • 新建集群时,可通过release_channel指定REGULAR或RAPID通道,或直接配置min_master_version和node_version来使用支持的版本。
  1. 配置块位置错误(你的配置中不存在此问题)
    gcs_fuse_csi_driver_config必须嵌套在addons_config块内,你的配置已正确放置该块,因此可排除此原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:02:49