Aller au contenu

GUIDE TECHNIQUE · KUBERNETES

Mettre à jour puis restaurer un Deployment Kubernetes

Démontrer une montée de version Kubernetes puis un rollback avec un changement d'image reproductible, un historique de révisions et la vérification de l'image finalement exécutée.

Niveau Avancé4 min de lecture— vuesKubernetes

L’ESSENTIEL EN BREF

Comment procéder ?

Démontrer une montée de version Kubernetes puis un rollback avec un changement d'image reproductible, un historique de révisions et la vérification de l'image finalement exécutée.

Résultat à atteindre : Image et état initiaux relevés.

Avant de commencer : Cluster de test autorisé et contexte kubectl vérifié.

01 · CADRAGE

Ce que vous allez mettre en place

Démontrer une montée de version Kubernetes puis un rollback avec un changement d'image reproductible, un historique de révisions et la vérification de l'image finalement exécutée.

Pour qui : Administrateurs Kubernetes, équipes DevOps et SRE

Environnement et versions

Kubernetes stable avec kubectl compatible ; les images de laboratoire sont illustratives et doivent être validées avant usage réel.

Vérifiez la compatibilité avec votre environnement réel. Les versions ne sont jamais présumées identiques d’un tenant à l’autre.

02 · AVANT DE COMMENCER

Prérequis et points de contrôle

  • Cluster de test autorisé et contexte kubectl vérifié.
  • Droits de créer/supprimer un namespace de recette ; aucun workload client dans ce namespace.
  • Capacité à lire Pods, événements et logs après déploiement.

03 · VUE D’ENSEMBLE

Comprendre l’architecture et les flux

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Contexte kubectl
02Manifest ou commande
03API Kubernetes
04Contrôleur
05Workload vérifié
Le contrôle doit couvrir la ressource Kubernetes et son comportement réel ; un manifeste accepté ne prouve pas seul la disponibilité.

04 · TUTORIEL

Procédure complète, étape par étape

Chaque étape explique l’action, sa raison, le contrôle attendu et les erreurs habituelles. Adaptez les exemples aux paramètres de votre propre environnement.

01

ÉTAPE 1 / 5

Préparer un Deployment isolé

Un rollback est crédible si on connaît le contexte et la version de départ.

  1. Créer un namespace isolé.
  2. Vérifier les permissions.
  3. Documenter l'image de base avant mutation.
Exemple techniqueÀ adapter à votre environnement
kubectl config current-context
kubectl create namespace adn-rollout-lab
Ce qui se passe à cette étape
1kubectl
2Préparer un Deployment isolé
3Résultat du cluster

À vérifier : Namespace de test créé.

Point de vigilance ADN : Ne pas lancer rollout undo sans connaître les effets sur la version précédente.

02

ÉTAPE 2 / 5

Créer la révision initiale

Une image de départ stable permet de comparer les révisions.

  1. Créer un Deployment nginx avec une version choisie après validation du registre.
  2. Attendre l'état disponible.
  3. Relever la valeur image sur le Deployment.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-rollout-lab create deployment web --image=nginx:1.26-alpine
kubectl -n adn-rollout-lab rollout status deployment/web
kubectl -n adn-rollout-lab get deployment web -o jsonpath='{.spec.template.spec.containers[0].image}'
Ce qui se passe à cette étape
1kubectl
2Créer la révision initiale
3Résultat du cluster

À vérifier : Le Deployment est Ready et l'image initiale est affichée.

Point de vigilance ADN : Les tags utilisés sont des exemples : vérifier leur disponibilité et idéalement épingler un digest en production.

03

ÉTAPE 3 / 5

Déclencher une mise à jour contrôlée

Modifier l'image du template crée une nouvelle révision du Deployment.

  1. Changer l'image vers une seconde version validée.
  2. Attendre le rollout.
  3. Contrôler que les Pods sont disponibles.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-rollout-lab set image deployment/web nginx=nginx:1.27-alpine
kubectl -n adn-rollout-lab rollout status deployment/web
Ce qui se passe à cette étape
1kubectl
2Déclencher une mise à jour contrôlée
3Résultat du cluster

À vérifier : Une deuxième révision a été créée si le tag représente un changement du template.

Point de vigilance ADN : Un Pod qui ne peut pas tirer une image rend le rollout indisponible ; inspecter les événements et ne pas attendre indéfiniment.

04

ÉTAPE 4 / 5

Contrôler rollout et historique

Une commande réussie de mise à jour n'est pas une preuve de révision correcte.

  1. Lire l'historique des révisions.
  2. Vérifier l'image du template courant.
  3. Consigner le numéro de révision retourné.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-rollout-lab rollout history deployment/web
kubectl -n adn-rollout-lab get deployment web -o jsonpath='{.spec.template.spec.containers[0].image}'
Ce qui se passe à cette étape
1kubectl
2Contrôler rollout et historique
3Résultat du cluster

À vérifier : L'historique présente au moins deux révisions et le template indique l'image mise à jour.

Point de vigilance ADN : Les révisions sans annotations de changement ne donnent pas nécessairement une explication lisible dans CHANGE-CAUSE.

05

ÉTAPE 5 / 5

Revenir à la révision précédente puis nettoyer

Le rollback doit être validé sur le Deployment et pas seulement confirmé par la CLI.

  1. Revenir à la révision précédente.
  2. Attendre la disponibilité puis relire l'image effective.
  3. Nettoyer après constat et seulement sur la recette.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-rollout-lab rollout undo deployment/web
kubectl -n adn-rollout-lab rollout status deployment/web
kubectl -n adn-rollout-lab get deployment web -o jsonpath='{.spec.template.spec.containers[0].image}'
kubectl delete namespace adn-rollout-lab
Ce qui se passe à cette étape
1kubectl
2Revenir à la révision précédente puis nettoyer
3Résultat du cluster

À vérifier : L'image affichée redevient nginx:1.26-alpine, puis le namespace est supprimé.

Point de vigilance ADN : Le rollback de Deployment ne rétablit pas automatiquement données, ConfigMaps ou schémas de base.

SOURCES ET FIABILITÉ

Statut de validation du guide

Rédaction : ADN Consulting. Statut : procédure documentée, exécution en laboratoire non attestée.

Les exemples et versions indiqués doivent être vérifiés sur un environnement autorisé. Aucune validation individuelle par un consultant n’est revendiquée sans preuve.

Documentation officielle de référence

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

Image et état initiaux relevés.

02

Nouvelle image réellement appliquée et révision observée.

03

rollout undo restaure l'ancienne image.

04

Limites du rollback applicatif et des données signalées.

06 · DIAGNOSTIC

Problèmes fréquents et résolution

ImagePullBackOff

Cause probable : Image absente, accès registre ou tag incorrect

Que faire : Lire kubectl describe pod et les événements avant changement d'image.

CrashLoopBackOff

Cause probable : Conteneur instable ou configuration invalide

Que faire : Lire les logs --previous et livenessProbe ; corriger à la source.

Rollout bloqué

Cause probable : Pods non prêts ou capacité du cluster insuffisante

Que faire : Examiner rollout status, describe et quota du namespace.

Le conseil de l’expert ADN

Avant de généraliser cette configuration, validez-la sur un périmètre représentatif, documentez les critères de réussite et conservez une procédure de retour arrière. Une automatisation fiable se juge sur l’état final observé, les permissions maîtrisées et un retour arrière testé.

07 · QUESTIONS PRATIQUES

Questions fréquentes

Puis-je reprendre ces commandes en production ?

Non sans adaptation, revue de sécurité, approbation de changement et tests sur un environnement identique.

Pourquoi ne suffit-il pas d'appliquer le manifeste ?

Le contrôleur peut accepter l'objet alors que les Pods ne sont pas prêts ou que le service ne répond pas.

AUTRES TECHNOLOGIES

Guides complémentaires

Ce tutoriel s’inscrit dans une chaîne technique plus large. Retrouvez les méthodes associées aux technologies voisines.

Tous les guides Kubernetes

Pour aller plus loin