Versão do painel: 1.1
Versão do Kubernetes: 1.3.6
Sistema operacional: ubuntu14.04
Go versão: 1.6.2
Ideploy kubernetes e dashboard como http://kubernetes.io/docs/getting-started-guides/ubuntu/
Eu posso acessar o painel http://master-ip :8080/
bur quando eu acesso https://master-ip :6443/ , retorna "Unauthorized"
porque?
Eu tenho o mesmo problema. E eu acho que o autor talvez não tenha considerado isso ainda.
https://github.com/kubernetes/dashboard/issues/1116
Suponho que seus clusters estejam usando certificados para comunicação segura por HTTPS. Há 2 questões aqui.
Unauthorized
.É fácil autorizar com curl porque você pode fornecer facilmente os dados necessários.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Com o navegador é mais complicado do que isso. Existem várias maneiras de acessar o painel:
<MASTER_IP>:<NODE_PORT>
. (Não é seguro)kubectl proxy
e vá para http://127.0.0.1:8001/
(endereço de ligação pode ser alterado). Ele lidará com o encapsulamento SSL se seu arquivo kubeconfig
estiver configurado para usar conexão segura.Em relação à segunda opção. Eu posso fornecer algumas informações sobre como fazer isso usando o firefox.
Your Certificates
. Se você tiver 2 certificados separados crt
e key
, é melhor mesclá-los no certificado PFX/PKCS#12
porque é fácil importá-lo diretamente para o armazenamento de certificados do navegador. Você pode usar esta página ou fazê-lo manualmente usando openssl
.Se os certificados forem gerados corretamente, o pop-up será exibido na próxima tentativa de acessar o servidor api por HTTPS. Pode ser necessário limpar o cache do navegador.
Você deve ver o painel agora. :)
Eu não sei como usar o token do portador no navegador. Possivelmente, requer algum trabalho manual para adicionar dados ao cabeçalho HTTP antes de enviar a solicitação ao servidor api.
Claro que existem outras opções para autorizar o usuário. O Kubernetes suporta ABAC, RBAC e muito mais.
O navegador é obrigado a autenticar ao acessar a porta do servidor de API segura. Como https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834 demonstra, isso pode ser feito com autenticação baseada em certificado.
Para autenticação baseada em token, os navegadores não oferecem uma maneira de enviar tokens de portador automaticamente com suas solicitações.
O painel descreve como você pode usar kubectl proxy
que adiciona suas credenciais de autenticação e permite acessar o painel localmente por meio do proxy - https://github.com/kubernetes/dashboard#usage
Comentários muito úteis
Suponho que seus clusters estejam usando certificados para comunicação segura por HTTPS. Há 2 questões aqui.
Unauthorized
.É fácil autorizar com curl porque você pode fornecer facilmente os dados necessários.
`
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Com o navegador é mais complicado do que isso. Existem várias maneiras de acessar o painel:
<MASTER_IP>:<NODE_PORT>
. (Não é seguro)kubectl proxy
e vá parahttp://127.0.0.1:8001/
(endereço de ligação pode ser alterado). Ele lidará com o encapsulamento SSL se seu arquivokubeconfig
estiver configurado para usar conexão segura.Em relação à segunda opção. Eu posso fornecer algumas informações sobre como fazer isso usando o firefox.
Your Certificates
. Se você tiver 2 certificados separadoscrt
ekey
, é melhor mesclá-los no certificadoPFX/PKCS#12
porque é fácil importá-lo diretamente para o armazenamento de certificados do navegador. Você pode usar esta página ou fazê-lo manualmente usandoopenssl
.Se os certificados forem gerados corretamente, o pop-up será exibido na próxima tentativa de acessar o servidor api por HTTPS. Pode ser necessário limpar o cache do navegador.
Você deve ver o painel agora. :)
Eu não sei como usar o token do portador no navegador. Possivelmente, requer algum trabalho manual para adicionar dados ao cabeçalho HTTP antes de enviar a solicitação ao servidor api.
Claro que existem outras opções para autorizar o usuário. O Kubernetes suporta ABAC, RBAC e muito mais.