Terraform创建GKE集群时遇Cluster.initial_node_count报错求助
问题原因
GKE集群API存在硬性约束:当设置remove_default_node_pool = true时,必须显式指定initial_node_count = 0。
你的Terraform配置仅开启了remove_default_node_pool = true,但未设置initial_node_count,此时GKE会使用默认值1。这就形成了矛盾:你要求移除默认节点池,但集群初始化时又被要求创建一个含1个节点的默认池,API校验因此失败,抛出Cluster.initial_node_count must be greater than zero的错误。
解决方法
修改google_container_cluster资源,添加initial_node_count = 0参数,明确告知GKE集群初始化时无需创建默认节点池:
resource "google_container_cluster" "my-cluster" { name = "my-cluster" location = var.zone remove_default_node_pool = true initial_node_count = 0 # 新增该行配置 } resource "google_container_node_pool" "default" { name = "default" cluster = google_container_cluster.my-cluster.name location = google_container_cluster.my-cluster.location node_count = 1 }
补充说明
你的gcloud命令能正常执行,是因为该命令直接创建了包含1个节点的默认节点池,不存在移除默认池的操作,因此没有配置冲突。而Terraform的配置逻辑是先创建无默认节点池的集群,再单独添加自定义节点池,所以必须显式声明初始节点数为0来匹配这个逻辑。
内容的提问来源于stack exchange,提问作者bionics parv
相关产品推荐
相关产品推荐

