使用 GCP 调试器但出现权限错误
Use GCP debugger but got permission error
我在部署在 GKE 上的 nodejs 项目上添加 @google-cloud/debug-agent
。
但是我得到错误:
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();
可以通过执行以下操作解决此问题:
1 - 创建一个启用这些权限(即 Cloud Debugger/Cloud Platform 'Enabled')并具有所需范围的新集群。 [1]
示例:
$ gcloud 容器集群创建示例集群名称 --scopes https://www.googleapis.com/auth/cloud_debugger --zone
2- 您可以使用与在新集群中部署原始工作负载时相同的 YAML 配置文件。您必须确保您具有所需的范围才能正常工作。
我发现这个问题是由工作负载标识引起的,所以我关闭了这个功能来解决这个问题。
因为我select要启动工作负载身份功能。每个需要连接 GCP 服务的 pod 都需要为这些 pods 创建一个服务帐户。否则权限会被屏蔽
https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
我在部署在 GKE 上的 nodejs 项目上添加 @google-cloud/debug-agent
。
但是我得到错误:
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();
可以通过执行以下操作解决此问题:
1 - 创建一个启用这些权限(即 Cloud Debugger/Cloud Platform 'Enabled')并具有所需范围的新集群。 [1]
示例:
$ gcloud 容器集群创建示例集群名称 --scopes https://www.googleapis.com/auth/cloud_debugger --zone
2- 您可以使用与在新集群中部署原始工作负载时相同的 YAML 配置文件。您必须确保您具有所需的范围才能正常工作。
我发现这个问题是由工作负载标识引起的,所以我关闭了这个功能来解决这个问题。
因为我select要启动工作负载身份功能。每个需要连接 GCP 服务的 pod 都需要为这些 pods 创建一个服务帐户。否则权限会被屏蔽
https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity