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

GKE环境下适配CloudSQL Proxy的NetworkPolicy出口规则配置问题

问题根因

  1. 同一Pod内多个容器通过127.0.0.1(loopback网卡)的通信完全不受Kubernetes NetworkPolicy管控,你最初配置的127.0.0.1/32放行规则本身没有实际作用。
  2. 你配置了明确的Egress规则后,NetworkPolicy会默认拒绝所有未明确放行的出口流量:你的配置仅放行了到127.0.0.1的3307端口流量,但CloudSQL Proxy容器本身需要主动访问外部服务,这部分流量被拦截,所以出现了Google API访问超时的报错。

需要放行的出口流量

你需要额外放行三类出口流量:

  • DNS解析流量:CloudSQL Proxy需要解析域名,需要放通到集群DNS服务的53端口(UDP+TCP)流量
  • Google API访问流量:CloudSQL Proxy需要调用Google Cloud API拉取CloudSQL实例元数据,需要放通到Google API地址段的443端口TCP流量
  • CloudSQL实例私有IP访问流量:CloudSQL Proxy需要和目标CloudSQL实例建立私有连接,需要放通到CloudSQL实例私有IP的3307端口TCP流量

正确配置示例

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  labels:
    env: develop
    projectid: my-project
  name: my-networkpolicy
  namespace: <你的业务命名空间>
spec:
  # 仅匹配你的业务Pod,替换为你实际的Pod标签
  podSelector:
    matchLabels:
      app: my-business-app
  policyTypes:
  - Egress
  egress:
  # 1. 放行DNS解析流量
  - ports:
    - port: 53
      protocol: UDP
    - port: 53
      protocol: TCP
    to:
    - namespaceSelector:
        matchLabels:
          kubernetes.io/metadata.name: kube-system
      podSelector:
        matchLabels:
          k8s-app: kube-dns
  # 2. 放行Google API访问流量,使用Private Google Access的固定私网地址段
  - ports:
    - port: 443
      protocol: TCP
    to:
    - ipBlock:
        cidr: 199.36.153.8/30
  # 3. 放行到CloudSQL实例私有IP的访问,替换为你实际的CloudSQL实例私有IP/段
  - ports:
    - port: 3307
      protocol: TCP
    to:
    - ipBlock:
        cidr: <你的CloudSQL实例私有IP>/32

如果安全要求较低,也可以直接放行所有到VPC私有地址段的流量,无需单独指定CloudSQL实例IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:54:03