首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从gcloud中的容器应用程序连接到云sql?

问如何从gcloud中的容器应用程序连接到云sql?
EN

Stack Overflow用户
提问于 2019-03-14 19:09:50
回答 3查看 3.1K关注 0票数 1

我使用GCloud,我有一个kubernate集群和一个cloud实例。

我有一个简单的node.js应用程序,它使用数据库。当我使用gcloud app deploy进行部署时,它可以访问数据库。但是,当我构建一个dockerimage并公开它时,它无法到达数据库。

  1. 我公开了Docker应用程序如下:https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app
  2. 云SQL deosn没有启用私有IP,我使用云sql代理连接
  3. 在app.yaml中,我确实指定了base_settings:cloud_sql_instances。对于mysql连接,我在socketPath配置中使用相同的值。
  4. docker日志中的错误是: (节点:1) UnhandledPromiseRejectionWarning:错误:在PipeConnectWrap.afterConnect 不完全上连接ENOENT

能否请您解释一下如何从dockerized应用程序连接到云sql。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-14 20:38:11

当您使用gcloud app deploy在app.yaml上部署应用程序时,该平台在一个容器中运行它,同时运行一个负责运行cloud_sql_proxy的侧车容器(您通过在app.yaml文件中指定base_settings:cloud_sql_instances来请求它)。

Kubernetes引擎不使用app.yaml文件,也不向您提供这个侧车容器,因此您必须设置它。公共医生展示了如何通过为数据库凭据创建秘密和使用侧车容器配置更新部署文件来实现此操作。文档中显示的示例如下所示:

代码语言:javascript
复制
...
- 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
...
票数 1
EN

Stack Overflow用户

发布于 2019-03-14 20:38:28

通常,最好的方法是使用与应用程序相同的荚内的侧容器进行连接。您可以在“从Google引擎连接”页面这里上找到示例。还有一个codelab 这里,它更深入,可能会有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-09-08 07:26:51

可以使用内部IP地址连接的文档提及。有人试过吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55170317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档