当前位置: 首页 > 知识库问答 >
问题:

无法通过具有工作负载标识的GKE连接到云SQL代理

佘修为
2023-03-14

我遵循谷歌云平台的指南,通过使用云SQL代理和公共IP地址的GKE集群连接到云SQL实例(https://cloud.google.com/sql/docs/postgres/connect-kubernetes-engine).但是,在尝试部署应用程序后,我在容器日志中出现以下错误。

{ Error: connect ECONNREFUSED 127.0.0.1:5432
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 5432 }

然后是错误信息

2021/02/01 05:35:31 the default Compute Engine service account is not configured with sufficient permissions to access the Cloud SQL API from this VM. Please create a new VM with Cloud SQL access (scope) enabled under "Identity and API access". Alternatively, create a new "service account key" and specify it using the -credential_file parameter

此外(我假设是相关的),当我检查集群中节点的计算引擎时,我看到Cloud SQL Cloud API访问范围被禁用。有没有办法做到这一点?

我知道有多种方法可以通过GKE群集连接到云SQL实例,但是,我想在凭据文件上使用工作负载标识。

共有1个答案

曹鹏海
2023-03-14

如果不在计算引擎VM上使用默认服务帐户,则不需要使用VM的作用域。范围仅在计算引擎默认服务帐户中强制执行,而在自定义服务帐户中则不强制执行

如果在群集上使用Workload标识,这是一回事(因为使用的不是计算引擎默认服务号,而是自定义服务号)。和是首选此服务帐户密钥文件。

 类似资料:
  • Google docu表示,工作负载标识可以用来授权GKE POD使用Google API提供的服务(而且效果很好)。它还表示,将有一个自动创建的标识池,名为PROJECT\u ID.svc。id.goog。 关于工作负载标识联合的Docu说:“您可以使用工作负载标识池来组织和管理外部标识。” 在我按照这里所述配置了工作负载标识(并且工作正常)之后,我正在尝试检索项目中现有的工作负载标识池,我希望

  • 试图找出如何从GKE集群中使用存储API进行身份验证。 代码: 被记录为使用以下方法通过API进行身份验证: {@code GOOGLE_APPLICATION_Credentials}环境变量指向的凭据文件 应用程序正在使用GCP工作负载标识功能,因此应用程序(群集内)服务号注释为: 现在,调用存储帐户失败,出现以下错误: 这让我觉得工作负载标识工作不正常。我希望收到带注释的服务帐户的错误消息,

  • 我似乎无法使用Docker容器连接到CloudSQL。 首先,这里是我的文件路径:https://imgur.com/a/Nmx41o6 Dockerfile.dev: Dockerfile.sql 我的节点索引.js文件。我不认为有什么问题,也许我输入了错误的连接字符串格式?据我所知,密码和用户是正确的。 我得到的错误: 解决:我切换到TCP。拧入unix插座。这太令人困惑了。

  • 我们已经为一个基于Java/Tomcat的应用程序设置了一个CloudSQL代理作为侧车容器。 下面是我们如何设置工作负载标识,以使我们的应用程序能够通过CloudSQL代理连接到CloudSQL: > 创建了云IAM服务帐户并授予其SQL客户端权限: 设置策略绑定如下: 向GKE服务帐户添加注释: 但当我们使用以下方法进行测试时: 尽管按照本页所述正确执行了所有操作,但仍然会导致:

  • 我正在尝试为我的kubernetes项目使用。 我遵循仙丹指南和凤凰指南。在Connect to your Cloud SQL实例中,该指南指出,运行“cloud_sql_proxy-dir=/tmp/cloudsql”和“psql-h/tmp/cloudsql/[CONNECTION-NAME]-u postgres”将打开代理。 所以我尝试用下面的这些命令创建一个新的目录。 然后我尝试连接云s

  • 我试图在Composer 2环境中运行GKEStartPodOperator/KubernetesPodOperator任务,该环境在自动驾驶模式下使用GKE集群。我们有一个现有的Composer 1环境,GKE集群不处于自动驾驶模式。我们使用谷歌云平台服务(BigQuery、GCS等)进行身份验证的任务在Composer 2环境中失败,但在Composer 1环境中成功。 在日志文件中,我可以看