Enable services, create an artifact registry and the GKE cluster
Revisar mi progreso
/ 20
Create a container image with Cloud Build
Revisar mi progreso
/ 20
Create the Continuous Integration (CI) Pipeline
Revisar mi progreso
/ 20
Accessing GitHub from a build via SSH keys
Revisar mi progreso
/ 20
Create the Test Environment and CD Pipeline
Revisar mi progreso
/ 20
Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos
Canalización de Google Kubernetes Engine con Cloud Build
Lab
1 hora 30 minutos
universal_currency_alt
5 créditos
show_chart
Intermedio
info
Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos
GSP1077
Descripción general
En este lab, crearás una canalización de CI/CD que compile de forma automática una imagen de contenedor desde el código confirmado, la almacene en Artifact Registry, actualice un manifiesto de Kubernetes en un repositorio de Git y, luego, implemente la aplicación para Google Kubernetes Engine con ese manifiesto.
En este lab, crearás 2 repositorios de Git:
Repositorio app: Contiene el código fuente de la aplicación.
Repositorio env: Contiene los manifiestos para el objeto Deployment de Kubernetes.
Cuando envías un cambio al repositorio de aplicaciones, la canalización de Cloud Build ejecuta pruebas y compila una imagen de contenedor, que luego envía a Artifact Registry. Después de enviar la imagen, Cloud Build actualiza el manifiesto de Deployment y lo envía al repositorio env. Esto activa otra canalización de Cloud Build que aplica el manifiesto al clúster de GKE y, si se aplica correctamente, lo almacena en otra rama del repositorio env.
Los repositorios de aplicaciones y los repositorios de variables de entorno se mantienen separados porque tienen distintos ciclos de vida y usos. Los usuarios principales del repositorio app son personas reales, y este repositorio está dedicado a una aplicación específica. Los usuarios principales del repositorio env son sistemas automatizados (como Cloud Build) y varias aplicaciones pueden compartir este repositorio. El repositorio env puede tener varias ramas y cada una se asigna a un entorno específico (en este lab, solo utilizas la rama production), y hace referencia a una imagen de contenedor específica, mientras que el repositorio app no.
Cuando termines este lab, obtendrás un sistema en el que fácilmente podrás realizar las siguientes acciones:
Lograr distinguir entre implementaciones fallidas y correctas observando el historial de Cloud Build.
Acceder al manifiesto en uso en este momento observando la rama production del repositorio env.
Efectuar una reversión a cualquier versión anterior mediante una nueva ejecución de la compilación correspondiente de Cloud Build
Objetivos
En este lab, aprenderás a hacer lo siguiente:
Crear clústeres de Kubernetes Engine
Crear Cloud Source Repositories
Activar Cloud Build desde Cloud Source Repositories
Automatizar las pruebas y publicar una imagen de contenedor implementable a través de Cloud Build
Administrar recursos implementados en un clúster de Kubernetes Engine mediante Cloud Build
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
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
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.
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.
Haz clic en Siguiente.
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.
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.
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.
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.
Haz clic en Activar Cloud Shell en la parte superior de la consola 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 YOUR_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.
Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
Haz clic en Autorizar.
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
Puedes solicitar el ID del proyecto con este comando (opcional):
En esta tarea, prepararás tu proyecto de Google Cloud habilitando las APIs necesarias, inicializando la configuración de Git en Cloud Shell y descargando el código de muestra que usarás luego en el lab.
Ejecuta el siguiente comando para que se habiliten las APIs para GKE, Cloud Build, Cloud Source Repositories y Container Analysis:
Si nunca usaste Git en Cloud Shell, configúralo con tu nombre y dirección de correo electrónico. Git los usará para identificarte como el autor de las confirmaciones que crearás en Cloud Shell (si no tienes una cuenta de GitHub, puedes completar este paso con tu información actual. No se necesita una cuenta para este lab):
Haz clic en Revisar mi progreso para verificar el objetivo.
Habilitar servicios, crear un Artifact Registry y el clúster de GKE
Tarea 2: Crea repositorios de Git en Cloud Source Repositories
En esta tarea creas los dos repositorios de Git (hello-cloudbuild-app y hello-cloudbuild-env) y, luego, inicializas hello-cloudbuild-app con algún código de muestra.
Ejecuta lo siguiente en Cloud Shell para crear los dos repositorios de Git:
Cloud Build transmite los registros que generó la creación de la imagen de contenedor a tu terminal cuando ejecutes este comando.
Luego de que finalice la compilación, en la consola de Cloud ve hacia Artifact Registry > Repositorios para verificar que tu nueva imagen de contenedor en efecto esté disponible en Artifact Registry. Haz clic en mi-repositorio.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear la imagen de contenedor con Cloud Build
Tarea 4. Crea la canalización de integración continua (CI)
En esta tarea, configurarás Cloud Build para ejecutar una prueba de unidades pequeñas de forma automática, compilarás la imagen de contenedor y la enviarás a Artifact Registry. El envío de esta nueva confirmación a Cloud Source Repositories activa esta canalización de forma automática. El archivo cloudbuild.yaml ya incluido en el código es la configuración de la canalización.
En la consola de Cloud ve hacia Cloud Build > Activadores.
Haz clic en Crear activador.
En el campo Nombre, escribe hello-cloudbuild.
En Evento, selecciona Enviar a una rama.
Debajo de Fuente, elige hello-cloudbuild-app como tu Repositorio y .*(cualquier rama) como tu Rama.
En Configuración de compilación, selecciona Archivo de configuración de Cloud Build.
En el campo Ubicación del archivo de configuración de Cloud Build, escribe cloudbuild.yaml después de /.
Haz clic en Crear.
Cuando se haya creado el activador, regresa a Cloud Shell. Ahora debes enviar el código de la aplicación a Cloud Source Repositories para activar la canalización de CI en Cloud Build.
Para iniciar este activador, ejecuta el siguiente comando:
cd ~/hello-cloudbuild-app
git add .
git commit -m "Type Any Commit Message here"
git push google master
En la consola de Cloud, ve hacia Cloud Build > Panel.
Deberías ver una compilación en ejecución o finalizada recientemente. Puedes hacer clic en la compilación para seguir la ejecución y examinar sus registros.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear la canalización de integración continua (CI)
Tarea 5. Crea el entorno de pruebas y la canalización de CD
Cloud Build también se usa para la canalización de entrega continua. La canalización se ejecuta cada vez que se envía una confirmación a la rama candidate del repositorio hello-cloudbuild-env. La canalización aplica la versión nueva del manifiesto al clúster de Kubernetes y, si lo hace correctamente, copia el manifiesto en la rama production. Este proceso tiene las siguientes propiedades:
La rama candidate es un historial de los intentos de implementación.
La rama production es un historial de las implementaciones correctas.
En Cloud Build, tienes una vista de las implementaciones fallidas y correctas.
Puedes realizar una reversión a cualquier implementación anterior si vuelves a ejecutar la compilación correspondiente en Cloud Build. Una reversión también actualiza la rama production para reflejar verdaderamente el historial de implementaciones.
Luego modificarás la canalización de integración continua para actualizar la rama candidate del repositorio hello-cloudbuild-env, lo que activa la canalización de entrega continua.
Otorga a Cloud Build acceso a GKE
Para implementar la aplicación en el clúster de Kubernetes, Cloud Build necesita el rol de desarrollador del Identity and Access Management de Kubernetes Engine.
Debes inicializar el repositorio hello-cloudbuild-env con dos ramas (production y candidate) y un archivo de configuración de Cloud Build que describa el proceso de implementación.
El primer paso es clonar el repositorio hello-cloudbuild-env y crear la rama production. Todavía estará vacía.
En Cloud Shell, ejecuta el siguiente comando:
cd ~
gcloud source repos clone hello-cloudbuild-env
cd ~/hello-cloudbuild-env
git checkout -b production
A continuación, debes copiar el archivo cloudbuild-delivery.yaml disponible en el repositorio hello-cloudbuild-app y confirmar el cambio.
cd ~/hello-cloudbuild-env
cp ~/hello-cloudbuild-app/cloudbuild-delivery.yaml ~/hello-cloudbuild-env/cloudbuild.yaml
git add .
git commit -m "Create cloudbuild.yaml for deployment"
El archivo cloudbuild-delivery.yaml describe el proceso de implementación que debe ejecutarse en Cloud Build. Este tiene dos pasos:
Cloud Build aplica el manifiesto en el clúster de GKE.
Si se aplica de forma correcta, Cloud Build lo copia en la rama production.
Crea la rama candidate y envía ambas ramas para que estén disponibles en Cloud Source Repositories:
Crea un activador para la canalización de entrega continua
En la consola de Cloud ve hacia Cloud Build > Activadores.
Haz clic en Crear activador.
En el campo Nombre, escribe hello-cloudbuild-deploy.
En Evento, selecciona Enviar a una rama.
Bajo la Fuente, elige hello-cloudbuild-env como tu Repositorio y ^candidate$ como tu Rama.
En Configuración de compilación, selecciona Archivo de configuración de Cloud Build.
En el campo Ubicación del archivo de configuración de Cloud Build, escribe cloudbuild.yaml después de /.
Haz clic en Crear.
Modifica la canalización de integración continua para activar la canalización de entrega continua.
Luego, agrega algunos pasos a la canalización de integración continua. Estos generarán una nueva versión del manifiesto de Kubernetes y la enviarán al repositorio hello-cloudbuild-env para activar la canalización de entrega continua.
Copia la versión extendida del archivo cloudbuild.yaml para el repositorio de aplicaciones.
cd ~/hello-cloudbuild-app
cp cloudbuild-trigger-cd.yaml cloudbuild.yaml
El archivo cloudbuild-trigger-cd.yaml es una versión extendida del archivo cloudbuild.yaml. Este agrega los pasos que se detallan a continuación, que generan el manifiesto nuevo de Kubernetes y activan la canalización de entrega continua.
Esta canalización usa un sedsencillo para renderizar la plantilla del manifiesto. En realidad, se beneficiará con el uso de herramientas dedicadas, como kustomize o skaffold. Estas permiten tener más control sobre la renderización de las plantillas del manifiesto.
Confirma las modificaciones y envíalas a Cloud Source Repositories:
cd ~/hello-cloudbuild-app
git add cloudbuild.yaml
git commit -m "Trigger CD pipeline"
git push google master
Esto activa la canalización de integración continua en Cloud Build.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear el entorno de pruebas y la canalización de CD
Tarea 6. Revisa las canalizaciones de Cloud Build
En la consola de Cloud, ve hacia Cloud Build > Panel.
Haz clic en el activador hello-cloudbuild-app para seguir esta ejecución y examinar los registros. El último paso de esta canalización envía el manifiesto nuevo al repositorio hello-cloudbuild-env, que activa la canalización de entrega continua.
Regresa al Panel principal.
Deberías ver una compilación en ejecución o finalizada recientemente para el repositorio hello-cloudbuild-env. Puedes hacer clic en la compilación para seguir la ejecución y examinar sus registros.
Tarea 7. Prueba la canalización completa
La canalización de CI/CD ahora está configurada. Pruébala de punta a punta.
En la consola de Cloud, ve hacia Kubernetes Engine > Puertas de enlace, Ingress y Service.
Debe haber un solo servicio llamado hello-cloudbuild en la lista. Se creó con la compilación de entrega continua que se acaba de ejecutar.
Haz clic en el extremo del servicio hello-cloudbuild. Deberías ver "Hello World!". Si no existe el extremo, o si ve un error del balanceador de cargas, es posible que debas esperar algunos minutos para que el balanceador de cargas se inicialice por completo. Haz clic en Actualizar para que la página se actualice, si es necesario.
En Cloud Shell, reemplaza el “Hello World” por “Hello Cloud Build” tanto en la aplicación como en la prueba de unidades:
cd ~/hello-cloudbuild-app
sed -i 's/Hello World/Hello Cloud Build/g' app.py
sed -i 's/Hello World/Hello Cloud Build/g' test_app.py
Confirma y envía el cambio a Cloud Source Repositories:
Después de unos minutos, vuelva a cargar la aplicación en tu navegador. Ahora deberías ver “Hello Cloud Build!”.
Tarea 8. Prueba la reversión
En esta tarea, revertirás a la versión de la aplicación que decía “Hello World!”.
En la consola de Cloud, ve hacia Cloud Build > Panel.
Haga clic en el vínculo Ver todo en Historial de compilaciones para el repositorio hello-cloudbuild-env.
Haz clic en la segunda compilación más reciente disponible.
Haz clic en Volver a compilar.
Cuando se termine la compilación, vuelve a cargar la aplicación en tu navegador. Ahora deberías ver nuevamente “Hello World!”.
¡Felicitaciones!
Ahora puedes usar Cloud Build para crear y revertir las canalizaciones de la integración continua con GKE en Google Cloud.
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: 26 de enero de 2024
Prueba más reciente del lab: 19 de enero de 2024
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.
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
Use private browsing
Copy the provided Username and Password for the lab
Click Open console in private mode
Sign in to the Console
Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
Accept the terms, and skip the recovery resource page
Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project
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
Use private browsing to run the lab
Use an Incognito or private browser window to run this lab. This
prevents any conflicts between your personal account and the Student
account, which may cause extra charges incurred to your personal account.
Crea una canalización de CI/CD que compile de forma automática una imagen de contenedor, la almacene en Artifact Registry, actualice un manifiesto de Kubernetes en un repositorio de Git y, luego, implemente la aplicación para Google Kubernetes Engine.
Duración:
0 min de configuración
·
Acceso por 90 min
·
90 min para completar