如何获取进程所在的 kubernetes 角色或服务帐户 运行

How do I get the kubernetes Role or service account where the process is running

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

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

users of the application are seeing errors that seem to be caused by bad configuration of the service account

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

I want to show a warning when launching the application, or at least be able to access the permitted resources/groups of the Role bound to the service account of the pod

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

SelfSubjectAccessReview

您还可以 Check API Access 使用 API 端点 /apis/authorization.k8s.io/v1/selfsubjectaccessreviews

特定 API

另见 Kubernetes doc: Authorization Overview