Acabo de actualizar kubeadm y kubelet a v1.8.0. E instale el tablero siguiendo el documento oficial .
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Después de eso, inicié el tablero ejecutando
$ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$'
Luego, afortunadamente, pude acceder al tablero a través de http://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Me redirigieron a una página de inicio de sesión como esta que nunca había conocido antes. Parece que hay dos formas de autenticación.
Traté de cargar el /etc/kubernetes/admin.conf
como kubeconfig pero fallé. Luego intenté usar el token que obtuve kubeadm token list
para iniciar sesión, pero volví a fallar.
La pregunta es cómo puedo iniciar sesión en el panel. Parece que agregaron muchos mecanismos de seguridad que antes. Gracias.
kubernetes
dashboard
ichbinblau
fuente
fuente
Respuestas:
- Panel de control en Github
Simbólico
Aquí
Token
puede serStatic Token
,Service Account Token
,OpenID Connect Token
a partir Kubernetes Autenticación , pero no el kubeadmBootstrap Token
.Con kubectl, podemos obtener una cuenta de servicio (por ejemplo, controlador de implementación) creada en kubernetes de forma predeterminada.
Kubeconfig
El panel necesita que el usuario en el archivo kubeconfig tenga
username & password
otoken
, peroadmin.conf
soloclient-certificate
. Puede editar el archivo de configuración para agregar el token que se extrajo utilizando el método anterior.Alternativa (no recomendado para producción)
Aquí hay dos formas de omitir la autenticación, pero tenga cuidado.
Implementar panel con HTTP
El panel se puede cargar en http: // localhost: 8001 / ui con
kubectl proxy
.Otorgar privilegios de administrador a la cuenta de servicio de Dashboard
Luego, puede usar la Skipopción en la página de inicio de sesión para acceder al Tablero.
Si está utilizando la versión de panel v1.10.1 o posterior, también debe agregar
--enable-skip-login
argumentos a la línea de comandos de la implementación. Puede hacerlo agregándolo al archivoargs
inkubectl edit deployment/kubernetes-dashboard --namespace=kube-system
.Ejemplo:
fuente
TL; DR
Para obtener el token en una sola línea:
Esto supone que su ~ / .kube / config está presente y es válido. Y tambien que
kubectl config get-contexts
indica que está utilizando el contexto correcto (clúster y espacio de nombres) para el panel en el que está iniciando sesión.Explicación
Derivé esta respuesta de lo que aprendí de la respuesta de @ silverfox. Esa es una redacción muy informativa. Desafortunadamente, no le dice cómo poner la información en práctica. Tal vez he estado haciendo DevOps demasiado tiempo, pero creo que en la cáscara. Es mucho más difícil para mí aprender o enseñar en inglés.
Aquí está ese delineador con saltos de línea y sangrías para facilitar la lectura:
Hay 4 comandos distintos y se llaman en este orden:
deployment-controller-token-
(que es el nombre del pod)fuente
kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}'
O empuje directamente a su portapapeleskubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}' | xclip -selection clipboard -i
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object { $_ -Split '\s+' } | Select -First 1)
de github.com/kubernetes/dashboard/blob/master/docs/user/…Si no desea otorgar permiso de administrador a la cuenta de servicio del panel, puede crear una cuenta de servicio de administrador de clúster.
Y luego, puede usar el token de la cuenta de servicio de administrador del clúster que acaba de crear.
Lo cité de la guía Giantswarm: https://docs.giantswarm.io/guides/install-kubernetes-dashboard/
fuente
Combinando dos respuestas: 49992698 y 47761914 :
fuente
Una línea simple y autoexplicativa para extraer el token para el inicio de sesión del panel de Kubernetes.
Copie el token y péguelo en el panel de Kubernetes en la opción de inicio de sesión del token y estará listo para usar el panel de Kubernetes.
fuente
Todas las respuestas anteriores son buenas para mí. Pero una respuesta directa de mi lado vendría de https://github.com/kubernetes/dashboard/wiki/Creating-sample-user#bearer-token . Solo usa
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
. Tendrá muchos valores para algunas teclas (Name
,Namespace
,Labels
, ...,token
). El más importante es eltoken
que corresponde a tu nombre. copia ese token y pégalo en el cuadro del token. Espero que esto ayude.fuente
Debe seguir estos pasos antes de la autenticación del token
Crear una cuenta de servicio de administrador de clúster
Agregue las reglas de vinculación del clúster a su cuenta de panel
Obtén el token secreto con este comando
Elija la autenticación de token en la página de inicio de sesión del panel de Kubernetes
Ahora puedes iniciar sesión
fuente
Descarga https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
añadir
Y luego ejecuta este comando:
Encuentre el puerto expuesto con el comando:
Debería poder obtener el panel en http: // nombre de host: puerto expuesto / sin autenticación
fuente
La omisión de inicio de sesión se ha desactivado de forma predeterminada debido a problemas de seguridad. https://github.com/kubernetes/dashboard/issues/2672
en su tablero yaml agregue este argumento
para recuperarlo
fuente
The skip login has been disabled by default due to security issues
. El intento de respuesta es- --enable-skip-login
. Puede que no sea la mejor respuesta, pero esta no es una respuesta de solo enlace.The skip login has been disabled by default due to security issues
. El intento de respuesta es- --enable-skip-login
. Puede que no sea la mejor respuesta, pero esta no es una respuesta de solo enlace.