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

GCP环境下Kubernetes Job无法连接Cloud SQL(MySQL)问题求助

问题分析与解决办法

核心原因

你的Pod能通过127.0.0.1连接Cloud SQL,是因为Pod中运行了Cloud SQL Auth Proxy(通常是sidecar容器或init容器),这个代理会监听本地3306端口,把请求转发到Cloud SQL实例。而你创建Job时只复制了环境变量,没有把Auth Proxy的容器配置、相关卷挂载等一并复制到Job的Pod模板里,导致Job的Pod中没有代理进程,自然无法通过127.0.0.1连接数据库。

解决步骤

  • 先查看原Pod的部署配置,确认Auth Proxy的容器细节:
    • 镜像:一般是gcr.io/cloudsql-docker/gce-proxy:latest
    • 启动命令:类似/cloud_sql_proxy -instances=<你的实例连接名>=tcp:3306 -credential_file=/secrets/cloudsql/credentials.json
    • 卷挂载:需要挂载存放Cloud SQL服务账号密钥的Secret卷(对应上面的/secrets/cloudsql路径)
  • 在通过Kubernetes Python客户端创建Job时,把这些Auth Proxy的容器配置、卷配置完整添加到Job的spec.template.spec.containers和spec.template.spec.volumes中,和原Pod保持一致。
  • 启动Job后,检查Pod的容器状态,确保Auth Proxy容器正常运行,查看日志确认代理已成功连接到Cloud SQL实例。

额外验证

  • 确认Job的Pod和原Pod使用相同的服务账号权限,确保有访问Cloud SQL实例的权限。
  • 检查环境变量中的数据库连接地址确实是127.0.0.1:3306,没有被意外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:45:40