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

运行acm-terraform-blog-part1时GKE节点池创建报错修复方案咨询

问题描述

运行acm-terraform-blog-part1项目创建GKE节点池时返回如下错误:

Error: error creating NodePool: googleapi: Error 400: Creation of node pools using node images based on Docker container runtimes is not supported in GKE v1.23. This is to prepare for the removal of Dockershim in Kubernetes v1.24. We recommend that you migrate to image types based on Containerd (examples). For more information, contact Cloud Support., badRequest.

问题原因

该报错是GKE版本迭代的强制限制:GKE 1.23及以上版本不再支持基于Docker容器运行时的节点镜像,为Kubernetes 1.24版本正式移除Dockershim组件做适配,要求所有新建节点池必须使用基于Containerd运行时的镜像类型。

修复步骤
  • 打开项目中定义GKE节点池的Terraform配置文件,找到google_container_node_pool资源块下的node_config配置段。
  • 将image_type字段的原有取值替换为Containerd对应的镜像类型:
    • 原配置使用COS(Docker版Container-Optimized OS)的,替换为COS_CONTAINERD
    • 原配置使用UBUNTU(Docker版Ubuntu)的,替换为UBUNTU_CONTAINERD
  • 配置修改参考示例:
resource "google_container_node_pool" "main_pool" {
  name     = "main-node-pool"
  cluster  = google_container_cluster.main.id
  location = var.cluster_region

  node_config {
    # 替换为Containerd类型镜像
    image_type   = "COS_CONTAINERD"
    machine_type = var.node_machine_type
    # 磁盘、网络、服务账号等其余原有配置保持不变即可
  }
  # 节点数量、自动扩缩容等其余原有配置保持不变
}
  • 配置修改完成后,在项目根目录执行terraform init(未初始化过provider时需要执行)、terraform plan,确认输出的变更计划仅涉及节点镜像类型调整、无不符合预期的资源变更。
  • 校验通过后执行terraform apply确认变更,等待节点池创建完成即可。

补充说明:Containerd运行时完全兼容符合OCI标准的容器镜像,原有部署在集群上的业务应用不需要做镜像层面的改造即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:15:35