Estoy tratando de implementar la interfaz de usuario web de Kubernetes como se describe aquí: https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
La configuración de mi sistema es la siguiente:
$ 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"}
Después de iniciar el clúster minukube minikube start
, creé una cuenta de servicio y ClusterRoleBinding como se describe aquí: 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
Ahora ejecuto:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml
o
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
y obtenga el siguiente resultado:
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
¿Qué pasó y cómo solucionarlo?
fuente
rbac.authorization.k8s.io/v1
. También verifiquékubectl api-versions
cuál me mostró ambasrbac.authorization.k8s.io/v1
yrbac.authorization.k8s.io/v1beta1
, por lo tanto, no es el caso.El error "no puede cambiar roleRef" se refería al hecho de que ClusterRoleBinding ya existía.
Intente eliminar el panel de kubernetes ClusterRoleBinding existente
Ejecute a continuación para eliminar existente:
Después de eso intente instalar de nuevo. Háganos saber si eso resuelve el problema.
fuente
kubectl delete clusterrolebinding kubernetes-dashboard
,kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
y aún obtengo el mismo error.También obtengo este error, resuelto ejecutando el tablero a través de minikube:
Salida:
fuente
Recién reproducido.
1) espacio de nombres creado, ServiceAccount y ClusterRolebinding
2) aplicarlo
3) Instalar el tablero de instrumentos
fuente
Correr:
kubectl eliminar clusterrolebinding kubernetes-dashboard
... DESPUÉS del comando apply -f, no antes.
fuente