Accès à une grappe à l'aide du tableau de bord Kubernetes
Découvrez comment démarrer le tableau de bord Kubernetes pour voir les grappes que vous avez créées à l'aide de Kubernetes Engine (OKE).
Vous ne pouvez pas utiliser le tableau de bord Kubernetes avec des groupes de noeuds virtuels.
Le tableau de bord Kubernetes est une interface de gestion Web qui permet d'effectuer les opérations suivantes :
- déployer et modifier des applications en conteneurs
- évaluer l'état des applications en conteneurs
- dépanner les applications en conteneurs
Le tableau de bord Kubernetes est particulièrement utile pour les nouveaux utilisateurs de Kubernetes. Pour plus d'informations sur le tableau de bord Kubernetes (parfois appelé interface Web ou interface de tableau de bord), voir la rubrique Interface Web (tableau de bord) dans la documentation sur Kubernetes.
Le tableau de bord Kubernetes n'est pas déployé dans les grappes par défaut. Toutefois, vous pouvez déployer le tableau de bord Kubernetes dans les grappes que vous créez avec Kubernetes Engine des manières suivantes :
-
Pour déployer manuellement le tableau de bord Kubernetes sur une grappe existante, voir la documentation sur Kubernetes. Lorsque vous suivez les instructions pour déployer manuellement le tableau de bord Kubernetes, celui-ci est déployé dans l'espace de noms
kubernetes-dashboard
(et nonkube-system
). L'URL pour afficher un tableau de bord Kubernetes déployé manuellement est la suivante :http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
- Pour que Kubernetes Engine déploie automatiquement le tableau de bord Kubernetes lors de la création améliorée des grappes, vous pouvez :
- Créez la grappe améliorée à l'aide du flux de création personnalisée dans la console et configurez le module complémentaire de grappe du tableau de bord Kubernetes.
- Créez la grappe à l'aide de l'API et réglez l'attribut isKubernetesDashboardEnabled à Vrai.
Lorsque Kubernetes Engine déploie automatiquement le tableau de bord Kubernetes, il est déployé dans l'espace de noms
kube-system
. L'URL pour afficher un tableau de bord Kubernetes déployé automatiquement est la suivante :http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Notez ce qui suit :
- Vous ne pouvez pas exécuter le tableau de bord Kubernetes dans Cloud Shell.
- Il n'est pas recommandé d'installer le tableau de bord Kubernetes sur les grappes de production en raison du manque de prise en charge de l'authentification extensible. Si vous installez le tableau de bord Kubernetes, nous vous recommandons d'en restreindre l'accès à la grappe plutôt que de l'exposer à l'externe au moyen d'un équilibreur de charge ou d'un contrôleur de trafic entrant. Le tableau de bord Kubernetes est un vecteur d'attaque commun utilisé pour accéder aux grappes Kubernetes.
- Les commandes utilisées pour supprimer le tableau de bord Kubernetes d'une grappe dépendent de la version de Kubernetes exécutée dans la grappe : Voir Notes sur la suppression du tableau de bord Kubernetes.
- Une commande CLI Oracle Cloud Infrastructure dans le fichier kubeconfig génère des jetons d'authentification à courte durée de vie, propres à une grappe et destinés à des utilisateurs individuels. Ainsi, vous ne pouvez pas partager les fichiers kubeconfig entre plusieurs utilisateurs pour accéder aux grappes Kubernetes. Les jetons d'authentification générés sont également inadéquats si vous voulez que d'autres processus et outils accèdent à la grappe, tels que les outils d'intégration et de livraison en continu (CI/CD). Dans ce cas, envisagez la création d'un compte de service Kubernetes et l'ajout du jeton d'authentification associé au fichier kubeconfig. Pour plus d'informations, voir Ajout d'un jeton d'authentification de compte de service dans un fichier Kubeconfig.
- Vous pouvez utiliser le tableau de bord Kubernetes avec des groupes de noeuds gérés, mais pas avec des groupes de noeuds virtuels.
Accès à une grappe à l'aide du tableau de bord Kubernetes
Pour accéder à une grappe à l'aide du tableau de bord Kubernetes :
-
Si vous ne l'avez pas encore fait, suivez les étapes pour configurer le fichier de configuration kubeconfig de la grappe et (s'il y a lieu) définissez la variable d'environnement KUBECONFIG pour qu'elle pointe vers le fichier. Notez que vous devez configurer votre propre fichier kubeconfig. Vous ne pouvez pas accéder à une grappe à l'aide d'un fichier kubeconfig configuré par un autre utilisateur. Voir Configuration de l'accès aux grappes.
-
Dans un éditeur de texte, créez un fichier (nommé par exemple oke-admin-service-account.yaml) avec le contenu suivant :
apiVersion: v1 kind: ServiceAccount metadata: name: oke-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: oke-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: oke-admin namespace: kube-system
Ce fichier définit un compte de service d'administrateur et une liaison de rôle de grappe (ClusterRoleBinding), nommés tous les deux oke-admin.
-
Créez le compte de service et la liaison de rôle de grappe dans la grappe en entrant :
kubectl apply -f <filename>
où
<filename>
est le nom du fichier que vous avez créé précédemment. Par exemple :kubectl apply -f oke-admin-service-account.yaml
La sortie de la commande ci-dessus confirme la création du compte de service et de la liaison de rôle de grappe :
serviceaccount "oke-admin" created clusterrolebinding.rbac.authorization.k8s.io "oke-admin" created
Vous pouvez maintenant utiliser le compte de service oke-admin pour voir et contrôler la grappe ainsi que pour vous connecter au tableau de bord Kubernetes.
- Obtenez un jeton d'authentification pour le compte de service oke-admin comme suit :
- Dans un éditeur de texte, créez un fichier (par exemple, appelé oke-admin-sa-token.yaml) pour créer une clé secrète (par exemple, nommée oke-admin-sa-token) avec le contenu suivant.
apiVersion: v1 kind: Secret metadata: name: oke-admin-sa-token namespace: kube-system annotations: kubernetes.io/service-account.name: oke-admin type: kubernetes.io/service-account-token
-
Créez le jeton de compte de service en entrant :
kubectl apply -f <filename>
où
<filename>
est le nom du fichier que vous avez créé précédemment. Par exemple :kubectl apply -f oke-admin-sa-token.yaml
-
Voir les détails de la clé secrète en entrant :
kubectl describe secrets oke-admin-sa-token -n kube-system
La sortie de la commande ci-dessus comprend un jeton d'authentification (une chaîne alphanumérique longue) comme valeur de l'élément
token:
, comme indiqué ci-dessous :Name: oke-admin-sa-token Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name: oke-admin kubernetes.io/service-account.uid: 3a7fcd8e-e123-11e9-81ca-0a580aed8570 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1289 bytes namespace: 11 bytes token: eyJh______px1Q
Dans l'exemple ci-dessus,
eyJh______px1Q
(abrégé pour plus de lisibilité) est le jeton d'authentification. -
Copiez la valeur de l'élément
token:
à partir de la sortie. Vous utiliserez ce jeton pour vous connecter au tableau de bord.
- Dans un éditeur de texte, créez un fichier (par exemple, appelé oke-admin-sa-token.yaml) pour créer une clé secrète (par exemple, nommée oke-admin-sa-token) avec le contenu suivant.
- Dans une fenêtre de terminal, entrez
kubectl proxy
pour rendre le tableau de bord Kubernetes disponible. - Ouvrez un navigateur et accédez à l'URL suivante pour afficher le tableau de bord Kubernetes qui a été déployé lorsque la grappe a été créée :
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Notez que si vous suivez les instructions de la documentation sur Kubernetes pour déployer manuellement le tableau de bord Kubernetes dans une grappe existante, il est déployé dans l'espace de noms
kubernetes-dashboard
, et nonkube-system
. Par conséquent, l'URL pour afficher le tableau de bord Kubernetes déployé manuellement est la suivante :http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login.
-
Dans le tableau de bord Kubernetes, sélectionnez Jeton et collez la valeur de l'élément
token:
que vous avez copiée précédemment dans le champ Jeton. - Dans le tableau de bord Kubernetes, sélectionnez Connexion, puis Aperçu pour voir les applications déployées dans la grappe.
Notes sur la suppression du tableau de bord Kubernetes
Si vous voulez supprimer manuellement le tableau de bord Kubernetes d'une grappe, exécutez les commandes kubectl suivantes :
kubectl delete deployment kubernetes-dashboard -n kube-system
kubectl delete sa -n kube-system kubernetes-dashboard
kubectl delete svc -n kube-system kubernetes-dashboard
kubectl delete secret -n kube-system kubernetes-dashboard-certs
kubectl delete secret -n kube-system kubernetes-dashboard-csrf
kubectl delete secret -n kube-system kubernetes-dashboard-key-holder
kubectl delete cm -n kube-system kubernetes-dashboard-settings
kubectl delete role -n kube-system kubernetes-dashboard
kubectl delete rolebinding -n kube-system kubernetes-dashboard
kubectl delete clusterrole -n kube-system kubernetes-dashboard
kubectl delete clusterrolebinding -n kube-system kubernetes-dashboard
kubectl delete deploy -n kube-system kubernetes-dashboard