使用 RBAC 访问 Web UI 仪表板时出错

Error while accessing Web UI Dashboard using RBAC

我创建了一个集群角色"try-usr"

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: try-usr
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch

访问网络UI(Dashboard)时,报错如下:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "services \"https:kubernetes-dashboard:\" is forbidden: User \"xyz\" cannot get services/proxy in the namespace \"kube-system\"",
  "reason": "Forbidden",
  "details": {
    "name": "https:kubernetes-dashboard:",
    "kind": "services"
  },
  "code": 403
}

根据kubernetes版本,the dashboard will require different permissions according to the docs

v1.7

  • 为 kube-system 命名空间中的秘密创建和观察权限需要 - 创建和观察 kubernetes-dashboard-key-holder 秘密的变化。
  • 获取、更新和删除 kube-system 命名空间中名为 kubernetes-dashboard-key-holder 和 kubernetes-dashboard-certs 的机密的权限。
  • 需要 kube-system 命名空间中的 heapster 服务的代理权限才能允许从 heapster 获取指标。

v1.8

  • 创建 kubernetes-dashboard-key-holder 秘密所需的 kube-system 命名空间中的秘密权限。
  • 获取、更新和删除 kube-system 命名空间中名为 kubernetes-dashboard-key-holder 和 kubernetes-dashboard-certs 的机密的权限。
  • 获取和更新 kube-system 命名空间中名为 kubernetes-dashboard-settings 的配置映射的权限。
  • 需要 kube-system 命名空间中的 heapster 服务的代理权限才能允许从 heapster 获取指标。