我的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,因为您一开始就不允许访问它。
这就是你所能做的。