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



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

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

如何在go 中使用kubernetes的inclusterconfig

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

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

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

解决此问题的方法通常是小心处理访问Kubernetes API服务时返回的错误,如果出现错误,还应打印错误。这些错误消息通常包含有关使用了什么ServiceAccount缺少什么权限的信息。有了这些信息,创建正确的RBAC清单应该不会太难。

SelfSubjectAccessReview

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

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

最新更新