GCPのCloud SQLへのつなぎ方にはいくつか方法があるが、Kubernetes内にあるpodから接続するにはアプリのコンテナと同一pod内にcloud_sql_proxyのコンテナを立ててつなぐ方法で設定した。
基本的にはここにあるテンプレートどおりやっていけば問題ないが、GCP上で実行する前提だと、いくつかの設定は不要。
containers: (アプリのコンテナの設定) - name: cloudsql-proxy image: gcr.io/cloudsql-docker/gce-proxy:1.09 imagePullPolicy: Always ports: - containerPort: 3306 command: - /cloud_sql_proxy - -dir=/cloudsql - -instances=foo:asia-northeast1:bar=tcp:0.0.0.0:3306 volumeMounts: - mountPath: /cloudsql name: cloudsql volumes: - name: cloudsql emptyDir:
これでいける。インスタンスを設定する部分の foo:asia-northeast1:bar
の部分は、
gcloud sql instances describe [インスタンスID]
で取得できる。 あとはアプリ側からは、127.0.0.1:3306向けに接続するだけでOK。