arrow_back

Cómo administrar implementaciones con Kubernetes Engine

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Cómo administrar implementaciones con Kubernetes Engine

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermedio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

GSP053

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

Normalmente, las prácticas de DevOps usarán varias implementaciones para administrar situaciones de implementación de aplicaciones como “Implementación continua”, “Implementaciones azul-verde”, “Implementaciones de versiones canary” y muchas más. En este lab, aprenderás a escalar y administrar contenedores para que puedas abordar estas situaciones comunes en las que se utilizan varias implementaciones heterogéneas.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Usar la herramienta kubectl
  • Crear archivos de implementación yaml
  • Iniciar, actualizar y escalar implementaciones
  • Actualizar implementaciones y aprender sobre los estilos de implementación

Requisitos previos

Para maximizar tu aprendizaje, sigue estas recomendaciones para este lab:

  • Haber realizado estos labs de Google Cloud Skills Boost:
  • Tener las habilidades de administración de sistemas Linux.
  • Comprender la teoría de DevOps y los conceptos de implementación continua.

Introducción a las implementaciones

Las implementaciones heterogéneas normalmente implican conectar dos o más entornos o regiones de infraestructura distintos para abordar una necesidad operativa o técnica específica. Las implementaciones heterogéneas se llaman "híbridas", "de múltiples nubes" o "pública-privada", según los datos específicos de la implementación.

A los efectos de este lab, las implementaciones heterogéneas incluyen aquellas que abarcan regiones dentro de un único entorno de nube, múltiples entornos de nube pública (múltiples nubes) o una combinación de entornos de nube locales y públicas (híbridas o pública-privada).

Pueden surgir varios desafíos comerciales y técnicos en las implementaciones que se limitan a un único entorno o región:

  • Recursos agotados: En cualquier entorno único, particularmente en los entornos locales, es posible que no tengas los recursos de procesamiento, las redes y el almacenamiento para satisfacer tus necesidades de producción.
  • Alcance geográfico limitado: Las implementaciones en un entorno único requieren personas que estén geográficamente distantes entre sí para acceder a una implementación. El tráfico puede viajar por todo el mundo a una ubicación central.
  • Disponibilidad limitada: Los patrones del tráfico a escala de la Web desafían a las aplicaciones a permanecer tolerantes a errores y resilientes.
  • Dependencia de un solo proveedor: Las abstracciones de infraestructura y plataforma a nivel del proveedor pueden evitar la portabilidad de aplicaciones.
  • Recursos inflexibles: Tus recursos pueden estar limitados a un conjunto particular de soluciones de procesamiento, almacenamiento o herramientas de redes.

Las implementaciones heterogéneas pueden ayudar a abordar estos desafíos, pero su arquitectura debe usar procesos y procedimientos programáticos y determinísticos. Los procedimientos de implementación por única vez o ad hoc pueden generar que las implementaciones o procesos sean intolerantes a errores y frágiles. Los procesos ad hoc pueden perder datos o disminuir el tráfico. Los buenos procesos de implementación deben ser repetibles y utilizar enfoques comprobados para administrar el aprovisionamiento, la configuración y el mantenimiento.

Estas son tres situaciones comunes para la implementación heterogénea:

  • Implementaciones en múltiples nubes
  • Fronting de datos locales
  • Procesos de integración continua y entrega continua (CI/CD)

Los siguientes ejercicios repasan algunos casos de uso comunes para implementaciones heterogéneas, junto con enfoques de buen diseño que utilizan Kubernetes y otros recursos de infraestructura para lograrlos.

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón para abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haz clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar. Ícono del menú de navegación y campo de búsqueda

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

  2. Haz clic para avanzar por las siguientes ventanas:

    • Continúa en la ventana de información de Cloud Shell.
    • Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

Resultado:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.

Configura la zona

Configura tu zona de trabajo de Google Cloud ejecutando el siguiente comando (sustituye la zona local por ):

gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}

Obtén un código de muestra para este lab

  1. Obtén el código de muestra para crear y ejecutar implementaciones y contenedores desde el bucket del lab:
gcloud storage cp -r gs://spls/gsp053/kubernetes . cd kubernetes
  1. Crea un clúster con 3 nodos (te llevará unos pocos minutos completarlo):
gcloud container clusters create bootcamp \ --machine-type e2-small \ --num-nodes 3 \ --scopes "https://www.googleapis.com/auth/projecthosting,storage-rw"

Tarea 1: Obtén más información sobre el objeto Deployment

Para comenzar, consulta el objeto Deployment.

  1. El comando explain en kubectl nos puede dar información sobre el objeto Deployment:
kubectl explain deployment
  1. También puedes ver todos los campos que usan la opción --recursive:
kubectl explain deployment --recursive
  1. Puedes utilizar el comando explain a medida que avanzas en el lab para que puedas comprender la estructura de un objeto Deployment y entender qué hace cada campo:
kubectl explain deployment.metadata.name

Tarea 2: Crea una implementación

  1. Crea la implementación fortune-app. Examina el archivo de configuración de la implementación:
cat deployments/fortune-app-blue.yaml

Resultado:

# orchestrate-with-kubernetes/kubernetes/deployments/fortune-app-blue.yaml apiVersion: apps/v1 kind: Deployment metadata: name: fortune-app-blue spec: replicas: 3 selector: matchLabels: app: fortune-app template: metadata: labels: app: fortune-app track: stable version: "1.0.0" spec: containers: - name: fortune-app # The new, centralized image path image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:1.0.0" ports: - name: http containerPort: 8080 ...

Observa cómo Deployment crea tres réplicas y usa la versión 1.0.0 del contenedor fortune-service.

  1. Crea el objeto de tu implementación con kubectl create:
kubectl create -f deployments/fortune-app-blue.yaml
  1. Luego de crear la implementación, verifica que se haya hecho correctamente:
kubectl get deployments
  1. Una vez creada la implementación, Kubernetes creará un ReplicaSet para ella. Puedes verificar que se creó un ReplicaSet para la implementación con el siguiente comando:
kubectl get replicasets

Deberías ver un ReplicaSet con un nombre como fortune-app-blue-xxxxxxx.

  1. Observa los Pods que se crearon como parte de la implementación.
kubectl get pods
  1. Ahora, crea un servicio para exponer la implementación de fortune-app de forma externa.
kubectl create -f services/fortune-app.yaml
  1. Usa la IP externa de fortune-app y aplica el comando curl al extremo /version para interactuar con él:
kubectl get services frontend Nota: Pueden pasar unos segundos hasta que el campo External-IP se complete para el servicio. Esto es normal. Solo vuelve a ejecutar el comando mencionado cada algunos segundos hasta que se complete el campo. curl http://<EXTERNAL-IP>/version

Deberías obtener una respuesta de JSON que indique {"version":"1.0.0"}.

  1. También puedes usar la función de plantillas de salida de kubectl para usar curl como una sola línea:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Prueba la tarea completada

Haz clic en Revisar mi progreso a continuación para revisar tu progreso en el lab. Si creaste correctamente un clúster de Kubernetes y la implementación y el servicio fortune-app, verás una puntuación de evaluación.

Crear un clúster e implementaciones de Kubernetes (fortune-app)

Escala una implementación

Ahora que creaste una implementación, puedes escalarla. Para realizar esta acción, actualiza el campo spec.replicas.

  1. El campo replicas se puede actualizar más fácilmente usando el comando kubectl scale:
kubectl scale deployment fortune-app-blue --replicas=5 Nota: El inicio de todos los Pods nuevos puede tardar un minuto aproximadamente.
  1. Verifica que ahora haya 5 Pods fortune-app-blue en ejecución:
kubectl get pods | grep fortune-app-blue | wc -l
  1. Ahora, reduce la escala de la aplicación:
kubectl scale deployment fortune-app-blue --replicas=3
  1. Nuevamente, verifica que tengas el número correcto de Pods:
kubectl get pods | grep fortune-app-blue | wc -l

Ahora sabes sobre las implementaciones en Kubernetes y sobre cómo administrar y escalar un grupo de Pods.

Tarea 3: Actualización progresiva

Las implementaciones admiten la actualización de imágenes a una nueva versión por medio de un mecanismo de actualización progresiva.

Activa una actualización progresiva

  1. Para activar una actualización progresiva, simplemente puedes aplicar la configuración de la implementación “green”. Kubernetes es lo suficientemente inteligente como para ver la implementación existente (fortune-app-blue) y "transferirá" los cambios del nuevo archivo a ella.
kubectl edit deployment fortune-app-blue
  1. En el editor, busca la línea image y cambia la etiqueta de versión de 1.0.0 a 2.0.0. Para editar el archivo, presiona i en el teclado e ingresa al “modo de inserción”.
  • Primero, cambia la etiqueta de imagen:

    • Busca esta línea: image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:1.0.0"
    • Cámbiala por lo siguiente: image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:2.0.0"
  • Luego, actualiza la variable de entorno:

    • Busca la sección env y la variable APP_VERSION.
    • Cambia value: "1.0.0" por value: "2.0.0"
  1. Guarda y cierra el editor. Para ello, presiona Esc, escribe :wq y presiona Intro. Esto activará la actualización progresiva en la implementación correcta y registrará su historial de forma adecuada. Esto activará la actualización progresiva en la implementación correcta y registrará su historial de forma adecuada.

  2. Mira el nuevo ReplicaSet que crea Kubernetes:

kubectl get replicaset
  1. También puedes ver una nueva entrada en el historial de actualizaciones progresivas:
kubectl rollout history deployment/fortune-app-blue

Pausa una actualización progresiva

  1. Ejecuta el siguiente comando para pausar la actualización:
kubectl rollout pause deployment/fortune-app-blue
  1. Verifica el estado actual de la actualización progresiva:
kubectl rollout status deployment/fortune-app-blue Nota: El comando de estado podría informar de inmediato "deployment "fortune-app-blue" successfully rolled out". Esto es lo esperado y significa que el comando de pausa se ejecutó correctamente, no significa que la actualización de la versión esté completa.
  1. Verifica la versión de cada Pod. Verás una combinación de Pods 1.0.0 y 2.0.0, lo que confirma que la actualización se pausó a mitad de camino.
for p in $(kubectl get pods -l app=fortune-app -o=jsonpath='{.items[*].metadata.name}'); do echo $p && curl -s http://$(kubectl get pod $p -o=jsonpath='{.status.podIP}')/version; echo; done
  1. Presiona Ctrl+C para salir del bucle.

Reanuda una actualización progresiva

  1. Continúa con la actualización progresiva con el comando resume:
kubectl rollout resume deployment/fortune-app-blue
  1. Luego de completar la actualización progresiva, deberías ver la siguiente información cuando ejecutes el comando status:
kubectl rollout status deployment/fortune-app-blue

Revierte una actualización

Supongamos que se detectó un error en tu nueva versión.

  1. Usa el comando rollout para revertirla a la versión anterior:
kubectl rollout undo deployment/fortune-app-blue Nota: La reversión puede tardar unos momentos en completarse.
  1. Verifica que todos los Pods se hayan revertido a la versión 1.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

¡Genial! Aprendiste a realizar una actualización progresiva para implementaciones de Kubernetes.

Tarea 4: Implementaciones de versiones canary

Cuando desees probar una nueva implementación en producción con un subconjunto de tus usuarios, usa una implementación de versiones canary.

Crea una implementación de versiones canary

  1. Primero, crea una nueva implementación de versiones canary para la nueva versión con el archivo fortune-app-canary.yaml:
cat deployments/fortune-app-canary.yaml
  1. Ahora, crea la implementación de versiones canary:
kubectl create -f deployments/fortune-app-canary.yaml
  1. Después de crear la implementación de versiones canary, deberías tener dos implementaciones. Verifícalo con este comando:
kubectl get deployments

El servicio fortune-app tiene un selector para app: fortune-app, que coincidirá con los Pods en ambas implementaciones, fortune-app-blue (producción) y fortune-app-canary.

Verifica la implementación de versiones canary

  1. Puedes verificar la versión que se entrega haciendo solicitudes al servicio.
for i in {1..10}; do curl -s http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version; echo; done
  1. Ejecuta este comando varias veces; deberías ver que la mayoría de las solicitudes se entregan con la versión 1.0.0 y un pequeño subconjunto, con la versión 2.0.0.

Prueba la tarea completada

Haz clic en Revisar mi progreso a continuación para revisar tu progreso en el lab. Si creaste correctamente una implementación de versiones canary, verás una puntuación de evaluación.

Implementación de versiones canary

Tarea 5: Implementaciones azul-verde

Para las implementaciones azul-verde, crearás dos implementaciones separadas y cambiarás el tráfico entre ellas actualizando el selector de servicios.

El servicio

  1. Primero, actualiza el servicio para que se dirija solo a la versión “blue” (1.0.0).
kubectl apply -f services/fortune-app-blue-service.yaml

Cómo hacer una actualización mediante una implementación azul-verde

  1. Ahora, crea la nueva implementación “green” para la versión 2.0.0.
kubectl create -f deployments/fortune-app-green.yaml
  1. Una vez que se haya iniciado la implementación verde, verifica que la versión actual que se entrega continúe siendo 1.0.0.
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version
  1. A continuación, actualiza el servicio para que se dirija a la nueva versión “green”:
kubectl apply -f services/fortune-app-green-service.yaml
  1. Una vez que se actualiza el servicio, la implementación “green” se utilizará de inmediato. Ahora, puedes verificar que siempre se entregue la versión 2.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Reversión azul-verde

  1. Para revertir el cambio, vuelve a aplicar el manifiesto del servicio para la implementación “blue”:
kubectl apply -f services/fortune-app-blue-service.yaml
  1. Cuando hayas actualizado el servicio, la reversión habrá sido correcta. Verifica que ahora se use la versión 1.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

¡Lo lograste! Aprendiste acerca de las implementaciones azul-verde y también cómo implementar actualizaciones en las aplicaciones en las que es necesario cambiar la versión de una sola vez.

Implementación azul-verde

¡Felicitaciones!

Tuviste la oportunidad de trabajar más con la herramienta de línea de comandos kubectl y muchos estilos de implementaciones configurados en archivos YAML para iniciar, actualizar y escalar tus implementaciones.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 18 de agosto de 2025

Prueba más reciente del lab: 18 de agosto de 2025

Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.