Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.
Descripción general
En este lab, implementarás la aplicación Quiz en Kubernetes Engine (antes conocida como Container Engine) y aprovecharás los recursos de Google Cloud, como Cloud Build y Container Registry, además de los recursos de Kubernetes, como Deployment, Pod y Service.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
Crear Dockerfiles para empaquetar el código frontend y backend de la aplicación Quiz para su implementación
Aprovechar Cloud Build para producir imágenes de Docker
Aprovisionar un clúster de Kubernetes Engine para alojar la aplicación Quiz
Usar Deployments de Kubernetes para aprovisionar Pods replicados en Kubernetes Engine
Aprovechar un servicio de Kubernetes para aprovisionar un balanceador de cargas para el frontend de Quiz
Configuración y requisitos
En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
Accede a Qwiklabs desde una ventana de incógnito.
Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
Si usa otras credenciales, se generarán errores o incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación.
Activa Google Cloud Shell
Google 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.
Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.
Haz clic en Continuar.
El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.
Puedes solicitar el nombre de la cuenta activa con este comando:
En esta sección, accederás a Cloud Shell, clonarás el repositorio de Git que contiene la aplicación Quiz, configurarás las variables de entorno y ejecutarás la aplicación.
Clona el código fuente en Cloud Shell
En Cloud Shell, clona el repositorio para la clase:
Configura la aplicación y el código de revisión del caso de éxito
Cambia el directorio de trabajo:
cd ~/containerengine/start
Para reemplazar la región predeterminada de un archivo por la región asignada por un lab, ejecuta los siguientes comandos:
export APP_REGION={{{project_0.startup_script.app_gcp_region | APP_REGION}}}
export REGION={{{project_0.default_region | REGION}}}
sed -i 's/us-central1/'"$REGION"'/g' prepare_environment.sh
sed -i 's/us-central/'"$APP_REGION"'/g' prepare_environment.sh
Configura la aplicación de Quiz:
. prepare_environment.sh
Nota: Este archivo de secuencia de comandos realiza lo siguiente:
Crea una aplicación de Google App Engine.
Exporta las variables de entorno GCLOUD_PROJECT y GCLOUD_BUCKET.
Ejecuta npm install.
Crea entidades en Google Cloud Datastore.
Crea un tema de Google Cloud Pub/Sub.
Crea una instancia, una base de datos y una tabla de Cloud Spanner.
Imprime el ID del proyecto de Google Cloud.
En Cloud Shell, haz clic en Abrir editor.
Navega a containerengine/start.
Nota: La estructura de carpetas de la aplicación de Quiz cambia para reflejar cómo se implementa en Kubernetes Engine.
La aplicación web está en una carpeta llamada frontend.
El código de la aplicación de la instancia de trabajador que se subscribe a Cloud Pub/Sub y procesa los mensajes se encuentra en una carpeta llamada backend.
Hay archivos de configuración de Docker (un Dockerfile en las carpetas frontend y backend) y de Kubernetes Engine (*.yaml).
Haz clic en Revisar mi progreso para verificar el objetivo.
Configurar la aplicación del caso de éxito
Tarea 2: crear un clúster de Kubernetes Engine
En esta sección, crearás un clúster de Kubernetes Engine para alojar la aplicación de Quiz.
Crear un clúster de Kubernetes Engine
En la consola de Cloud, en el Menú de navegación, haz clic en APIs y servicios.
Desplázate hacia abajo en la lista de APIs habilitadas y confirma que estén habilitadas las siguientes:
API de Kubernetes Engine
API de Google Container Registry
Si falta alguna, haz clic en Habilitar las APIs y los servicios en la parte superior. Busca las APIs anteriores por nombre y habilita cada una para tu proyecto actual. Anotaste el nombre de tu proyecto de Google Cloud arriba.
En la consola de Cloud, en el menú de navegación, haz clic en Kubernetes Engine > Clústeres.
Haz clic en Crear.
Haz clic en Comencemos y, luego, en Cambiar a clúster estándar.
Usa la siguiente tabla para configurar el clúster:
Propiedad
Valor
Nombre
quiz-cluster
Tipo de ubicación
Zonal
Zona
En el área Grupos de nodos, haz clic en default-pool
En el área Seguridad > Permisos de acceso, selecciona Permitir el acceso total a todas las APIs de Cloud
Haz clic en Crear.
Nota: El aprovisionamiento del clúster lleva un par de minutos.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un clúster de Kubernetes Engine
Conéctate al clúster
Cuando el clúster está listo, haz clic en los tres puntos verticales que se encuentran en el lado derecho y, luego, haz clic en Conectar.
Para agregar el comando de conexión a Cloud Shell, en Conéctate al clúster, haz clic en Ejecutar en Cloud Shell. El comando debería ser similar al siguiente:
Presiona Intro para ejecutar el comando en Cloud Shell.
Obtén una lista de los Pods del clúster:
kubectl get pods
Nota: La respuesta debe indicar que no hay Pods en el clúster.
Esto confirma que has configurado la seguridad para permitir que la herramienta de línea de comandos kubectl realice operaciones dirigidas al clúster.
Tarea 3: compilar imágenes de Docker con Cloud Build
En esta sección, crearás un Dockerfile para el frontend y el backend de la aplicación, además de usar Cloud Build para compilar imágenes y almacenarlas en Container Registry.
Crea el documento Dockerfile para el código frontend y backend
En el editor de código de Cloud Shell, abre frontend/Dockerfile.
Luego del texto existente, ingresa los comandos de Dockerfile para inicializar la creación de una imagen de Docker personalizada con la imagen NodeJS App Engine de Google como punto de partida.
Nota: La imagen que usarás es: gcr.io/google_appengine/nodejs.
Agrega el comando Dockerfile para copiar el contenido de la carpeta actual en una carpeta de destino en la imagen /app/.
Agrega el comando Dockerfile para ejecutar npm install -g npm@8.1.3 como parte del proceso de compilación y asegurar que el contenedor ejecute una versión compatible de npm para la aplicación.
Agrega el comando Dockerfile para ejecutar npm update.
Ingresa la declaración npm start para completar el Dockerfile, que se ejecuta de forma simultánea con el contenedor:
...frontend/Dockerfile
FROM gcr.io/google_appengine/nodejs
RUN /usr/local/bin/install_node '>=0.12.7'
COPY . /app/
RUN npm install -g npm@8.1.3 --unsafe-perm || \
((if [ -f npm-debug.log ]; then \
cat npm-debug.log; \
fi) && false)
RUN npm update
CMD npm start
Guarda el Dockerfile.
Repite los pasos anteriores para el archivo backend/Dockerfile:
...backend/Dockerfile
FROM gcr.io/google_appengine/nodejs
RUN /usr/local/bin/install_node '>=0.12.7'
COPY . /app/
RUN npm install -g npm@8.1.3 --unsafe-perm || \
((if [ -f npm-debug.log ]; then \
cat npm-debug.log; \
fi) && false)
RUN npm update
CMD npm start
Guarda el segundo Dockerfile.
Compila imágenes de Docker con Cloud Build
En Cloud Shell, compila la imagen de Docker de frontend:
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-frontend ./frontend/
Nota: Los archivos se publican en etapa de pruebas en Cloud Storage, y una imagen de Docker se compila y almacena en Container Registry. Esto tardará algunos minutos.
En la consola de Cloud Platform, en el menú de navegación, haz clic en Artifact Registry.
Nota: Deberías ver dos elementos, quiz-frontend y quiz-backend.
Haz clic en el repositorio gcr.io.
Haz clic en quiz-frontend.
Nota: Deberías ver el nombre de la imagen, las etiquetas (más recientes) y el tamaño (alrededor de 275 MB).
Tarea 4: crear los recursos de Deployment y Service de Kubernetes
En esta sección, modificarás los archivos de plantilla yaml que contienen la especificación para los recursos de Deployment y Service de Kubernetes; luego, crearás los recursos en el clúster de Kubernetes Engine.
Crea un archivo de implementación de Kubernetes
En el editor de código de Cloud Shell, abre el archivo frontend-deployment.yaml.
Nota: Ya se creó el esqueleto del archivo. Debes reemplazar los marcadores de posición con valores específicos de tu proyecto.
Reemplaza los marcadores de posición en el archivo frontend-deployment.yaml con los siguientes valores:
Nombre del marcador de posición
Valor
[GCLOUD_PROJECT]
El ID del proyecto de Google Cloud (Ingresa echo $GCLOUD_PROJECT en Cloud Shell para mostrar el ID del proyecto)
[GCLOUD_BUCKET]
El nombre del bucket de Cloud Storage para el bucket de medios de tu proyecto (Ingresa echo $GCLOUD_BUCKET en Cloud Shell para mostrar el nombre del bucket)
[FRONTEND_IMAGE_IDENTIFIER]
La imagen de frontend identificada con la forma gcr.io/[Project_ID]/quiz-frontend
Nota: La implementación de quiz-frontend aprovisiona tres réplicas de la imagen de Docker de frontend en los Pods de Kubernetes, que están distribuidas en los tres nodos del clúster de Kubernetes Engine.
Guarda el archivo.
Reemplaza los marcadores de posición en el archivo backend-deployment.yaml por los siguientes valores:
Nombre del marcador de posición
Valor
[GCLOUD_PROJECT]
ID del proyecto de Google Cloud
[GCLOUD_BUCKET]
ID del bucket de Cloud Storage para el bucket de medios de tu proyecto
[BACKEND_IMAGE_IDENTIFIER]
La imagen de backend identificada con la forma gcr.io/[Project_ID]/quiz-backend
Nota: La implementación de quiz-backend aprovisiona dos réplicas de la imagen de Docker de backend en los Pods de Kubernetes, distribuidas en dos de los tres nodos del clúster de Kubernetes Engine.
Guarda el archivo.
Revisa los contenidos del archivo frontend-service.yaml.
Nota: El servicio expone la implementación de frontend a través de un balanceador de cargas, que envía solicitudes de clientes a las tres réplicas del Pod de frontend.
Ejecuta los archivos de Deployment y Service
En Cloud Shell, aprovisiona el Deployment del frontend del cuestionario:
kubectl create -f ./frontend-deployment.yaml
Aprovisiona el Deployment del backend del cuestionario:
kubectl create -f ./backend-deployment.yaml
Aprovisiona el Service del frontend de Quiz:
kubectl create -f ./frontend-service.yaml
Nota: Cada comando aprovisiona recursos en Kubernetes Engine. El proceso tarda unos cuantos minutos en completarse.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear los recursos de Deployment y Service de Kubernetes
Tarea 5: probar la aplicación de Quiz
En esta sección, revisarás los recursos de Pods y servicios que implementaste y, luego, navegarás a la aplicación de Quiz.
Revisa los recursos implementados
En la consola de Cloud, en el Menú de navegación, haz clic en Kubernetes Engine.
Haz clic en Kubernetes Engine > Cargas de trabajo.
Nota: Deberías ver dos elementos, quiz-frontend y quiz-backend.
Tal vez vea que el estado del Pod es OK o en proceso de creación.
Quizás debas hacer clic en Actualizar un par de veces hasta que veas Aceptado.
Haz clic en quiz-frontend.
Desplázate hacia abajo hasta Pods administrados.
Nota: Deberías ver que hay tres Pods de quiz-frontend.
Haz clic en Kubernetes Engine > Puertas de enlace, Ingress y Service.
Haz clic en la pestaña Servicios.
Nota: Podrías ver que el balanceador de cargas quiz-frontend se está creando o que está Aceptado.
Espera hasta que el Service esté Aceptado antes de continuar.
Deberías ver un extremo de la dirección IP cuando el servicio esté listo.
En Extremos, haz clic en la dirección de Service IP.
Nota: Deberías ver la aplicación de Quiz.
Crea una pregunta o realiza una prueba.
Nota: La aplicación funciona como se esperaba.
Nota: Revisar
¿Qué comando Docker se usa para ejecutar un comando cuando se estructura el contenedor?
FROM
COPY
RUN
CMD
¿Qué comando Docker se usa para ejecutar un comando cuando se implementó el contenedor?
FROM
COPY
RUN
CMD
¿Qué comando Kubernetes se usa para recuperar las listas de Pods que se ejecutan en un clúster?
kubectl pods list
kubectl deployments list
kubectl get pods
kubectl get deployments
Tarea 6: Contenido adicional: Cómo implementar la Tabla de clasificación en Kubernetes Engine
Cuando un estudiante completa un cuestionario, sus respuestas se envían al servidor en una llamada a la API. Tu trabajo es capturar las respuestas que envían los estudiantes y las respuestas correctas, y guardarlas en Cloud Spanner.
Para ello, deberás hacer lo siguiente:
Crea un tema de Cloud Pub/Sub llamado answers
Crea una tabla de Cloud Spanner llamada Answers con los nombres de columna y tipos de datos correspondientes.
Publica los datos de las respuestas en el tema answers.
Crea una implementación answer-backend nueva, en la que la aplicación se suscriba al tema answers en la aplicación de la consola y, luego, ingresa los datos de las respuestas en la tabla Answers.
Crea un controlador y una plantilla de Pug en el quiz-frontend para mostrar los datos de Cloud Spanner cuando el usuario explora la Tabla de clasificación.
¡Tú decides los detalles!
Finalice su lab
Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.
Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.
La cantidad de estrellas indica lo siguiente:
1 estrella = Muy insatisfecho
2 estrellas = Insatisfecho
3 estrellas = Neutral
4 estrellas = Satisfecho
5 estrellas = Muy satisfecho
Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.
Copyright 2026 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
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.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
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
Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar
este 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.
En este lab, implementarás la aplicación Quiz en Kubernetes Engine y aprovecharás los recursos de Google Cloud, entre ellos Container Builder y Container Registry, además de los recursos de Kubernetes, como Deployment, Pod y Service.
Duración:
1 min de configuración
·
Acceso por 120 min
·
120 min para completar