GKE 集群无法使用 KnexJS 连接到 PG Cloud SQL 实例

GKE Cluster unable to connect to PG Cloud SQL instance using KnexJS

作为前言,我觉得我可能误解了 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 }
});

我已经阅读了很多关于将云 SQL 实例连接到 GKE 集群的媒体帖子和文章,但他们都提到了创建 VPC 并通过云上的私有 IP 进行连接 SQL 在 GCP 默认授权项目中的任何应用程序之前似乎需要的实例 (??)。最后一点我觉得我可能弄错了,但其中大部分 articles/questions 似乎是 1 年多以前的,所以这让我相信以前可能需要这样做,但现在不再需要了。

无论如何,如果我对这个假设有误解,请告诉我,否则,如果您知道我遇到此错误的原因,我们将不胜感激。

问题是 GKE 集群是私有的,我试图通过其 public IP 与其私有 IP 地址连接到实例。

为了解决,我在 GKE 集群所在的 VPC 网络上的 SQL 实例上启用了私有 IP,然后将连接字符串中的 SQL_PUBLIC_IP_ADDRESS 值更改为实例的私人IP地址。现在可以正常连接了。

来自类似问题的其他信息。