# Tạo service account key mới
gcloud iam service-accounts keys create key.json \\\\
--iam-account=YOUR-SERVICE-ACCOUNT@YOUR-PROJECT.iam.gserviceaccount.com
# Key sẽ tự động tải về Cloud Shell
kubectl create secret generic cloud-sql-creds \\\\
--from-file=service_account.json=key.json
vd
gcloud iam service-accounts keys create key.json \\
--iam-account=cloud-sql-proxy@deep-freehold-437008-j5.iam.gserviceaccount.com
nano deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-app
spec:
replicas: 1
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: app
image: nginx:latest
env:
- name: DB_HOST
value: "127.0.0.1"
- name: DB_PORT
value: "5432"
- name: cloud-sql-proxy
image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:latest
command:
- "/cloud_sql_proxy"
- "-instances=deep-freehold-437008-j5:us-central1:my-first-cloud-sql-database=tcp:5432"
- "-credential_file=/secrets/service_account.json"
securityContext:
runAsNonRoot: true
volumeMounts:
- name: cloud-sql-creds
mountPath: /secrets/
readOnly: true
volumes:
- name: cloud-sql-creds
secret:
secretName: cloud-sql-creds
gcloud sql instances describe YOUR-INSTANCE-NAME --format='value(connectionName)'
vd:
gcloud sql instances describe my-first-cloud-sql-database --format='value(connectionName)'
trả về:
deep-freehold-437008-j5:us-central1:my-first-cloud-sql-database
kubectl apply -f deployment.yaml