Introduction
Dans ce défi, vous allez démontrer vos compétences Kubernetes en tant qu'ingénieur DevOps junior au sein d'une startup technologique. Votre mission consiste à mettre à jour une application web utilisant NGINX comme microservice, tout en garantissant une interruption de service minimale. Les tâches incluent la mise à jour d'un déploiement Kubernetes vers une version d'image plus récente et la vérification du bon déroulement de la mise à jour progressive (rolling update).
Mettre à jour le déploiement NGINX
En tant qu'ingénieur DevOps junior, votre tâche est de mettre à jour le déploiement existant afin d'assurer une continuité de service totale.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml
Vérifiez l'état du déploiement :
kubectl get deployments
Tâches
- Mettez à jour le déploiement
web-apppour utiliser l'imagenginx:1.24.0-alpine. - Vérifiez que la mise à jour a été effectuée avec succès via une stratégie de mise à jour progressive, garantissant l'absence d'interruption de service.
Exigences
- Utilisez les commandes
kubectlpour effectuer la mise à jour. - Confirmez que le déploiement reste fonctionnel sans temps d'arrêt pendant l'opération.
- Utilisez
kubectl rollout statuspour surveiller la progression de la mise à jour. - Vérifiez les images des pods pour confirmer la nouvelle version.
Conseils
- Utilisez
kubectl edit deployment web-appoukubectl set imagepour modifier l'image. - Surveillez l'état du déploiement avec
kubectl rollout status. - Validez les pods en cours d'exécution et leurs images de conteneur avec
kubectl get pods -o jsonpath.
Résumé
Au cours de ce défi, vous avez démontré votre maîtrise de Kubernetes en mettant à jour le déploiement d'une application web NGINX vers une version d'image plus récente. Vous avez assuré une disponibilité totale pendant le processus et validé le succès de la mise à jour progressive. Cet exercice souligne l'importance du maintien de la haute disponibilité lors des opérations de maintenance dans un environnement Kubernetes.


