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

GKE私有集群通过PGA调用受限Google Places API授权失败

解决方案

一、强制GKE Pod调用Google Places API走IPv4

1. 给Pod配置DNS优先解析IPv4

直接在你的Deployment或Pod的YAML配置里添加dnsConfig,强制解析域名时只返回IPv4地址:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-app-deployment
spec:
  template:
    spec:
      dnsConfig:
        options:
          - name: ipv4only
            value: "on"
      containers:
      - name: your-app-container
        image: your-app-image:latest

应用这个配置后,Pod访问Google Places API时会优先使用IPv4,走你配置的静态NAT出口。

2. 用NetworkPolicy限制IPv6出站流量(可选)

如果集群是双栈模式,你可以创建NetworkPolicy阻止Pod的IPv6出站请求,强制所有外部流量走IPv4:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: block-ipv6-outbound
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
    ports:
    - protocol: TCP
      port: 443
    - protocol: TCP
      port: 80

3. 关闭集群的IPv6支持(如果业务不需要)

如果你的业务完全用不到IPv6,直接在GKE控制台修改集群配置,关闭IPv6功能,这样所有出站流量都会默认走IPv4。

二、获取Google Places API的IPv6地址段加入白名单

1. 通过DNS查询获取Google的IPv6范围

执行以下命令,直接拿到Google所有的IPv6地址段:

dig txt _netblocks.google.com +short | grep ipv6

把返回的CIDR段全部添加到API密钥的允许IP列表里。

2. 获取完整的Google云服务IP范围

如果上面的结果不全,可以查询Google云服务的完整IP段:

dig txt _cloud-netblocks.googleusercontent.com +short

从返回结果里提取IPv6的CIDR,添加到白名单即可。

注意:Google的IP范围会定期更新,最好写个脚本定期同步,避免IP变更导致访问失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:40:57