【发布时间】:2021-07-11 23:06:34
【问题描述】:
我正在使用 k8s go-client 做很多事情,但是应用程序的用户看到的错误似乎是由于他们的实例正在运行的服务帐户的错误配置引起的,例如尝试访问资源他们不允许,我想在启动应用程序时显示警告,或者至少能够访问绑定到运行代码的 pod 的服务帐户的角色的允许资源/组。有没有办法做到这一点?
【问题讨论】:
标签: go kubernetes kubernetes-go-client
我正在使用 k8s go-client 做很多事情,但是应用程序的用户看到的错误似乎是由于他们的实例正在运行的服务帐户的错误配置引起的,例如尝试访问资源他们不允许,我想在启动应用程序时显示警告,或者至少能够访问绑定到运行代码的 pod 的服务帐户的角色的允许资源/组。有没有办法做到这一点?
【问题讨论】:
标签: go kubernetes kubernetes-go-client
您可以使用 InClusterConfig 通过其服务帐户访问 pod 可用的资源。请查看以下链接以了解如何使用它。
【讨论】:
应用程序的用户看到的错误似乎是由服务帐户的错误配置引起的
听起来该服务的安装没有附带正确的 RBAC 清单。
我想在启动应用程序时显示警告,或者至少能够访问绑定到 Pod 服务帐户的 Role 的允许资源/组
解决这个问题的方法通常是仔细处理访问 Kubernetes API 服务时返回的错误,如果出现错误,还要打印错误。这些错误消息通常包含有关使用了什么 ServiceAccount 和缺少哪些权限的信息。有了这些信息,创建适当的 RBAC 清单应该不会太难。
您也可以通过 API 端点 /apis/authorization.k8s.io/v1/selfsubjectaccessreviewsCheck API Access 获取特定 API
【讨论】: