Gestion du tableau de bord Kubernetes

KubernetesBeginner
Pratiquer maintenant

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).

  1. Ouvrez un terminal et accédez au répertoire du projet :

    cd ~/project
    
  2. Démarrez le cluster Minikube :

    minikube start
    

    Minikube 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.

  3. Vérifiez que Minikube est en cours d'exécution en vérifiant son statut :

    minikube status
    

    Si le cluster n'est pas en cours d'exécution, redémarrez-le avec minikube delete suivi de minikube 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.

  1. 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.yaml
    

    Cette 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).

  2. Vérifiez que le tableau de bord est en cours d'exécution :

    kubectl get pods -n kubernetes-dashboard
    

    Recherchez un pod nommé kubernetes-dashboard et assurez-vous que son statut est Running.

  3. Vérifiez l'espace de noms (namespace) du tableau de bord :

    kubectl get ns | grep kubernetes-dashboard
    

    L'espace de noms kubernetes-dashboard devrait 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.

  1. Créez un fichier nommé dashboard-admin.yaml :

    nano ~/project/dashboard-admin.yaml
    
  2. Ajoutez 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.

  1. Appliquez la configuration :

    kubectl apply -f dashboard-admin.yaml
    
  2. Vérifiez le compte de service et la liaison de rôle :

    kubectl get sa -n kubernetes-dashboard
    

    Vous devriez voir le compte de service admin-user répertorié.

    kubectl get clusterrolebinding
    

    Vous devriez voir la liaison de rôle de cluster admin-user ré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.

  1. Générez un jeton de connexion (login token) :

    kubectl -n kubernetes-dashboard create token admin-user
    

    Copiez le jeton généré. Il sera utilisé pour vous connecter.

  2. Modifiez le service (Service) du tableau de bord pour l'exposer sur un NodePort :

    kubectl edit service -n kubernetes-dashboard kubernetes-dashboard
    

    Recherchez le champ type sous spec et changez sa valeur en NodePort. Enregistrez et quittez.

Modification du NodePort du service du tableau de bord

  1. Trouvez le NodePort attribué au tableau de bord :

    kubectl get service -n kubernetes-dashboard
    
    NAME                        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   20m
    

    Notez 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.

  2. Récupérez l'adresse IP du nœud (node) :

    kubectl get node -o wide
    
    NAME       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.23
    

    La colonne INTERNAL-IP indique l'adresse IP du nœud.

  3. 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.

Navigateur Firefox affichant le tableau de bord Kubernetes

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

Écran de poursuite après avertissement de sécurité

  1. 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".

Page de connexion du tableau de bord Kubernetes

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.

Interface du tableau de bord Kubernetes

Résumé

Dans ce laboratoire (lab), vous avez appris à :

  1. Déployer le tableau de bord Kubernetes (Kubernetes Dashboard) sur un cluster local.
  2. 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.
  3. 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!