如何在kubernetes仪表板中限制命名空间



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

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

现在,我想从kubernetes面板中删除/限制一个名称空间(比如D(。这是怎么可能的。

使用helm部署kubernetes仪表板,下面是repo的链接。

https://github.com/kubernetes/dashboard/tree/master/aio/deploy/helm-chart/kubernetes-dashboard
dashboard version:- v2.0.0-rc7 
kubernetes version :- 1.17

有没有可能屏蔽一些有敏感数据的环境变量(显示在仪表板中(,然后我会保持我的命名空间原样。

FWIW,我认为这在Kubernetes的基本面板设置中是不可能的。原因是Kubernetes RBAC不允许GET访问某些但不是所有给定类型的资源(AFAIK(。

因此,当它列出可用的名称空间时,它需要在名称空间资源上有GET,但没有GET的概念;除此之外的所有名称空间";

使用正确的RBAC,您可能能够阻止它看到任何超过命名空间名称的内容,但我想这不会是默认清单的一部分。

您可以考虑的一个选项是,在每个命名空间中部署一个单独的kubernetes仪表板实例,并赋予用户访问这些单独实例的权限。这里有一些例子。

另一件事,如果你正在寻找集群资源的可视化,可以看看像octant这样的东西,它使用用户kubeconfig文件操作客户端。

这是不可能的。

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

限制访问的唯一可能方法是通过特定的RBAC规则,但您需要记住,这些规则只是可添加的。您不能删除对资源的访问权限,只能添加规则。您需要创建一个在除命名空间"D"之外的每个命名空间中都有Role的用户,然后以该用户的身份访问仪表板,您将被禁止访问命名空间D,因为您一开始就不允许访问它。

这就是你所能做的。

最新更新