Introduction
Le tableau de bord Kubernetes (Kubernetes Dashboard) est une interface utilisateur basée sur le web qui simplifie la gestion et la surveillance des clusters Kubernetes. Il offre un moyen intuitif de déployer et de gérer des applications, ainsi que de visualiser et d'analyser les ressources du cluster. Ce laboratoire (lab) vous guidera tout au long du déploiement et de l'accès au tableau de bord Kubernetes.
Démarrer le cluster Kubernetes
Avant de déployer le tableau de bord Kubernetes (Kubernetes Dashboard), assurez-vous que votre cluster est en cours d'exécution. Nous utiliserons Minikube pour ce laboratoire (lab).
Ouvrez un terminal et accédez au répertoire du projet :
cd ~/projectDémarrez le cluster Minikube :
minikube startMinikube crée un cluster Kubernetes local, ce qui facilite le test de fonctionnalités telles que le tableau de bord. La configuration peut prendre quelques minutes.
Vérifiez que Minikube est en cours d'exécution en vérifiant son statut :
minikube statusSi le cluster n'est pas en cours d'exécution, redémarrez-le avec
minikube deletesuivi deminikube start.
Déployer le tableau de bord Kubernetes
Le tableau de bord Kubernetes (Kubernetes Dashboard) n'est pas inclus par défaut dans le cluster. Déployez-le en utilisant le fichier YAML de déploiement officiel.
Exécutez la commande suivante pour déployer le tableau de bord :
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yamlCette commande crée toutes les ressources nécessaires pour le tableau de bord, y compris un déploiement (Deployment), un service (Service) et des paramètres de contrôle d'accès basé sur les rôles (Role-Based Access Control - RBAC).
Vérifiez que le tableau de bord est en cours d'exécution :
kubectl get pods -n kubernetes-dashboardRecherchez un pod nommé
kubernetes-dashboardet assurez-vous que son statut estRunning.Vérifiez l'espace de noms (namespace) du tableau de bord :
kubectl get ns | grep kubernetes-dashboardL'espace de noms
kubernetes-dashboarddevrait exister.
Créer un compte de service (Service Account) et une liaison de rôle (Role Binding)
Par défaut, le tableau de bord Kubernetes (Kubernetes Dashboard) restreint l'accès. Pour vous connecter avec des privilèges d'administrateur, vous devez créer un compte de service et le lier à un rôle de cluster.
Créez un fichier nommé
dashboard-admin.yaml:nano ~/project/dashboard-admin.yamlAjoutez le contenu suivant au fichier :
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
Ce fichier définit un compte de service admin-user et lui accorde des privilèges d'administrateur sur l'ensemble du cluster.
Appuyez sur Ctrl+X, Y, puis Entrée pour enregistrer le fichier.
Appliquez la configuration :
kubectl apply -f dashboard-admin.yamlVérifiez le compte de service et la liaison de rôle :
kubectl get sa -n kubernetes-dashboardVous devriez voir le compte de service
admin-userrépertorié.kubectl get clusterrolebindingVous devriez voir la liaison de rôle de cluster
admin-userrépertoriée.
Accéder au tableau de bord Kubernetes
Maintenant que le tableau de bord est en cours d'exécution et que les autorisations sont configurées, accédez-y via un navigateur.
Générez un jeton de connexion (login token) :
kubectl -n kubernetes-dashboard create token admin-userCopiez le jeton généré. Il sera utilisé pour vous connecter.
Modifiez le service (Service) du tableau de bord pour l'exposer sur un NodePort :
kubectl edit service -n kubernetes-dashboard kubernetes-dashboardRecherchez le champ
typesousspecet changez sa valeur enNodePort. Enregistrez et quittez.

Trouvez le NodePort attribué au tableau de bord :
kubectl get service -n kubernetes-dashboardNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.104.164.172 <none> 8000/TCP 20m kubernetes-dashboard NodePort 10.108.222.153 <none> 443:30587/TCP 20mNotez le numéro de port répertorié sous la colonne
PORT(S)(par exemple,30587). C'est le port que vous utiliserez pour accéder au tableau de bord.Récupérez l'adresse IP du nœud (node) :
kubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME minikube Ready control-plane 35m v1.26.1 192.168.58.2 <none> Ubuntu 20.04.5 LTS 5.15.0-56-generic docker://20.10.23La colonne
INTERNAL-IPindique l'adresse IP du nœud.Ouvrez le navigateur Firefox sur le bureau et accédez à l'URL suivante :
https://<node-ip>:<node-port>Remplacez
<node-ip>par l'adresse IP du nœud et<node-port>par le port de l'étape 3.

- Si vous recevez un avertissement de sécurité, continuez en sélectionnant "Avancé" puis "Accepter le risque et continuer".

- Sur la page de connexion, sélectionnez l'option Jeton (Token), collez (cliquez droit) le jeton de l'étape 1, puis cliquez sur "Se connecter".

Vous devriez maintenant être connecté au tableau de bord Kubernetes, où vous pouvez explorer les ressources du cluster et gérer les charges de travail.

Résumé
Dans ce laboratoire (lab), vous avez appris à :
- Déployer le tableau de bord Kubernetes (Kubernetes Dashboard) sur un cluster local.
- Créer un compte de service (Service Account) et le lier à un rôle de cluster (Cluster Role) pour accéder en tant qu'administrateur.
- Accéder au tableau de bord via un navigateur en utilisant un service NodePort.
Avec le tableau de bord Kubernetes, vous pouvez gérer visuellement les applications, surveiller les ressources et explorer les configurations du cluster. Cet outil simplifie les opérations Kubernetes, notamment pour les débutants qui passent des flux de travail en ligne de commande. Continuez à explorer ses fonctionnalités pour tirer le meilleur parti de votre environnement Kubernetes!


