我使用GCloud,我有一个kubernate集群和一个cloud实例。
我有一个简单的node.js应用程序,它使用数据库。当我使用gcloud app deploy进行部署时,它可以访问数据库。但是,当我构建一个dockerimage并公开它时,它无法到达数据库。
base_settings:cloud_sql_instances。对于mysql连接,我在socketPath配置中使用相同的值。能否请您解释一下如何从dockerized应用程序连接到云sql。
发布于 2019-03-14 20:38:11
当您使用gcloud app deploy在app.yaml上部署应用程序时,该平台在一个容器中运行它,同时运行一个负责运行cloud_sql_proxy的侧车容器(您通过在app.yaml文件中指定base_settings:cloud_sql_instances来请求它)。
Kubernetes引擎不使用app.yaml文件,也不向您提供这个侧车容器,因此您必须设置它。公共医生展示了如何通过为数据库凭据创建秘密和使用侧车容器配置更新部署文件来实现此操作。文档中显示的示例如下所示:
...
- name: cloudsql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.11
command: ["/cloud_sql_proxy",
"-instances=<INSTANCE_CONNECTION_NAME>=tcp:3306",
"-credential_file=/secrets/cloudsql/credentials.json"]
securityContext:
runAsUser: 2 # non-root user
allowPrivilegeEscalation: false
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
readOnly: true
...发布于 2019-03-14 20:38:28
发布于 2019-09-08 07:26:51
可以使用内部IP地址连接的文档提及。有人试过吗?
https://stackoverflow.com/questions/55170317
复制相似问题