Version du tableau de bord : 1.1
Version Kubernetes : 1.3.6
Système d'exploitation : ubuntu14.04
Aller à la version:1.6.2
Déployez kubernetes et le tableau de bord en tant que http://kubernetes.io/docs/getting-started-guides/ubuntu/
Je peux accéder au tableau de bord http://master-ip :8080/
bur quand j'accède à https://master-ip :6443/, retourne "Unauthorized"
Pourquoi?
J'ai le même problème. Et je pense que l'auteur ne l'a peut-être pas encore envisagé.
https://github.com/kubernetes/dashboard/issues/1116
Je suppose que vos clusters utilisent des certificats pour une communication sécurisée via HTTPS. Il y a 2 problèmes ici.
Unauthorized
.Il est facile d'autoriser avec curl car vous pouvez facilement fournir les données requises.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Avec un navigateur, c'est plus compliqué que ça. Il existe plusieurs façons d'accéder au tableau de bord :
<MASTER_IP>:<NODE_PORT>
. (Pas sécurisé)kubectl proxy
et allez à http://127.0.0.1:8001/
(l'adresse de liaison peut être modifiée). Il gérera le tunnel SSL si votre fichier kubeconfig
est configuré pour utiliser une connexion sécurisée.Concernant la deuxième option. Je peux fournir des informations sur la façon de le faire en utilisant Firefox.
Your Certificates
. Si vous avez 2 certificats distincts crt
et key
, il est préférable de les fusionner en un certificat PFX/PKCS#12
car il est facile de l'importer directement dans le magasin de certificats du navigateur. Vous pouvez utiliser cette page ou le faire manuellement en utilisant openssl
.Si les certificats sont générés correctement, une fenêtre contextuelle s'affichera lors de la prochaine tentative d'accès au serveur API via HTTPS. Vous devrez peut-être vider le cache du navigateur.
Vous devriez voir le tableau de bord maintenant. :)
Je ne sais pas comment utiliser le jeton du porteur dans le navigateur. Cela nécessite peut-être un travail manuel pour ajouter des données à l'en-tête HTTP avant d'envoyer la demande au serveur API.
Il existe bien sûr d'autres options pour autoriser l'utilisateur. Kubernetes prend en charge ABAC, RBAC et bien plus encore.
Le navigateur doit s'authentifier lors de l'accès au port sécurisé du serveur API. Comme le montre https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834, cela peut être fait avec une authentification par certificat.
Pour l'authentification basée sur des jetons, les navigateurs ne vous permettent pas d'envoyer automatiquement des jetons au porteur avec vos demandes.
Le tableau de bord décrit comment vous pouvez utiliser kubectl proxy
qui ajoute vos informations d'authentification et vous permet d'accéder au tableau de bord localement via le proxy - https://github.com/kubernetes/dashboard#usage
Commentaire le plus utile
Je suppose que vos clusters utilisent des certificats pour une communication sécurisée via HTTPS. Il y a 2 problèmes ici.
Unauthorized
.Il est facile d'autoriser avec curl car vous pouvez facilement fournir les données requises.
`
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Avec un navigateur, c'est plus compliqué que ça. Il existe plusieurs façons d'accéder au tableau de bord :
<MASTER_IP>:<NODE_PORT>
. (Pas sécurisé)kubectl proxy
et allez àhttp://127.0.0.1:8001/
(l'adresse de liaison peut être modifiée). Il gérera le tunnel SSL si votre fichierkubeconfig
est configuré pour utiliser une connexion sécurisée.Concernant la deuxième option. Je peux fournir des informations sur la façon de le faire en utilisant Firefox.
Your Certificates
. Si vous avez 2 certificats distinctscrt
etkey
, il est préférable de les fusionner en un certificatPFX/PKCS#12
car il est facile de l'importer directement dans le magasin de certificats du navigateur. Vous pouvez utiliser cette page ou le faire manuellement en utilisantopenssl
.Si les certificats sont générés correctement, une fenêtre contextuelle s'affichera lors de la prochaine tentative d'accès au serveur API via HTTPS. Vous devrez peut-être vider le cache du navigateur.
Vous devriez voir le tableau de bord maintenant. :)
Je ne sais pas comment utiliser le jeton du porteur dans le navigateur. Cela nécessite peut-être un travail manuel pour ajouter des données à l'en-tête HTTP avant d'envoyer la demande au serveur API.
Il existe bien sûr d'autres options pour autoriser l'utilisateur. Kubernetes prend en charge ABAC, RBAC et bien plus encore.