Cloud SQL (Postgres)으로 마이그레이션하려고합니다. 저는는 Kubernetes에 다음과 같은 배치는이 지침 https://cloud.google.com/sql/docs/mysql/connect-container-engine 따라 한 한 :Kubernetes의 컨테이너에 Cloud SQL 자격 증명을 마운트하는 데 문제가 발생했습니다.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: menu-service
spec:
replicas: 1
template:
metadata:
labels:
app: menu-service
spec:
volumes:
- name: cloudsql-instance-credentials
secret:
secretName: cloudsql-instance-credentials
- name: cloudsql
emptyDir:
- name: ssl-certs
hostPath:
path: /etc/ssl/certs
containers:
- image: gcr.io/cloudsql-docker/gce-proxy:1.11
name: cloudsql-proxy
command: ["/cloud_sql_proxy", "--dir=/cloudsql",
"-instances=tabb-168314:europe-west2:production=tcp:5432",
"-credential_file=/secrets/cloudsql/credentials.json"]
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
readOnly: true
- name: ssl-certs
mountPath: /etc/ssl/certs
- name: cloudsql
mountPath: /cloudsql
- name: menu-service
image: eu.gcr.io/tabb-168314/menu-service:develop
imagePullPolicy: Always
env:
- name: MICRO_BROKER
value: "nats"
- name: MICRO_BROKER_ADDRESS
value: "nats.staging:4222"
- name: MICRO_REGISTRY
value: "kubernetes"
- name: ENV
value: "staging"
- name: PORT
value: "8080"
- name: POSTGRES_HOST
value: "127.0.0.1:5432"
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: cloudsql-db-credentials
key: username
- name: POSTGRES_PASS
valueFrom:
secretKeyRef:
name: cloudsql-db-credentials
key: password
- name: POSTGRES_DB
value: "menus"
ports:
- containerPort: 8080
을하지만 불행하게도 나는 배치 업데이트하려고이 오류 받고 있어요 :
MountVolume.SetUp failed for volume "kubernetes.io/secret/69b0ec99-baaf-11e7-82b8-42010a84010c-cloudsql-instance-credentials" (spec.Name: "cloudsql-instance-credentials") pod "69b0ec99-baaf-11e7-82b8-42010a84010c" (UID: "69b0ec99-baaf-11e7-82b8-42010a84010c") with: secrets "cloudsql-instance-credentials" not found
Error syncing pod, skipping: timeout expired waiting for volumes to attach/mount for pod "staging"/"menu-service-1982520680-qzwzn". list of unattached/unmounted volumes=[cloudsql-instance-credentials]
내가 여기서 뭔가를 놓친를?
실제로이 두 단계를 모두 성공적으로 완료 했으므로 (5.1 및 5.2) 존재해야합니다. 내 서비스 계정에 잘못된 권한이있는 경우를 제외하고는 관리 사용자로 만들었습니다. 이상한! 다시 끝내려면 프로세스 끝을 시도해 볼 수 있습니다. 아무 것도 놓친 경우 참조하십시오. –
'kubectl get secret '을 실행하여 비밀이 실제로 만들어 졌는지 확인할 수 있습니까? 이 명령은 성공해야합니다 :'kubectl secret cloudsql-instance-credentials' –
두 사람 모두 성공적으로 비밀을 반환합니다. 그들은'kubectl get secret'도 같이 나타납니다. –