作为前言,我觉得我可能误解了GCP的“应用程序引擎授权”是什么意思,它的范围是项目中的任何应用程序,因为尽管输入了正确的postgres connection 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集群的帖子和文章,但它们都提到在云SQL实例上创建VPC并通过内网IP连接,这似乎在GCP默认授权给项目中的任何应用(??)之前是必需的。最后这一点我觉得我可能错了,但这些文章/问题中的大多数似乎来自1 year+之前,所以它让我相信这可能是以前需要的,但现在不是了。
无论如何,如果我在这个假设上被误解了,请让我知道,否则,如果你知道我为什么会遇到这个错误,任何帮助都将不胜感激。
发布于 2021-08-29 20:07:12
问题是GKE集群是私有的,我试图通过它的公共IP与它的私有IP地址连接到实例。
为了解决这个问题,我在GKE集群所在的私有网络中的SQL实例上启用了内网IP,然后将连接字符串中的SQL_PUBLIC_IP_ADDRESS值修改为实例的内网IP地址。它现在连接得很好。
来自类似问题的其他信息。Connecting to public Cloud SQL from a private GKE cluster
https://stackoverflow.com/questions/68960412
复制相似问题