Ive got a Pod with a Golang binary running an REST API. There's a side car in the pod for the gce cloud SQL proxy.
I'm constantly getting a "dial tcp 127.0.0.1:3306: connect: connection refused
" error
The Proxy to CloudSQL connectivity is working, I can successfully connect via the cloud shell with the same credentials.
In the pod, I've also added the mysql client and I can connect to my database, so I think the credentials and everything are OK, I've proved the proxy to cloudsql connection works and can query the database
I have the following;
- Golang binary from 1.10
- Kubernetes Engine on Google Cloud
- Cluster Version: 1.10.2-gke.3
- Binary runs on top of an alpine:latest container
- Current SQL Libary is https://github.com/go-sql-driver/mysql
- GCE Cloud Proxy Latest and 1.11
- Credentials added as environment variables are correct user:password@tcp:host:port/DATABASE
- code uses get
os.Getenv
for env variables - Used this as the reference: https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine
- Cloud SQL instance is up and running
- secrets are created in kube and mounted as volumes too
The only change prior to this working a few months back during an previous test was the addition of services to the kubernetes deployment, and running the deployment and everything in a namespace called alpha, not default. The credential are created and everything in the name space.