【发布时间】:2021-10-27 19:21:49
【问题描述】:
作为前言,我觉得我可能误解了 GCP 的含义,因为它的“App Engine 授权”范围仅限于项目中的任何应用程序,因为尽管输入了正确的 postgres 连接 URL (postgresql://username: secret@SQL_PUBLIC_IP_ADDRESS:5432/DB_NAME),我的 GKE 节点无法连接。
我正在我的 API 中启动连接;
knex({
client: 'pg',
connection: process.env.POSTGRES_URL.slice(0, -process.env.DATABASE_NAME.length),
pool: { min: 0, max: 100 }
});
我已经阅读了很多关于将 Cloud SQL 实例连接到 GKE 集群的中型帖子和文章,但它们都提到创建 VPC 并通过 Cloud SQL 实例上的私有 IP 进行连接,这似乎是必需的在 GCP 对项目中的任何应用程序默认授权之前 (??)。最后一点是我觉得我可能弄错的地方,但这些文章/问题中的大多数似乎来自 1 年多以前,所以这让我相信这可能以前需要,但现在不再需要了。
无论如何,如果我对此推定有误解,请告诉我,否则,如果您知道为什么我会遇到此错误,我们将不胜感激。
【问题讨论】:
-
您是否尝试连接到公共 IP 实例?您是否将 Cloud SQL 代理作为 sidecar 运行?这里有一个如何执行此操作的示例:github.com/GoogleCloudPlatform/cloudsql-proxy/tree/main/…。另外对于 NodeJS 特定的东西,看看github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/…。
标签: postgresql google-cloud-platform google-kubernetes-engine google-cloud-sql knex.js