GKE集群对接Mongo Atlas需配置的IP/CIDR范围及VPC peering设置
Mongo Atlas与GKE集群VPC对等连接配置问题解答
1. GKE集群与VPC子网IP/CIDR选择规则
- GKE集群的节点必须部署在GCP VPC的某个子网内,不需要整个集群与VPC全段同网段,只要节点所在子网属于VPC的地址范围即可。
- 私有GKE集群涉及三类独立的IP段,三类段之间、以及和VPC已有网段、Atlas的VPC网段都不能重叠:
- 节点IP段:属于你选择的VPC子网的CIDR,按预计的集群最大节点数规划即可,单节点占用1个IP
- Pod IP段:GKE集群内Pod的专属地址段,默认VPC内其他资源不会占用该段
- Service IP段:GKE集群内Service的专属地址段,同样不会占用VPC子网的IP
- 实现方式:创建GKE集群时直接指定要使用的VPC和对应子网,系统会自动把节点部署到该子网内。
2. 地址段配置与流量流向说明
- 你选择的控制平面IP
172.16.0.0/28只要不跟其他段重叠就可以正常使用。Pod段不需要强制设置为192.168.0.0/16,选任意未被占用的私有段均可,建议按集群最大Pod数规划,比如单集群Pod不超过65536的话选/16完全够用。 - Service段不能选择VPC子网内已被占用的范围,你提到的
192.168.0.0/9如果和VPC已有子网、Atlas网段都不重叠就可以使用,注意Service段默认不会被路由到VPC外部,所以只要不与Atlas段冲突即可。 - 流量流向:Ingress是用来处理外部请求进入GKE集群的组件,你的Pod访问Atlas的请求不会经过Ingress,直接走VPC的路由表通过对等连接到达Atlas。VPC对等连接默认只打通两个VPC的三层网络,Atlas侧默认不会主动访问你VPC内的服务,只有你VPC内的Pod、节点等资源主动发起的请求可以通过对等连接访问Atlas的Mongo实例,你可以在Atlas的IP访问白名单里进一步限制可访问的源IP段。
3. CIDR重叠报错解决与完整配置步骤
你遇到的报错是因为新建的192.168.0.0/16段和Atlas侧已有的192.168.160.0/21段重叠了,VPC对等连接要求两边的所有IP段都不能有重叠,该问题和你GKE集群部署在us-central-1无关,Atlas的冲突子网在us-west3,同一个对等连接两边的所有段不管所属区域都不能重叠。
Connection Failed
Error trying to process asynchronous operation: An IP range in the peer network (192.168.0.0/16) overlaps with an IP range in the local network (192.168.160.0/21) allocated by resource (projects/p-0nwfjlybkawulyxo3aiyci3d/regions/us-west3/subnetworks/sn-61798f7fb1f2d87e98a3d6a7-77ha2bvh).
正确配置步骤:
- 先查询Mongo Atlas侧VPC的所有IP段,记录所有不能冲突的范围
- 规划GCP侧的所有网段,确保以下所有段都不与Atlas的段重叠:
- GCP VPC内所有已有的子网CIDR
- GKE集群的Pod CIDR
- GKE集群的Service CIDR
- GKE控制平面的CIDR
- 调整你要新建的GKE节点子网CIDR,比如把
192.168.0.0/16改成更小编段、或者换用10.0.0.0/8、172.16.0.0/12段里未被占用的范围,确保不和Atlas的192.168.160.0/21重叠即可 - 创建GKE集群时指定该新子网,启用私有集群配置,控制平面的访问范围按需设置
- 创建VPC对等连接,接受GCP侧的对等连接请求,在两边的路由表里添加指向对端网段的路由
- 在Atlas的IP访问白名单里添加你GKE集群的Pod、节点IP段,允许GKE侧访问Atlas实例
内容的提问来源于stack exchange,提问作者Davtho1983
相关产品推荐
相关产品推荐

