我有一个带有运行 REST API 的 Golang 二进制文件的 Pod。pod 中有一个边车,用于 gce 云 SQL 代理。
我不断收到“ dial tcp 127.0.0.1:3306: connect: connection refused
”错误
CloudSQL 连接的代理正在工作,我可以使用相同的凭据通过云外壳成功连接。
在 pod 中,我还添加了 mysql 客户端,我可以连接到我的数据库,所以我认为凭据和一切都很好,我已经证明了 cloudsql 连接的代理工作并且可以查询数据库
我有以下内容;
- 来自 1.10 的 Golang 二进制文件
- 谷歌云上的 Kubernetes 引擎
- 集群版本:1.10.2-gke.3
- 二进制运行在 alpine:latest 容器之上
- 当前的 SQL 库是https://github.com/go-sql-driver/mysql
- GCE 云代理最新和 1.11
- 作为环境变量添加的凭据是正确的 user:password@tcp:host:port/DATABASE
- 代码使用 get 获取
os.Getenv
环境变量 - 以此作为参考:https ://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine
- Cloud SQL 实例已启动并正在运行
- 秘密在 kube 中创建并安装为卷
几个月前,在之前的测试中,唯一的变化是向 kubernetes 部署添加服务,并在名为 alpha 的命名空间中运行部署和所有内容,而不是默认。凭据已创建,并且名称空间中的所有内容都已创建。