首页 > 解决方案 > 何为 Google Cloud SQL Postgresql 实例建立连接 URL

问题描述

我想将我的应用程序连接到谷歌云 SQL 上的托管 postgresql 实例。该应用程序将通过 GKE 部署。通常,我会通过连接字符串进行连接:

例如:postgres://<user>:<password>@<my-postgres-host>:5432"

但是文档指出:

  1. 创建一个 Secret 以向数据库提供 PostgreSQL 用户名和密码。

  2. 使用以下项目更新您的 pod 配置文件:

    • 提供 Cloud SQL 实例的私有 IP 地址作为您的应用程序用于访问数据库的主机地址。
    • 提供您之前创建的 Secret 以使应用程序能够登录到数据库。
  3. 使用 Kubernetes 清单文件启动您的部署。

我可以执行第 1 步和第 3 步,但不能执行第 2 步。连接 URL 是否应该是:postgres://<PRIVATE_ID>:5432并且我添加 ENV 变量POSTGRES_USERPOSTGRES_PASSWORD通过一个秘密?

有什么我可以查的例子吗?

结果:我想导出托管在 google cloud sql 上的 postgresql 的连接 url。

先感谢您!

标签: postgresqlgoogle-cloud-sqlgoogle-kubernetes-engine

解决方案


您可以找到postgres_deployment.yaml文件的示例,以使用 kubernetes 进行部署。示例用户代理,但私有 IP 的数据库配置部分没有更改。对于私有 IP,请勿使用 [proxy_container] 部分

这是您正在搜索的文档中所述的部分:数据库环境变量和机密部分。

          # The following environment variables will contain the database host,
          # user and password to connect to the PostgreSQL instance.
          env:
            - name: POSTGRES_DB_HOST
              value: 127.0.0.1:5432
            # [START cloudsql_secrets]
            - name: POSTGRES_DB_USER
              valueFrom:
                secretKeyRef:
                  name: cloudsql-db-credentials
                  key: username
            - name: POSTGRES_DB_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: cloudsql-db-credentials
                  key: password
            # [END cloudsql_secrets]

推荐阅读