【发布时间】:2019-04-30 22:30:45
【问题描述】:
我正在尝试使用在同一个 pod 上运行的边车代理从 k8s 实例连接到云 sql。
根据 Google 指南,我应该重用带有 JSON 私钥的服务帐户,以让 pod 访问给定的 SQL 实例。
使用新创建的 SQL 实例,我似乎会自动获得如下所示的服务帐户:
[hash]@speckle-umbrella-pg-8.iam.gserviceaccount.com
使用此帐户,我如何生成 JSON 私钥?我试图在“连接”选项卡中创建 SSL 证书,但没有创建 JSON 证书的选项。
作为第二个选项,我试图重用现有的 IAM 服务帐户 - “Compute Engine 默认服务帐户”,并为其生成了 JSON 密钥,但它不起作用。
我的设置方式是:
- 我创建了一个秘密
kubectl create secret generic cloudsql-instance-credentials --from-file=credentials.json=[PROXY_KEY_FILE_PATH] -
我将容器附加到 pod:
- name: cloudsql-proxy image: gcr.io/cloudsql-docker/gce-proxy:1.11 command: ["/cloud_sql_proxy", "-instances=project-name:us-central1:sql-instance-name=tcp:5432", "-credential_file=/secrets/cloudsql/credentials.json"] securityContext: runAsUser: 2 # non-root user allowPrivilegeEscalation: false volumeMounts: - name: cloudsql-instance-credentials mountPath: /secrets/cloudsql readOnly: true
什么是正确的方法? Goole 文档似乎不包含完整的信息。
【问题讨论】:
标签: google-cloud-platform google-cloud-sql google-kubernetes-engine