以前はサイドカー パターンで動作していたクラウド SQL プロキシがありましたが、レポの Kubernetes クラスターで Cloud SQL プロキシをcloudsql-proxy
見つけたので、それを独自に分割することにしました。
最初の接続でコンテナがクラッシュするという問題がすぐに発生しました。できるだけ純粋なテスト ケースに戻り、livenessProbe
.
❯❯❯ kubectl get pods
NAME READY STATUS RESTARTS AGE
cloudsqlproxy-109958711-ks4bf 1/1 Running 5 2m
展開:
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: cloudsqlproxy
spec:
replicas: 1
template:
metadata:
labels:
app: cloudsqlproxy
spec:
containers:
- image: gcr.io/cloudsql-docker/gce-proxy:1.09
name: cloudsqlproxy
command: "/cloud_sql_proxy", "--dir=/cloudsql",
"-instances=foo:us-central1:db=tcp:3306",
"-credential_file=/secrets/cloudsql/credentials.json"]
ports:
- name: port-db
containerPort: 3306
livenessProbe:
exec:
command: ["netcat", "-U", "/cloudsql/foo:us-central1:db=tcp:3306"]
initialDelaySeconds: 5
timeoutSeconds: 10
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
readOnly: true
- name: ssl-certs
mountPath: /etc/ssl/certs
- name: cloudsql
mountPath: /cloudsql
volumes:
- name: cloudsql-instance-credentials
secret:
secretName: cloudsql-instance-credentials
- name: ssl-certs
hostPath:
path: /etc/ssl/certs
- name: cloudsql
emptyDir:
サービス:
apiVersion: v1
kind: Service
metadata:
name: cloudsqlproxy-service
spec:
ports:
- port: 3306
targetPort: port-db
selector:
app: cloudsqlproxy
ログには、起動とリッスン以外は何も表示されません。
E 2017/10/09 13:51:35 Listening on 127.0.0.1:3306 for foo:us-central1:db
E 2017/10/09 13:51:35 Ready for new connections
E 2017/10/09 13:52:38 using credential file for authentication; email=cloud-sql-client@foo.iam.gserviceaccount.com
E 2017/10/09 13:52:38 Listening on 127.0.0.1:3306 for foo:us-central1:db
E 2017/10/09 13:52:38 Ready for new connections
E 2017/10/09 13:54:26 using credential file for authentication; email=cloud-sql-client@foo.iam.gserviceaccount.com
E 2017/10/09 13:54:26 Listening on 127.0.0.1:3306 for foo:us-central1:db
E 2017/10/09 13:54:26 Ready for new connections
私は何が欠けていますか?クラッシュの原因を見つけるには、どこを見ればよいですか? 構成エラーがありますか?