Je viens de mettre à jour kubeadm et kubelet vers la v1.8.0. Et installez le tableau de bord en suivant le document officiel .
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Après cela, j'ai démarré le tableau de bord en exécutant
$ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$'
Puis, heureusement, j'ai pu accéder au tableau de bord via http://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
J'ai été redirigé vers une page de connexion comme celle-ci que je n'avais jamais rencontrée auparavant. Il semble qu'il existe deux méthodes d'authentification.
J'ai essayé de télécharger le /etc/kubernetes/admin.conf
comme kubeconfig mais j'ai échoué. Ensuite, j'ai essayé d'utiliser le jeton que j'ai obtenu kubeadm token list
pour me connecter, mais j'ai de nouveau échoué.
La question est de savoir comment je peux me connecter au tableau de bord. Il semble qu'ils aient ajouté beaucoup de mécanismes de sécurité qu'auparavant. Merci.
la source
Réponses:
- Tableau de bord sur Github
Jeton
Ici
Token
peut êtreStatic Token
,Service Account Token
,OpenID Connect Token
de Kubernetes Authentifier , mais pas le kubeadmBootstrap Token
.Avec kubectl, nous pouvons obtenir un compte de service (par exemple, un contrôleur de déploiement) créé dans kubernetes par défaut.
Kubeconfig
Le tableau de bord a besoin que l'utilisateur dans le fichier kubeconfig ait soit
username & password
outoken
, mais aadmin.conf
seulementclient-certificate
. Vous pouvez modifier le fichier de configuration pour ajouter le jeton qui a été extrait à l'aide de la méthode ci-dessus.Alternative (non recommandé pour la production)
Voici deux façons de contourner l'authentification, mais à utiliser avec prudence.
Déployer le tableau de bord avec HTTP
Le tableau de bord peut être chargé à l' adresse http: // localhost: 8001 / ui avec
kubectl proxy
.Accorder des privilèges d'administrateur au compte de service de Dashboard
Ensuite, vous pouvez utiliser l' Skipoption sur la page de connexion pour accéder au tableau de bord.
Si vous utilisez la version v1.10.1 ou ultérieure du tableau de bord, vous devez également ajouter
--enable-skip-login
les arguments de ligne de commande du déploiement. Vous pouvez le faire en l'ajoutant au fichierargs
inkubectl edit deployment/kubernetes-dashboard --namespace=kube-system
.Exemple:
la source
TL; DR
Pour obtenir le jeton dans une seule ligne:
Cela suppose que votre ~ / .kube / config est présent et valide. Et cela
kubectl config get-contexts
indique également que vous utilisez le bon contexte (cluster et espace de noms) pour le tableau de bord auquel vous vous connectez.Explication
J'ai tiré cette réponse de ce que j'ai appris de la réponse de @ silverfox. C'est un article très instructif. Malheureusement, il ne vous dit pas comment mettre réellement les informations en pratique. Peut-être que je fais du DevOps depuis trop longtemps, mais je pense en shell. C'est beaucoup plus difficile pour moi d'apprendre ou d'enseigner en anglais.
Voici cet oneliner avec des sauts de ligne et des retraits pour la lisibilité:
Il existe 4 commandes distinctes et elles sont appelées dans cet ordre:
deployment-controller-token-
(qui est le nom du pod)la source
kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}'
Ou poussez à droite dans votre pressekubectl 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 vous ne souhaitez pas accorder l'autorisation d'administrateur au compte de service de tableau de bord, vous pouvez créer un compte de service d'administrateur de cluster.
Et puis, vous pouvez utiliser le jeton du compte de service d'administrateur de cluster qui vient d'être créé.
Je l'ai cité dans le guide giantswarm - https://docs.giantswarm.io/guides/install-kubernetes-dashboard/
la source
Combinant deux réponses: 49992698 et 47761914 :
la source
Un simple one-liner explicite pour extraire le jeton pour la connexion au tableau de bord kubernetes.
Copiez le jeton et collez-le sur le tableau de bord kubernetes sous l'option de connexion par jeton et vous êtes prêt à utiliser le tableau de bord kubernetes
la source
Toutes les réponses précédentes sont bonnes pour moi. Mais une réponse simple de mon côté viendrait de https://github.com/kubernetes/dashboard/wiki/Creating-sample-user#bearer-token . Utilisez simplement
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
. Vous aurez beaucoup de valeurs pour certaines touches (Name
,Namespace
,Labels
, ...,token
). Le plus important est celuitoken
qui correspond à votre nom. copiez ce jeton et collez-le dans la boîte de jetons. J'espère que cela t'aides.la source
Vous devez suivre ces étapes avant l'authentification par jeton
Créer un compte de service d'administration de cluster
Ajouter les règles de liaison de cluster à votre compte de tableau de bord
Obtenez le jeton secret avec cette commande
Choisissez l'authentification par jeton dans la page de connexion du tableau de bord Kubernetes
Vous pouvez maintenant vous connecter
la source
Téléchargez https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
ajouter
Et puis exécutez cette commande:
Trouvez le port exposé avec la commande:
Vous devriez pouvoir obtenir le tableau de bord à l' adresse http: // hostname: exposéport / sans authentification
la source
Le saut de connexion a été désactivé par défaut en raison de problèmes de sécurité. https://github.com/kubernetes/dashboard/issues/2672
dans votre tableau de bord yaml ajoutez cet argument
pour le récupérer
la source
The skip login has been disabled by default due to security issues
. La tentative de réponse est- --enable-skip-login
. Ce n'est peut-être pas la meilleure réponse, mais ce n'est pas seulement un lien.The skip login has been disabled by default due to security issues
. La tentative de réponse est- --enable-skip-login
. Ce n'est peut-être pas la meilleure réponse, mais ce n'est pas seulement un lien.