Introducción
En este desafío, demostrará sus habilidades en Kubernetes como ingeniero DevOps junior en una startup tecnológica. Su misión consiste en actualizar una aplicación web que utiliza NGINX como microservicio, garantizando la mínima interrupción del servicio. Las tareas incluyen la actualización de un Deployment de Kubernetes para utilizar una versión de imagen más reciente y la verificación de que la actualización progresiva se haya completado correctamente.
Actualizar el Deployment de NGINX
Como ingeniero DevOps junior, su tarea es actualizar el despliegue existente para asegurar que el servicio no sufra interrupciones.
Requisitos previos
Antes de comenzar, asegúrese de contar con lo siguiente:
minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml
Verifique el estado del despliegue:
kubectl get deployments
Tareas
- Actualice el despliegue
web-apppara que utilice la imagennginx:1.24.0-alpine. - Verifique que la actualización se haya realizado correctamente mediante una actualización progresiva (rolling update), garantizando que no haya tiempo de inactividad.
Requerimientos
- Utilice comandos de
kubectlpara realizar la actualización. - Confirme que el despliegue continúe funcionando sin interrupciones durante el proceso de actualización.
- Emplee
kubectl rollout statuspara supervisar el progreso de la actualización. - Revise las imágenes de los pods para verificar la versión actualizada.
Pistas
- Puede usar
kubectl edit deployment web-appokubectl set imagepara actualizar la imagen. - Supervise el estado del despliegue con
kubectl rollout status. - Valide los pods en ejecución y sus imágenes de contenedor mediante
kubectl get pods -o jsonpath.
Resumen
En este desafío, ha demostrado sus competencias en Kubernetes al actualizar el despliegue de una aplicación web NGINX a una versión de imagen más reciente. Ha garantizado la disponibilidad total del servicio durante el proceso y ha verificado el éxito de la actualización progresiva. Este ejercicio resalta la importancia de mantener la alta disponibilidad mientras se realizan actualizaciones en entornos productivos de Kubernetes.


