
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Google Kubernetes Engine proporciona un entorno administrado para implementar, administrar y escalar tus aplicaciones en contenedores con la infraestructura de Google. El entorno que proporciona Kubernetes Engine consta de varias máquinas (específicamente, instancias de Google Compute Engine) que se agrupan para formar un clúster.
Kubernetes proporciona los mecanismos a través de los cuales interactúa con tu clúster. Los comandos y recursos de Kubernetes se usan para implementar y administrar aplicaciones, realizar tareas administrativas, establecer políticas y supervisar el estado de las cargas de trabajo implementadas.
En este lab, implementarás la aplicación Quiz en Kubernetes Engine. Para ello, aprovecharás los recursos de Google Cloud, como Cloud Build y Container Registry, y los recursos de Kubernetes, como Deployments, Pods y Services.
En este lab, aprenderás a realizar las siguientes tareas:
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.
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.
Resultado:
Resultado de ejemplo:
Resultado:
Resultado de ejemplo:
En esta sección, clonarás el repositorio de Git que contiene la aplicación Quiz, configurarás las variables de entorno y ejecutarás la aplicación.
GCLOUD_PROJECT
y GCLOUD_BUCKET.
mvn clean install.
A continuación, revisa y actualiza el código de la aplicación Quiz en un editor de código. Puedes usar el editor de código de Cloud Shell o los editores de shell que están instalados en Cloud Shell, como nano
o vim
. Este lab usa el editor de código de Cloud Shell.
training-data-analyst/courses/developingapps/v1.3/java/kubernetesengine/start
.La estructura de las carpetas de la aplicación Quiz ahora refleja el modo en que se implementa en Kubernetes Engine:
frontend
contiene el resultado empaquetado para la aplicación web.backend
contiene el resultado empaquetado para la aplicación de la consola.Dockerfile
en las carpetas frontend
y backend
contiene archivos de configuración para Docker. Actualmente vacía.*.yaml
contiene archivos de configuración para Kubernetes Engine.En Cloud Shell, vuelve a la terminal y, luego, usa el siguiente comando para copiar el jar
resultante de la aplicación de frontend en la carpeta frontend
:
Configura la aplicación del backend de Quiz:
Copia el jar resultante correspondiente a la aplicación del backend en la carpeta backend
:
En esta sección, crearás un clúster de Google Kubernetes Engine para alojar la aplicación Quiz.
En la consola, haz clic en el menú de navegación > Kubernetes Engine > Clústeres.
Luego, haz clic en Crear.
Selecciona Configurar para GKE Standard.
Para configurar el clúster, utiliza los valores especificados de las propiedades que aparecen en la siguiente tabla; deja las propiedades que no están en la lista con los valores predeterminados:
En Aspectos básicos del clúster:
Propiedad | Valor |
---|---|
Nombre | quiz-cluster |
Zona | us-central1-b |
Expande default-pool.
En Seguridad, selecciona Permitir el acceso total a todas las APIs de Cloud.
Haz clic en Crear. El aprovisionamiento del clúster puede demorar algunos minutos.
Cuando el clúster esté listo, haz clic en los 3 puntos verticales y selecciona Conectar.
En Conéctate al clúster, copia el primer comando en el portapapeles.
Haz clic en Aceptar para cerrar la ventana Conéctate al clúster.
El comando tiene este formato: gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project <Project-ID>
.
Pega el comando en Cloud Shell y presiona Intro.
O solo haz clic en Ejecutar en Cloud Shell y, luego, presiona Intro.
Obtén una lista de los Pods del clúster:
La respuesta debe indicar que no hay Pods en el clúster.
Esto confirma que configuraste la seguridad de modo que la herramienta de línea de comandos kubectl
realice operaciones para el clúster.
En esta sección, crearás un Dockerfile para el frontend y el backend de la aplicación y, luego, usarás Cloud Build para crear imágenes y almacenarlas en Container Registry.
Haz clic en Abrir editor para ir al editor de código de Cloud Shell y, luego, abre frontend/Dockerfile
.
Copia y pega el siguiente contenido en frontend/Dockerfile
:
Esta secuencia de comandos es una serie de comandos de Dockerfile.
El primer comando, FROM gcr.io/google_appengine/jetty9
, inicializa la creación de una imagen de Docker personalizada con la imagen Jetty 9 de Google App Engine, gcr.io/google_appengine/jetty9
, como punto de partida.
El segundo comando, VOLUME /tmp
, crea un volumen en el sistema de archivos del contenedor con la ruta /tmp
.
El tercer comando, ADD./quiz-frontend-0.0.1.jar /app.jar
, agrega el archivo jar, uiz-frontend-0.0.1.jar
, correspondiente al frontend generado por el proceso de empaquetado de Maven, como parte del proceso de compilación.
El cuarto y último comando, CMD java -jar /app.jar
, se ejecuta conjuntamente con el contenedor.
El Dockerfile para el backend se crea de la misma manera que para el frontend, salvo que el archivo jar
se agrega al backend.
En el editor de código de Cloud Shell, abre backend/Dockerfile
.
Copia y pega el siguiente contenido en backend/Dockerfile
:
En Cloud Shell, haz clic en Abrir terminal y escribe el siguiente comando para compilar la imagen de Docker del frontend:
Los archivos se almacenan en etapa intermedia en Cloud Storage y se compila una imagen de Docker que se almacena en Container Registry. Esto tardará unos segundos.
Compila la imagen de Docker para el backend:
En la consola, haz clic en el menú de navegación > Container Registry. Deberían aparecer dos carpetas: quiz-frontend y quiz-backend.
Haz clic en quiz-frontend. Debería aparecer el nombre de la imagen (un hash), etiquetas (las más recientes) y otros detalles.
En esta sección, modificarás los archivos de plantilla yaml
que contienen la especificación para los recursos de implementación y servicio de Kubernetes; luego, crearás los recursos en el clúster de Kubernetes Engine.
En el editor de código, abre el archivo frontend-deployment.yaml
. 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 GCP (ingresa echo $GCLOUD_PROJECT en Cloud Shell para mostrar el ID del proyecto) |
[GCLOUD_BUCKET] | ID del bucket de Cloud Storage para el bucket de medios de tu proyecto. El ID de bucket es [GCP_Project_ID]-media . |
[FRONTEND_IMAGE_IDENTIFIER] |
La imagen para el frontend identificada con el formato gcr.io/[GCP_Project_ID]/quiz-frontend . |
Solo reemplaza los valores que están entre []
.
El archivo YAML resultante debería ser similar al siguiente:
La implementación de quiz-frontend aprovisiona tres réplicas de la imagen de Docker de frontend en Pods de Kubernetes, distribuidas en los tres nodos del clúster de Kubernetes Engine.
Guarda el archivo.
Abre el archivo backend-deployment.yaml
y 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 GCP (o usa echo $GCLOUD_PROJECT ) |
[GCLOUD_BUCKET] | ID del bucket de Cloud Storage para el bucket de medios de tu proyecto. Este es el mismo que usaste en frontend-deployment.yaml (el ID de bucket es [GCP_Project_ID]-media ). |
[BACKEND_IMAGE_IDENTIFIER] |
La imagen para el backend identificada con la forma gcr.io/[GCP_Project_ID]/quiz-backend
|
La implementación del backend de Quiz aprovisiona una réplica de la imagen de Docker para el backend en pods de Kubernetes, que se coloca en uno de los tres nodos del clúster de Kubernetes Engine.
Guarda el archivo.
Revisa el contenido del archivo frontend-service.yaml
.
En Cloud Shell, aprovisiona la implementación del frontend de Quiz:
Aprovisiona la implementación del backend de Quiz:
Aprovisiona el Service del frontend de Quiz:
Cada comando aprovisiona recursos en Kubernetes Engine. Este proceso tardará unos minutos en completarse.
En esta sección, revisarás los servicios y Pods que implementaste, y navegarás a la aplicación Quiz.
En la consola, haz clic en el menú de navegación > Kubernetes Engine > Cargas de trabajo. Deberían aparecer dos elementos: quiz-frontend
y quiz-backend
.
Tal vez veas que el estado del pod es OK o en proceso de creación.
Haz clic en quiz-frontend para ver una descripción general de quiz-frontend
.
Desplázate hacia abajo para ver la sección Pods administrados.
Es posible que veas que se está creando el balanceador de cargas quiz-frontend o que está listo. Espera hasta que el Service se muestre con OK antes de continuar. Deberías ver un extremo de la dirección IP cuando el servicio esté listo.
En Servicios expuestos, en Extremos, selecciona la dirección IP y ábrela en una pestaña del navegador nueva.
Realiza una prueba para verificar que la aplicación funcione como corresponda.
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:
Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.
Copyright 2020 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.
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
One lab at a time
Confirm to end all existing labs and start this one