我有一个应用程序,它将监视并在必要时扩展其他资源。目前,我正在使用集群管理员令牌来访问 k8s api,但我想将其访问权限限制为仅监视和扩展。
我知道我需要为此使用角色和角色绑定,但我有两个问题:
-
是否可以仅使用一个用户并将其绑定到不同命名空间中的角色?我需要在集群上的不同命名空间中运行应用程序的多个实例
-
有没有办法通过yaml文件创建一个新的k8s用户并使用它来绑定角色?
最后,如果我使用错误的方法,请告诉我,因为我在某种程度上是 RBAC 的新手。
你似乎有正确的方法。
查看文档:https://kubernetes.io/docs/reference/access-authn-authz/rbac/
根据经验,始终保留链接在同一命名空间内的资源,一个用户具有一个群集角色和角色绑定。
仍然在角色绑定的情况下,它们没有命名空间,因此您应该能够按命名空间将一个用户绑定到单个群集角色。我自己从来没有测试过,所以你将不得不做一些测试。
仍然存在一个问题,为什么不只创建一个应用程序,让服务帐户可以访问所有命名空间,因此部署在命名空间中的一个应用程序将能够访问它需要在所有群集中管理的所有资源?