Versión del tablero: 1.1
Versión de Kubernetes: 1.3.6
Sistema operativo: ubuntu14.04
Ir a la versión: 1.6.2
Implemente kubernetes y el tablero como http://kubernetes.io/docs/getting-started-guides/ubuntu/
Puedo acceder al tablero http://master-ip :8080/
pero cuando accedo a https://master-ip :6443/, devuelve "No autorizado"
¿Por qué?
Tengo el mismo problema. Y creo que el autor tal vez aún no lo haya considerado.
https://github.com/kubernetes/dashboard/issues/1116
Supongo que sus clústeres usan certificados para una comunicación segura a través de HTTPS. Aquí hay 2 problemas.
Unauthorized
.Es fácil autorizar con curl porque puede proporcionar fácilmente los datos requeridos.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Con el navegador es más complicado que eso. Hay varias formas de acceder al panel de control:
<MASTER_IP>:<NODE_PORT>
. (No es seguro)kubectl proxy
y vaya a http://127.0.0.1:8001/
(la dirección de enlace se puede cambiar). Manejará el túnel SSL si su archivo kubeconfig
está configurado para usar una conexión segura.Respecto a la segunda opción. Puedo proporcionar información sobre cómo hacerlo usando Firefox.
Your Certificates
. Si tiene 2 certificados separados crt
y key
, es mejor fusionarlos en el certificado PFX/PKCS#12
porque es fácil importarlo directamente al almacén de certificados del navegador. Puede usar esta página o hacerlo manualmente usando openssl
.Si los certificados se generan correctamente, se mostrará una ventana emergente en el próximo intento de acceder al servidor API a través de HTTPS. Es posible que deba borrar la memoria caché del navegador.
Deberías ver el tablero ahora. :)
No sé cómo usar el token de portador en el navegador. Posiblemente requiera algo de trabajo manual para agregar datos al encabezado HTTP antes de enviar la solicitud al servidor API.
Por supuesto, hay otras opciones para autorizar al usuario. Kubernetes es compatible con ABAC, RBAC y mucho más.
Se requiere que el navegador se autentique al acceder al puerto seguro del servidor API. Como demuestra https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834, eso se puede hacer con la autenticación basada en certificados.
Para la autenticación basada en tokens, los navegadores no le brindan una forma de enviar tokens de portador automáticamente con sus solicitudes.
El panel describe cómo puede usar kubectl proxy
que agrega sus credenciales de autenticación y le permite acceder al panel localmente a través del proxy: https://github.com/kubernetes/dashboard#usage
Comentario más útil
Supongo que sus clústeres usan certificados para una comunicación segura a través de HTTPS. Aquí hay 2 problemas.
Unauthorized
.Es fácil autorizar con curl porque puede proporcionar fácilmente los datos requeridos.
`
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Con el navegador es más complicado que eso. Hay varias formas de acceder al panel de control:
<MASTER_IP>:<NODE_PORT>
. (No es seguro)kubectl proxy
y vaya ahttp://127.0.0.1:8001/
(la dirección de enlace se puede cambiar). Manejará el túnel SSL si su archivokubeconfig
está configurado para usar una conexión segura.Respecto a la segunda opción. Puedo proporcionar información sobre cómo hacerlo usando Firefox.
Your Certificates
. Si tiene 2 certificados separadoscrt
ykey
, es mejor fusionarlos en el certificadoPFX/PKCS#12
porque es fácil importarlo directamente al almacén de certificados del navegador. Puede usar esta página o hacerlo manualmente usandoopenssl
.Si los certificados se generan correctamente, se mostrará una ventana emergente en el próximo intento de acceder al servidor API a través de HTTPS. Es posible que deba borrar la memoria caché del navegador.
Deberías ver el tablero ahora. :)
No sé cómo usar el token de portador en el navegador. Posiblemente requiera algo de trabajo manual para agregar datos al encabezado HTTP antes de enviar la solicitud al servidor API.
Por supuesto, hay otras opciones para autorizar al usuario. Kubernetes es compatible con ABAC, RBAC y mucho más.