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

使用Ansible模块创建GKE集群失败问题求助

解决GKE集群创建时的IP配置冲突问题

问题背景

此前使用Ansible的google.cloud.gcp_container_cluster模块创建GKE集群一直正常,近期Jenkins构建突然失败,报错信息如下:

fatal: [localhost]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3.9"}, "changed": false, "msg": "GCP returned error: {'error': {'code': 400, 'message': 'Cluster_ipv4_cidr=192.168.8.0/21 and cluster_secondary_range_name=ndev-pods cannot be specified at the same time.', 'status': 'INVALID_ARGUMENT', '}}

出错的Ansible集群配置片段:

name: "Create a GKE cluster"
google.cloud.gcp_container_cluster:
  name: "{{ name }}"
  initial_node_count: "{{ initial_node_count }}"
  location: "{{ gcp_zone }}"
  project: "{{ gcp_project }}"
  release_channel:
    channel: "{{ channel}}"
  ip_allocation_policy:
    cluster_ipv4_cidr_block: "{{ cluster_ipv4_cidr_block}}"
    cluster_secondary_range_name: "{{ cluster_secondary_range_name}}"
    services_ipv4_cidr_block: "{{ services_ipv4_cidr_block}}"
    services_secondary_range_name: "{{ services_secondary_range_name}}"

错误原因

GCP的GKE集群IP分配规则明确:cluster_ipv4_cidr_block(手动指定Pod CIDR块)与cluster_secondary_range_name(使用VPC子网预定义二级范围)是互斥配置项,不能同时设置。同理,services_ipv4_cidr_block和services_secondary_range_name也不能并存。

之前构建正常的可能原因:

  • 早期GCP API对该互斥规则校验不严格
  • 此前变量配置中其中一项为空值,未触发冲突
  • 近期GCP API或Ansible模块更新后,校验逻辑收紧

解决方案

根据你的网络规划需求二选一:

方案1:使用VPC子网预定义二级范围(推荐共享VPC场景)

删除手动指定的CIDR块配置,仅保留二级范围名称:

ip_allocation_policy:
  cluster_secondary_range_name: "{{ cluster_secondary_range_name}}"
  services_secondary_range_name: "{{ services_secondary_range_name}}"

需确保cluster_secondary_range_name对应的VPC子网二级范围已预先创建,且IP段满足集群Pod数量需求。

方案2:手动指定CIDR块(适用于独立VPC或自定义IP规划)

删除二级范围名称配置,仅保留手动指定的CIDR:

ip_allocation_policy:
  cluster_ipv4_cidr_block: "{{ cluster_ipv4_cidr_block}}"
  services_ipv4_cidr_block: "{{ services_ipv4_cidr_block}}"

注意:指定的CIDR块不能与VPC内其他资源IP段冲突,且大小需匹配集群规模(cluster_ipv4_cidr_block建议至少/21以支持足够Pod数量)。

额外检查项

  • 确认Jenkins加载的variables.json中,互斥变量未同时被赋值
  • 若因模块版本更新导致兼容性问题,可固定google.cloud集合版本:
    ansible-galaxy collection install google.cloud==1.0.2  # 替换为之前正常工作的版本号
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:40:12