cloud_sql_proxyのsidecar containerを立てる

GCPのCloud SQLへのつなぎ方にはいくつか方法があるが、Kubernetes内にあるpodから接続するにはアプリのコンテナと同一pod内にcloud_sql_proxyのコンテナを立ててつなぐ方法で設定した。

github.com

基本的にはここにあるテンプレートどおりやっていけば問題ないが、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。