一个Kubernetes仪表板,用于多个选定的命名空间

时间:2018-06-17 04:37:06

标签: kubernetes

我们的群集中有多个命名空间。管理员可以通过ClusterRole访问所有命名空间。但是,用户将被授予访问相应名称空间的权限。

说,用户A可以访问命名空间B,C& d。

因此,用户A在命名空间B中使用服务帐户和RoleBinding部署仪表板。用户将能够看到命名空间B中的所有应用程序。 但是,我们如何才能访问此仪表板,以便一个仪表板列出3个命名空间以查看相应的应用程序。

由于

1 个答案:

答案 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