私はGCPに2つのプロジェクトを持っています. project1
とproject2
mysql
project1 にインスタンスをセットアップしました。
また、セットアップcloudsqlproxy
(ポッド) をmypod
行い、mypod cloudsqlproxy` の GKE クラスターにproject2.
I want to access mysql instance from
入れthrough
ました。
次のコードがありますcloudmysqlproxy
apiVersion: v1
kind: Service
metadata:
name: cloudsqlproxy-service-mainnet
namespace: dev
spec:
ports:
- port: 3306
targetPort: port-mainnet
selector:
app: cloudsqlproxy
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloudsqlproxy
namespace: dev
spec:
replicas: 1
selector:
matchLabels:
app: cloudsqlproxy
template:
metadata:
labels:
app: cloudsqlproxy
spec:
containers:
# Make sure to specify image tag in production
# Check out the newest version in release page
# https://github.com/GoogleCloudPlatform/cloudsql-proxy/releases
- name: cloudsqlproxy
image: b.gcr.io/cloudsql-docker/gce-proxy:latest
# 'Always' if imageTag is 'latest', else set to 'IfNotPresent'
imagePullPolicy: Always
name: cloudsqlproxy
command:
- /cloud_sql_proxy
- -dir=/cloudsql
- -instances=project1:asia-east1:development=tcp:0.0.0.0:3306
- -credential_file=/credentials/credentials.json
ports:
- name: port-mainnet
containerPort: 3306
volumeMounts:
- mountPath: /cloudsql
name: cloudsql
- mountPath: /credentials
name: cloud-sql-client-account-token
volumes:
- name: cloudsql
emptyDir:
- name: cloud-sql-client-account-token
secret:
secretName: cloud-sql-client-account-token
私は次の方法でセットアップcloud-sql-client-account-token
しました:
kubectl create secret cloud-sql-client-account-token --from-file=credentials.json=$HOME/credentials.json
credentials.json
のサービス アカウントからファイルをダウンロードした場所project1
。
ポッドから mysql インスタンスにアクセスしようとすると、次のエラーが発生します。
mysql --host=cloudsqlproxy-service-mainnet.dev.svc.cluster.local --port=3306
ERROR 1045 (28000): Access denied for user 'root'@'cloudsqlproxy~35.187.201.86' (using password: NO)
そしてcloud-proxy
ログ、私は次のようになります:
2018/11/25 00:35:31 Instance project1:asia-east1:development closed connection
project2
Podと同じプロジェクト ( ) で mysql インスタンスを起動する必要がありますか? 私は何が欠けていますか?
編集
このように設定することで、ローカルマシンのプロキシにアクセスできます
/cloud_sql_proxy -instances=project1:asia-east1:development=tcp:3306
次に、mysql クライアントを使用してプロキシに接続します。