Desplegar y actualizar el microservicio de NGINX

KubernetesKubernetesBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este desafío, demostrarás tus habilidades en Kubernetes como un ingeniero junior de DevOps en una startup tecnológica. Actualizarás una aplicación web que utiliza NGINX como microservicio, asegurando una interrupción mínima del servicio. Las tareas implican actualizar un Despliegue (Deployment) de Kubernetes para utilizar una versión más reciente de la imagen y verificar que la actualización gradual (rolling update) se haya realizado con éxito.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedDeploymentGroup(["Advanced Deployment"]) kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/rollout("Rollout") subgraph Lab Skills kubernetes/create -.-> lab-434821{{"Desplegar y actualizar el microservicio de NGINX"}} kubernetes/apply -.-> lab-434821{{"Desplegar y actualizar el microservicio de NGINX"}} kubernetes/rollout -.-> lab-434821{{"Desplegar y actualizar el microservicio de NGINX"}} end

Actualizar el Despliegue (Deployment) de NGINX

Como ingeniero junior de DevOps, tu tarea es actualizar el despliegue existente para garantizar una interrupción mínima del servicio.

Requisitos previos

Antes de comenzar, asegúrate de tener lo siguiente:

minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml

Verifica el estado del despliegue:

kubectl get deployments

Tareas

  1. Actualiza el despliegue web-app para utilizar la imagen nginx:1.24.0-alpine.
  2. Verifica que la actualización se haya realizado con éxito mediante actualizaciones graduales (rolling updates), asegurando un tiempo de inactividad cero.

Requisitos

  • Utiliza comandos kubectl para realizar la actualización.
  • Confirma que el despliegue continúe funcionando sin tiempo de inactividad durante la actualización.
  • Utiliza kubectl rollout status para monitorear el progreso de la actualización.
  • Verifica las imágenes de los pods para confirmar la versión actualizada.

Pistas

  • Utiliza kubectl edit deployment web-app o kubectl set image para actualizar la imagen.
  • Monitorea el estado de la actualización gradual (rollout) utilizando kubectl rollout status.
  • Valida los pods en ejecución y sus imágenes de contenedores utilizando kubectl get pods -o jsonpath.
✨ Revisar Solución y Practicar

Resumen

En este desafío, demostraste tus habilidades en Kubernetes al actualizar el despliegue (deployment) de una aplicación web de NGINX a una versión más reciente de la imagen. Aseguraste un tiempo de inactividad cero durante el proceso y verificaste el éxito de la actualización gradual (rolling update). Este ejercicio destaca la importancia de mantener una alta disponibilidad mientras se realizan actualizaciones en un entorno de Kubernetes.