GKE调用setSize API设nodeCount为0无法将每可用区节点数置0
GKE调用setSize API设置nodeCount为0无法清空节点池问题
我参考setSize API文档中的Python示例,将nodeCount设置为0以移除集群内所有节点,同时禁用自动扩缩容,相关实现代码如下:
gke = discovery.build("container", "v1", credentials=credentials) set_node_pool_size_request_body = {"nodeCount": 0} set_node_pool_autoscaling_request_body = {"autoscaling": {"enabled": False}} gke.projects() .locations() .clusters() .nodePools() .setSize(name=name, body=set_node_pool_size_request_body).execute() gke.projects() .locations() .clusters() .nodePools() .setAutoscaling(name=name, body=set_node_pool_autoscaling_request_body).execute()
我预期该操作会将节点池的单可用区节点数设置为0,对应控制台手动设置效果见下图:
通过控制台手动设置可正常生效:所有节点被移除,无Pod被调度。但通过API调用执行时,控制台对应节点数配置项显示为空,会残留1个节点,导致非预期的Pod被调度,异常效果见下图:
核心疑问
nodeCount是否为设置单可用区节点数的正确字段?
补充信息
- 本人是GKE与Kubernetes初学者,暂未检索到相关问题解决方案。
- 我知晓GKE通常需要至少1个节点运行系统Pod,但当前场景需清空所有节点,由于集群由GCP托管,判断该操作应当具备可行性。
- 运行脚本前,节点池配置为单可用区节点数1、开启自动扩缩容;脚本执行后,自动扩缩容成功被禁用,但单可用区节点数配置显示为空。
内容的提问来源于stack exchange,提问作者Brian Destura
相关产品推荐
相关产品推荐

