0

我正在使用 k8s go-client 做很多事情,但应用程序的用户看到的错误似乎是由于他们的实例正在运行的服务帐户的错误配置引起的,例如尝试访问他们正在使用的资源不允许,我想在启动应用程序时显示警告,或者至少能够访问绑定到运行代码的 pod 的服务帐户的角色的允许资源/组。有没有办法做到这一点?

4

2 回答 2

0

应用程序的用户看到的错误似乎是由服务帐户的错误配置引起的

听起来该服务的安装没有附带适当的 RBAC 清单。

我想在启动应用程序时显示警告,或者至少能够访问绑定到 Pod 服务帐户的 Role 的允许资源/组

解决这个问题的方法通常是仔细处理访问 Kubernetes API 服务时返回的错误,如果出现错误,也要打印错误。这些错误消息通常包含有关使用了哪些 ServiceAccount以及缺少哪些权限的信息。有了这些信息,创建适当的 RBAC 清单应该不会太难。

SelfSubjectAccessReview

您还可以使用 API 端点检查特定 API 的API 访问/apis/authorization.k8s.io/v1/selfsubjectaccessreviews

另请参阅Kubernetes 文档:授权概述

于 2021-04-18T20:20:44.173 回答
0

您可以使用 InClusterConfig 通过其服务帐户访问 pod 可用的资源。请查看以下链接以了解如何使用它。

go中如何使用kubernetes的inclusterconfig

于 2021-04-17T11:16:50.643 回答