GKE Spring 容器 - CloudSQL 失败 - 403 禁止访问

GKE Spring container - CloudSQL failing - 403 Forbidden

我有一个 spring 引导应用程序无法在 GKE 引擎中启动

在 运行 代理

之后,我可以从本地 SQL 开发人员连接到云端 SQL
cloud_sql_proxy -instances=psomemy:europe-west2:pmydb=tcp:3306

我没有从 Kubectl 创建秘密,因为我的连接字符串是

spring.datasource.url=jdbc:mysql:///schema?cloudSqlInstance=myapp:europe-west2:mydbonly&socketFactory=com.google.cloud.sql.mysql.SocketFactory

所以我认为以下不是我的情况 (?)

如何测试本地邮递员或其他人的访问?

当您使用默认选项创建 VM 时(如果您不做任何特殊操作,默认情况下使用节点池的集群也是如此),您的计算引擎将使用默认范围的默认服务帐户。

当然,默认情况下未设置云 SQL 范围

因此,我建议您创建一个新的节点池:

  • 默认服务帐户和授予的正确范围
  • 或自定义服务帐户(更好的解决方案)

但是,最好的解决方案是使用 Workload identity。您可以在您的集群上激活附加组件,重新创建一个池,您可以为每个 pod 设置一个服务帐户,从而超越当前的范围限制。