我们的群集中有多个命名空间。管理员可以通过ClusterRole访问所有命名空间。但是,用户将被授予访问相应名称空间的权限。
说,用户A可以访问命名空间B,C& d。
因此,用户A在命名空间B中使用服务帐户和RoleBinding部署仪表板。用户将能够看到命名空间B中的所有应用程序。 但是,我们如何才能访问此仪表板,以便一个仪表板列出3个命名空间以查看相应的应用程序。
由于
答案 0 :(得分:1)
在Kubernetes的当前版本中,可以由不同的用户管理不同的名称空间。 您需要了解RBAC的工作原理以及如何使用它来管理多个Dashboards。
概念草案:您需要创建规则,角色和授予权限(群集范围内以及所有名称空间),然后进行角色绑定。 它可以用于授予对任何特定命名空间或所有命名空间中资源的读取访问权限。
例如,这是将用户“ jane”绑定到默认名称空间,并将用户“ dave”绑定到开发团队的方法。 您可以在两个名称空间中提供仪表板,以使单个用户可以访问它们。
# This role binding allows "jane" to read pods in the "default" namespace.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jane # Name is case sensitive
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role #this must be Role or ClusterRole
name: pod-reader # this must match the name of the Role or ClusterRole you wish to bind to
apiGroup: rbac.authorization.k8s.io
# This role binding allows "dave" to read secrets in the "development" namespace.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-secrets
namespace: development # This only grants permissions within the "development" namespace.
subjects:
- kind: User
name: dave # Name is case sensitive
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: secret-reader
apiGroup: rbac.authorization.k8s.io