0

我添加@google-cloud/debug-agent了部署在 GKE 上的 nodejs 项目。
但是我得到了错误:</p>

restify listening to http://[::]:80
@google-cloud/debug-agent Failed to re-register debuggee nodejs-bot: Error: The caller does not have permission
@google-cloud/debug-agent Failed to re-register debuggee nodejs-bot: Error: The caller does not have permission
@google-cloud/debug-agent Failed to re-register debuggee nodejs-bot: Error: The caller does not have permission
@google-cloud/debug-agent Failed to re-register debuggee nodejs-bot: Error: The caller does not have permission

我检查了我的 GKE 是否有调试权限。我不知道为什么该服务没有获得许可。

在此处输入图像描述

这是我在 index.ts 上定义的代码

import * as tracer from '@google-cloud/trace-agent';
tracer.start();
import * as debug from '@google-cloud/debug-agent';
debug.start();
4

2 回答 2

0

可以通过执行以下操作来解决此问题:

1 - 创建一个启用了这些权限(即云调试器/云平台“启用”)并具有所需范围的新集群。[1]

例子:

$ gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud_debugger --zone

2- 您可以使用与在新集群中部署原始工作负载相同的 YAML 配置文件。您必须确保您具有所需的范围才能使其正常工作。

您可以使用[2] [3]查看身份验证和范围的工作方式。

于 2019-09-16T23:34:15.180 回答
0

我发现这个问题是由工作负载身份引起的,所以我只是关闭了这个功能来解决这个问题。

因为我选择启动工作负载标识功能。每个需要连接 GCP 服务的 pod 都需要为这些 pod 创建一个服务帐户。否则,权限将被阻止。

https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

于 2019-10-04T01:14:37.110 回答