我有一个带有运行REST API的Golang二进制文件的Pod . 在gce Cloud SQL代理的pod中有一个侧面汽车 .

我经常收到“ dial tcp 127.0.0.1:3306: connect: connection refused ”错误

Proxy to CloudSQL连接工作正常,我可以通过 Cloud shell成功连接相同的凭据 .

在pod中,我还添加了mysql客户端,我可以连接到我的数据库,所以我认为凭据和一切都很好,我已经证明了cloudql连接的代理工作并且可以查询数据库

我有以下几点;

  • 来自1.10的Golang二进制文件

  • Google Cloud上的Kubernetes引擎

  • 群集版本:1.10.2-gke.3

  • 二进制文件运行在高山:最新容器之上

  • 当前SQL Libary是https://github.com/go-sql-driver/mysql

  • GCE Cloud Proxy Latest和1.11

  • 作为环境变量添加的凭据是正确的用户:password @ tcp:host:port / DATABASE

  • 代码使用get os.Getenv 作为env变量

  • 用作参考:https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine

  • Cloud SQL实例已启动并正在运行

  • 秘密在kube中创建并作为卷安装

在之前的测试中,在几个月前工作之前的唯一变化是向kubernetes部署添加服务,并在名为alpha的命名空间中运行部署和所有内容,而不是默认值 . 创建凭证并在名称空间中创建所有内容 .