E-NO
Kubernetes 8 min de lecture

Sauvegarde et restauration du tableau de bord Kubernetes : guide pratique d'exploitation

calendar_today Publié : 2026-10-12
update Dernière mise à jour : 2026-10-12
analytics Efficacité SEO : 100%
Illustration du guide technique pour « Sauvegarde et restauration du tableau de bord Kubernetes : guide pratique d'exploitation ».

Introduction

Le tableau de bord Kubernetes Web UI (souvent appelé simplement « le tableau de bord ») est une interface administrative critique pour de nombreux clusters. Perdre sa configuration, ses jetons d'accès ou ses réglages personnalisés peut perturber la gestion du cluster. Ce guide explique comment sauvegarder et restaurer le tableau de bord, en couvrant l'inventaire des versions, la configuration sûre, la vérification, la récupération après échec et les listes de contrôle opérationnelles.

Vous apprendrez des commandes concrètes pour observer l'état actuel, exporter et importer des ressources, valider une restauration et récupérer des échecs courants. L'accent est mis sur des procédures pratiques et reproductibles utilisant kubectl et des manifestes YAML. Nous supposons que vous disposez d'un cluster Kubernetes en cours d'exécution avec le tableau de bord déployé, probablement via le manifeste recommandé ou le chart Helm.

Testez toujours ces procédures dans un environnement hors production d'abord. L'objectif est de rendre la sauvegarde et la restauration routinières, à faible risque et vérifiables.

Inventaire des versions et de l'environnement

Avant de toucher à quoi que ce soit, sachez exactement ce que vous exécutez. Commencez par vérifier la version du serveur Kubernetes et les détails du déploiement du tableau de bord.

kubectl version --short
kubectl get pods -n kubernetes-dashboard -o wide

La sortie attendue montre les versions client et serveur, ainsi qu'une liste des pods du tableau de bord avec leur état, leur âge et leur nœud. Par exemple :

Client Version: v1.27.3
Server Version: v1.27.3
NAME                                   READY   STATUS    RESTARTS   AGE   IP            NODE
dashboard-metrics-scraper-7c8f8b8d-9x2k   1/1     Running   0          5d    10.244.1.5    node-1
kubernetes-dashboard-6c8b8d8d-7z2k   1/1     Running   0          5d    10.244.1.6    node-1

Ensuite, inspectez les déploiements et le service du tableau de bord :

kubectl get deployment -n kubernetes-dashboard
kubectl get service -n kubernetes-dashboard kubernetes-dashboard-kong-proxy -o yaml

Recherchez la version de l'image, les réplicas, les limites de ressources et toute annotation ou étiquette personnalisée. Notez-les pour une comparaison ultérieure. Vérifiez aussi les secrets utilisés par le tableau de bord. Pour l'authentification, suivez le guide à l'adresse https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md pour créer un utilisateur d'exemple et obtenir son jeton.

kubectl get secrets -n kubernetes-dashboard

Notez tous les jetons de compte de service ou noms de secrets créés, car certaines méthodes de sauvegarde incluent les secrets. Vérifiez les liaisons RBAC :

kubectl get clusterrolebinding kubernetes-dashboard
kubectl get rolebinding -n kubernetes-dashboard

Cet inventaire vous assure de connaître les composants existants, leurs versions et leurs dépendances. Sans cela, une sauvegarde pourrait manquer des éléments critiques comme des rôles personnalisés ou des annotations.

Question rapide 1 sur 2

Quelle est la fonction principale du Kubernetes Dashboard ?

Le Dashboard est une interface utilisateur web qui permet aux utilisateurs de déployer des applications conteneurisées sur un cluster Kubernetes, de les dépanner et de gérer le cluster et ses ressources (passage 2).

Chemin de configuration sûre

Configurer le tableau de bord en toute sécurité signifie comprendre ce qui peut être modifié sans casser l'accès. Les éléments de configuration courants incluent :

  • Type de service (ClusterIP, NodePort, LoadBalancer)
  • Règles d'ingress
  • Certificats TLS
  • Mode d'authentification (jeton vs basic)
  • Définitions de ressources personnalisées (CRD) pour les plugins

Pour éviter de perdre la configuration lors d'une sauvegarde, exportez les définitions YAML actuelles :

kubectl get deployment -n kubernetes-dashboard -o yaml > dashboard-deployment-backup.yaml
kubectl get service -n kubernetes-dashboard kubernetes-dashboard-kong-proxy -o yaml > dashboard-service-backup.yaml
kubectl get configmap -n kubernetes-dashboard -o yaml > dashboard-configmaps-backup.yaml

Si vous utilisez Helm, vous pouvez capturer les valeurs de la version :

helm get values kubernetes-dashboard -n kubernetes-dashboard > dashboard-values.yaml
helm get manifest kubernetes-dashboard -n kubernetes-dashboard > dashboard-manifest.yaml

Stockez ces fichiers dans un système de contrôle de version. Lorsque vous apportez des modifications de configuration, appliquez-les de manière contrôlée :

kubectl apply -f dashboard-deployment-backup.yaml --dry-run=client
kubectl apply -f dashboard-deployment-backup.yaml
kubectl wait --for=condition=available deployment --all -n kubernetes-dashboard --timeout=300s

Vérifiez toujours que le déploiement se termine avant de continuer. Utilisez kubectl port-forward pour tester l'accès localement :

kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard-kong-proxy 8443:443

Ouvrez ensuite https://localhost:8443 dans un navigateur (acceptez le certificat auto-signé) et connectez-vous avec un jeton valide. Cela garantit que le tableau de bord fonctionne après chaque modification.

Vérification et diagnostics

Vérifier l'état du tableau de bord avant et après la sauvegarde/restauration est essentiel. Voici des commandes de diagnostic :

Listez les pods du tableau de bord et consultez les journaux de l'un d'eux :

kubectl get pods -n kubernetes-dashboard
kubectl logs -n kubernetes-dashboard <dashboard-pod-name> --tail=50

Recherchez des erreurs comme Failed to watch *v1.Secret ou Unauthorized. Si un pod est en boucle de crash :

kubectl describe pod -n kubernetes-dashboard <pod-name>
kubectl logs -n kubernetes-dashboard <pod-name> --previous

Vérifiez les endpoints du service :

kubectl get endpoints -n kubernetes-dashboard kubernetes-dashboard-kong-proxy

La sortie attendue doit montrer au moins une adresse IP et un port, correspondant aux IP des pods. Si les endpoints sont vides, le sélecteur de service peut être incorrect ou les pods ne sont pas prêts.

Testez l'accès API depuis l'intérieur du cluster :

kubectl run -it --rm debug --image=curlimages/curl --restart=Never -n kubernetes-dashboard -- curl -k https://kubernetes-dashboard-kong-proxy:443

Cela devrait renvoyer le HTML du tableau de bord ou une redirection. Pour l'authentification, utilisez un jeton bearer valide (par exemple, celui de l'utilisateur d'exemple créé selon le guide). Copiez le jeton et utilisez-le pour vous connecter. Après une restauration, vous devez répéter ces vérifications pour confirmer que le tableau de bord est pleinement fonctionnel.

Modes d'échec et récupération

Les opérations de sauvegarde et de restauration peuvent mal tourner de plusieurs façons. Comprendre les modes d'échec probables vous aide à récupérer rapidement.

Échec courant : secret ou jeton manquant

Symptôme : les pods du tableau de bord ne démarrent pas avec MountVolume.SetUp failed for volume "kubernetes-dashboard-certs" ou secret "kubernetes-dashboard-certs" not found.

Le tableau de bord attend certains secrets. Si vous n'avez sauvegardé que le déploiement, les secrets peuvent être perdus. Récupération :

kubectl get secret -n kubernetes-dashboard

S'ils manquent, recréez le secret. Pour les certificats TLS, vous pouvez en générer un nouveau :

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout dashboard.key -out dashboard.crt -subj "/CN=kubernetes-dashboard"
kubectl create secret tls kubernetes-dashboard-certs --key dashboard.key --cert dashboard.crt -n kubernetes-dashboard

Redémarrez ensuite les déploiements :

kubectl rollout restart deployment --all -n kubernetes-dashboard

Échec courant : mauvaise version d'image

Symptôme : ImagePullBackOff ou crash des pods en raison d'une incompatibilité d'API.

Vérifiez toujours que l'étiquette de l'image correspond à votre version de Kubernetes. L'image du tableau de bord est kubernetesui/dashboard:<version>. Pour Kubernetes 1.27, utilisez v2.7.0. Si vous avez restauré un ancien manifeste avec une image incompatible, mettez à jour l'étiquette et réappliquez :

spec:
  containers:
  - name: kubernetes-dashboard
    image: kubernetesui/dashboard:v2.7.0

Ensuite :

kubectl apply -f dashboard-deployment-backup.yaml
kubectl wait --for=condition=available deployment --all -n kubernetes-dashboard --timeout=300s

Échec courant : RBAC cassé

Symptôme : le tableau de bord se charge mais affiche Forbidden ou aucune ressource.

Vérifiez le compte de service et les liaisons de rôle :

kubectl auth can-i list pods --as=system:serviceaccount:kubernetes-dashboard:kubernetes-dashboard -n default

Si la réponse est no, restaurez la ClusterRoleBinding :

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard

Appliquez et retestez.

Échec courant : dérive de configuration

Symptôme : le tableau de bord fonctionne mais les réglages personnalisés (comme les limites de ressources ou les annotations) ont disparu.

Gardez une sauvegarde complète de tout le YAML dans un contrôle de version. Après la restauration, comparez avec l'original :

diff <(kubectl get deployment -n kubernetes-dashboard -o yaml) dashboard-deployment-backup.yaml

Si des différences existent au-delà des métadonnées attendues (par exemple, resourceVersion), investigatez et réconciliez.

Question rapide 2 sur 2

Comment l'interface du Dashboard est-elle généralement déployée selon la référence ?

La référence indique que Kubernetes Dashboard ne prend actuellement en charge que l'installation basée sur Helm (passage 5).

Pièges courants

Voici des erreurs fréquentes dans la sauvegarde/restauration du tableau de bord et comment les éviter.

Piège 1 : sauvegarder uniquement le déploiement, pas l'état complet

Pourquoi cela arrive : on suppose que le tableau de bord n'est qu'un pod. Mais il a besoin de secrets, de configmaps, de services et de RBAC.

Comment l'éviter : utilisez une commande de sauvegarde complète :

kubectl get all,secret,configmap,serviceaccount,role,rolebinding,clusterrole,clusterrolebinding -n kubernetes-dashboard -o yaml > dashboard-full-backup.yaml

Cela capture tout dans le namespace. Pour les ressources au niveau du cluster (ClusterRole, ClusterRoleBinding), utilisez :

kubectl get clusterrole,clusterrolebinding -o yaml | grep -A 20 kubernetes-dashboard > dashboard-cluster-backup.yaml

Stockez les deux fichiers.

Piège 2 : ne pas tester le processus de restauration

Pourquoi cela arrive : les sauvegardes sont faites mais jamais restaurées jusqu'à un incident, et elles échouent alors en raison de composants manquants ou d'incompatibilités de version.

Comment l'éviter : testez régulièrement la restauration dans un cluster de staging. Automatisez avec un script qui déploie la sauvegarde et exécute des commandes de vérification.

Piège 3 : utiliser un jeton statique ou un mot de passe dans le fichier de sauvegarde

Pourquoi cela arrive : les secrets sont exportés dans la sauvegarde et peuvent être stockés en texte clair.

Comment l'éviter : chiffrez les fichiers de sauvegarde ou stockez-les dans un coffre sécurisé. Évitez de committer des secrets bruts dans Git. Si vous devez utiliser Git, utilisez un outil comme Sealed Secrets ou SOPS.

Piège 4 : ne pas épingler les versions d'image

Pourquoi cela arrive : les manifestes peuvent utiliser l'étiquette latest, qui change au fil du temps.

Comment l'éviter : spécifiez toujours une version précise dans le YAML de sauvegarde. Par exemple, kubernetesui/dashboard:v2.7.0.

Piège 5 : ignorer RBAC pendant la restauration

Pourquoi cela arrive : le tableau de bord peut démarrer mais les utilisateurs ne peuvent pas se connecter en raison de permissions manquantes.

Comment l'éviter : incluez les ressources RBAC dans la sauvegarde et vérifiez avec kubectl auth can-i après la restauration.

Liste de contrôle des opérations

Utilisez cette liste de contrôle pour chaque opération de sauvegarde ou de restauration.

Liste de contrôle de sauvegarde

  • [ ] Confirmer l'accès au cluster : kubectl cluster-info
  • [ ] Enregistrer la version actuelle du tableau de bord : kubectl get deployment -n kubernetes-dashboard -o jsonpath='{.items[].spec.template.spec.containers[].image}'
  • [ ] Exporter toutes les ressources du namespace : kubectl get all,secret,configmap,serviceaccount -n kubernetes-dashboard -o yaml > dashboard-ns-backup-$(date +%Y%m%d).yaml
  • [ ] Exporter le RBAC au niveau du cluster : kubectl get clusterrole,clusterrolebinding -o yaml | grep -B 2 -A 10 kubernetes-dashboard > dashboard-rbac-backup-$(date +%Y%m%d).yaml
  • [ ] Stocker les fichiers de sauvegarde dans un emplacement sécurisé (par exemple, bucket S3 chiffré ou Git avec SOPS)
  • [ ] Enregistrer les versions de kubectl et de Kubernetes pour référence ultérieure
  • [ ] Responsable : l'ingénieur DevOps (par exemple, Priya Shah) examine la sauvegarde trimestriellement

Liste de contrôle de restauration

  • [ ] Vérifier que la version du cluster cible correspond à la source de sauvegarde (ou noter les différences)
  • [ ] Créer le namespace s'il manque : kubectl create namespace kubernetes-dashboard
  • [ ] Appliquer les ressources du namespace : kubectl apply -f dashboard-ns-backup.yaml
  • [ ] Appliquer RBAC : kubectl apply -f dashboard-rbac-backup.yaml
  • [ ] Vérifier l'état des pods : kubectl get pods -n kubernetes-dashboard
  • [ ] Vérifier le service : kubectl get svc -n kubernetes-dashboard
  • [ ] Tester l'accès : kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard-kong-proxy 8443:443 et se connecter avec un jeton
  • [ ] Exécuter les diagnostics : kubectl get pods -n kubernetes-dashboard et kubectl logs -n kubernetes-dashboard <dashboard-pod-name> --tail=50
  • [ ] Documenter le résultat de la restauration et les différences dans un runbook
  • [ ] Responsable : le responsable de plateforme (par exemple, Alex Chen) approuve les tests de restauration

Post-vérification

  • [ ] Confirmer que tous les pods sont Running et Ready
  • [ ] Confirmer l'absence d'états CrashLoopBackOff ou Error
  • [ ] Confirmer que l'authentification par jeton fonctionne pour un utilisateur de test
  • [ ] Confirmer que l'interface du tableau de bord s'affiche et peut lister les pods dans le namespace par défaut
  • [ ] Planifier le prochain test de sauvegarde : mensuellement, avec un rappel dans le calendrier de l'équipe

Conclusion

Sauvegarder et restaurer le tableau de bord Kubernetes Web UI est une compétence opérationnelle critique. En suivant les procédures décrites ici, vous pouvez vous assurer que la configuration de votre tableau de bord est sûre, récupérable et vérifiable. Commencez par un inventaire complet, exportez toutes les ressources pertinentes, testez le processus de restauration et formez votre équipe aux étapes de récupération.

N'oubliez pas de versionner vos sauvegardes, de sécuriser vos secrets et de valider régulièrement que la restauration fonctionne. Avec ces pratiques, vous minimiserez les temps d'arrêt et maintiendrez une interface administrative fiable pour votre cluster Kubernetes.

Recherches connexes

Score de qualité de l’article

Utilité pour le lecteur 100%
  • check_circle Guide prêt à lire
  • check_circle Exemples pratiques inclus
  • check_circle URL d’article optimisée pour le SEO