linux - 部署Web UI时"The ClusterRoleBinding "kubernetes-dashboard "is invalid: roleRef: Invalid value"

标签 linux docker kubernetes

我正在尝试部署 Kubernetes Web UI,如下所述:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

我的系统配置如下:

$ uname -a
Linux debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux

$ /usr/bin/qemu-system-x86_64 --version
QEMU emulator version 3.1.0 (Debian 1:3.1+dfsg-8+deb10u3)
Copyright (c) 2003-2018 Fabrice Bellard and the QEMU Project developers

$ minikube version
minikube version: v1.5.2
commit: 792dbf92a1de583fcee76f8791cff12e0c9440ad-dirty

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:09:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}

启动 minukube 集群 minikube start 后,我创建了一个服务帐户和 ClusterRoleBinding,如下所述:https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

$ nano dashboard-adminuser.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
$ kubectl apply -f dashboard-adminuser.yaml
$ nano dashboard-adminuser.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
$ kubectl apply -f dashboard-adminuser.yaml

现在我执行:

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

并得到以下输出:

namespace/kubernetes-dashboard configured
serviceaccount/kubernetes-dashboard configured
service/kubernetes-dashboard configured
secret/kubernetes-dashboard-certs configured
secret/kubernetes-dashboard-csrf configured
secret/kubernetes-dashboard-key-holder configured
configmap/kubernetes-dashboard-settings configured
role.rbac.authorization.k8s.io/kubernetes-dashboard configured
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard configured
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard configured
deployment.apps/kubernetes-dashboard configured
service/dashboard-metrics-scraper configured
deployment.apps/dashboard-metrics-scraper configured
The ClusterRoleBinding "kubernetes-dashboard" is invalid: roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"ClusterRole", Name:"kubernetes-dashboard"}: cannot change roleRef

发生了什么以及如何解决?

最佳答案

错误“无法更改 roleRef”是指 ClusterRoleBinding 已存在这一事实。

尝试删除现有的 ClusterRoleBinding kubernetes-dashboard

运行以下命令删除现有的:

kubectl delete clusterrolebinding kubernetes-dashboard

之后再次尝试安装。如果这可以解决问题,请告诉我们。

关于linux - 部署Web UI时"The ClusterRoleBinding "kubernetes-dashboard "is invalid: roleRef: Invalid value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59020654/

相关文章:

c - Linux克隆 "kills"主线程

docker - 在Docker中构建Wildfly 8时出错

docker - 如何从外部机器 ssh 到 ec2 ubuntu 主机上的 docker 容器

bash - 在Shell脚本中执行时Docker Kill无法正常工作

bash - 确保 Kubernetes 部署已完成并且所有 pod 已更新且可用

linux - 如何更改 docker id 和名称

c++ - netlink 接口(interface) stat goto 交叉初始化错误

linux - linux/if.h 和 net/if.h 有什么问题?

kubernetes - 在 Google Container Engine 上访问 SkyDNS etcd API 以添加自定义记录

Kubernetes 1.16 Nginx Ingress (0.26.1) TCP Mariadb/MySQL 服务无法正常工作