如何在Kubernetes仪表板中限制名称空间

时间:2020-10-28 10:53:59

标签: kubernetes kubernetes-helm kubernetes-dashboard

我的kubernetes仪表板运行成功,并且显示了kubernetes集群中所有可用的名称空间。

示例:- 可用的命名空间:-A,B,C,D,E

现在,我想从kubernetes仪表板中删除/限制一个名称空间(例如D)。怎么可能。

使用头盔部署kubernetes仪表板,以下是仓库的链接。

https://github.com/kubernetes/dashboard/tree/master/aio/deploy/helm-chart/kubernetes-dashboard

dashboard version:- v2.0.0-rc7 
kubernetes version :- 1.17

OR

是否可以屏蔽某些包含敏感数据的环境变量(显示在仪表板中),然后将其命名空间保持不变。

2 个答案:

答案 0 :(得分:0)

FWIW,我认为基本的Kubernetes仪表板设置不可能做到这一点。原因是Kubernetes RBAC不允许使用GET访问给定类型(AFAIK)的部分但不是全部资源的概念。

因此,当列出可用的名称空间时,需要在名称空间资源上使用GET,但是没有GET的概念“除此名称空间外的所有名称空间”

使用正确的RBAC,您也许可以阻止它看到名称空间名称之外的任何内容,但我想这不会成为默认清单的一部分。

您可能会看到的一个选择是,在每个命名空间中部署一个单独的kubernetes仪表板实例,并向用户授予对这些单独实例的权限。有here的一些示例。

如果要寻找集群资源的可视化,另一件事可能是查看类似octant的东西,该东西使用用户kubeconfig文件在客户端进行操作。

答案 1 :(得分:0)

这是不可能的。

在文档中我也找不到或找不到这样的标志或环境变量。

限制访问的唯一可能方法是通过特定的RBAC规则,但是您需要记住,这些仅是可加的。您不能删除对资源的访问,只能添加规则。您需要创建一个在除名称空间“ D”之外的每个名称空间中都具有角色的用户,然后以该用户身份访问仪表板,因为您首先不允许使用该名称空间,所以您将被禁止访问名称空间D。

这就是您所能做的。