kubernetes:如何设置 "top node" 和 "top pod" 权限?

kubernetes: how to set "top node" and "top pod" permissions?

希望得到一些指点,我有一个问题:我需要向拥有 Clusterrole:view 的用户添加什么 role/permissions 才能让该用户使用 'top node' 和 'top pod' kubectl 中的命令?我们在 1.15.7 集群 (AKS) 上使用 kubectl 版本 1.15.x(客户端),但我不确定这是否是相关信息。 我试图在 k8s 文档中找到这个,但找不到权限参考描述,只有一些示例和指南。

提前致谢!

此致,Ludo

top nodetop pod 没有特定权限。权限是看你能不能做get nodesget pods。如果允许执行 get nodesget pods,那么您也应该能够执行 top nodestop pods。执行 get nodesget pods 的权限是通过 kubernetes 中的 RBAC 定义的。

指标服务器只是通过收集和聚合来自不同来源(例如 kubelet)的指标来公开 pods、节点等不同资源的指标。这就是指标本身没有权限的原因,而权限是针对您要查看指标的资源。

当您执行 kubectl top pods 时调用的 API 是这个

GET https://API-SERVER-IP:6443/apis/metrics.k8s.io/v1beta1/namespaces/default/pods

因此,当您定位到默认命名空间时,您只能在默认命名空间中看到 pods 的指标。现在是否可以在默认命名空间中获取 pods 由 RBAC 管理。