Acabei de atualizar o kubeadm e o kubelet para a v1.8.0. E instale o painel seguindo o documento oficial .
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Depois disso, iniciei o painel executando
$ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$'
Felizmente, consegui acessar o painel através de http://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Fui redirecionado para uma página de login como essa que nunca havia encontrado antes. Parece que existem duas maneiras de autenticação.
Eu tentei fazer o upload do arquivo /etc/kubernetes/admin.conf
como o kubeconfig, mas falhei. Depois, tentei usar o token de origem kubeadm token list
para entrar, mas falhei novamente.
A questão é como eu posso entrar no painel. Parece que eles adicionaram muitos mecanismos de segurança do que antes. Obrigado.
kubernetes
dashboard
ichbinblau
fonte
fonte
Respostas:
- Painel no Github
Símbolo
Aqui
Token
pode serStatic Token
,Service Account Token
,OpenID Connect Token
a partir Kubernetes Authenticating , mas não o kubeadmBootstrap Token
.Com o kubectl, podemos obter uma conta de serviço (por exemplo, controlador de implantação) criada no kubernetes por padrão.
Kubeconfig
O painel precisa que o usuário no arquivo kubeconfig tenha
username & password
outoken
, masadmin.conf
apenas possuiclient-certificate
. Você pode editar o arquivo de configuração para adicionar o token que foi extraído usando o método acima.Alternativa (não recomendado para produção)
Aqui estão duas maneiras de ignorar a autenticação, mas use com cuidado.
Implantar painel com HTTP
O painel pode ser carregado em http: // localhost: 8001 / ui com
kubectl proxy
.Concedendo privilégios de administrador à conta de serviço do painel
Depois, você pode usar a Skipopção na página de login para acessar o Painel.
Se você estiver usando a versão do painel v1.10.1 ou posterior, também deverá adicionar
--enable-skip-login
aos argumentos de linha de comando da implantação. Você pode fazer isso adicionando-o aoargs
inkubectl edit deployment/kubernetes-dashboard --namespace=kube-system
.Exemplo:
fonte
TL; DR
Para obter o token em um único oneliner:
Isso pressupõe que seu ~ / .kube / config esteja presente e válido. E também
kubectl config get-contexts
indica que você está usando o contexto correto (cluster e espaço para nome) para o painel no qual está efetuando login.Explicação
Eu deduzi esta resposta do que aprendi com a resposta do @ silverfox. Essa é uma redação muito informativa. Infelizmente, não é possível dizer como colocar as informações em prática. Talvez eu esteja desenvolvendo o DevOps há muito tempo, mas acho que com casca. É muito mais difícil para mim aprender ou ensinar em inglês.
Aqui está o oneliner com quebras de linha e recuos para facilitar a leitura:
Existem 4 comandos distintos e eles são chamados nesta ordem:
deployment-controller-token-
(que é o nome do pod)fonte
kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}'
Ou empurrar direito de sua pranchetakubectl 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)
do github.com/kubernetes/dashboard/blob/master/docs/user/…Se você não deseja conceder permissão de administrador para a conta de serviço do painel, é possível criar uma conta de serviço de administrador de cluster.
E então, você pode usar o token da conta de serviço de administração de cluster recém-criada.
Eu o citei no guia giantswarm - https://docs.giantswarm.io/guides/install-kubernetes-dashboard/
fonte
Combinando duas respostas: 49992698 e 47761914 :
fonte
Uma linha única simples e auto-explicativa para extrair token para o login no painel do kubernetes.
Copie o token e cole-o no painel do kubernetes, na opção de login do token, e é bom usar o painel do kubernetes
fonte
Todas as respostas anteriores são boas para mim. Mas uma resposta direta do meu lado viria de https://github.com/kubernetes/dashboard/wiki/Creating-sample-user#bearer-token . Apenas use
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
. Você vai ter muitos valores para algumas teclas (Name
,Namespace
,Labels
, ...,token
). O mais importante é otoken
que corresponde ao seu nome. copie esse token e cole-o na caixa de token. Espero que isto ajude.fonte
Você precisa seguir estas etapas antes da autenticação do token
Crie uma conta de serviço de administrador de cluster
Adicione as regras de ligação de cluster à sua conta do painel
Obtenha o token secreto com este comando
Escolha a autenticação de token na página de login do painel Kubernetes
Agora você pode fazer o login
fonte
Baixar https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
adicionar
E, em seguida, execute este comando:
Encontre a porta exposta com o comando:
Você deve conseguir o painel em http: // hostname :posedport / sem autenticação
fonte
O login ignorado foi desativado por padrão devido a problemas de segurança. https://github.com/kubernetes/dashboard/issues/2672
no seu painel yaml adicione este argumento
recuperá-lo
fonte
The skip login has been disabled by default due to security issues
. A tentativa de resposta é- --enable-skip-login
. Talvez não seja a melhor resposta, talvez, mas esta não é apenas uma resposta.The skip login has been disabled by default due to security issues
. A tentativa de resposta é- --enable-skip-login
. Talvez não seja a melhor resposta, talvez, mas esta não é apenas uma resposta.