arrow_back

Optimiza los costos de Google Kubernetes Engine: Lab de desafío

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Optimiza los costos de Google Kubernetes Engine: Lab de desafío

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP343

Labs de autoaprendizaje de Google Cloud

Introducción

En un lab de desafío, se le proporcionarán una situación y un conjunto de tareas. En lugar de seguir instrucciones paso a paso, deberá utilizar las habilidades aprendidas en los labs de la Quest a fin de decidir cómo completar las tareas por su cuenta. Un sistema de puntuación automatizado (que se muestra en esta página) le proporcionará comentarios acerca de si completó las tareas correctamente.

En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíe las habilidades que adquirió, como cambiar los valores predeterminados y leer o investigar los mensajes de error para corregir sus propios errores.

Debe completar correctamente todas las tareas dentro del período establecido para obtener una puntuación del 100%.

Se recomienda este lab solamente a los estudiantes que están inscritos en el curso Optimize Costs for Google Kubernetes Engine. ¿Aceptas el desafío?

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, 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 de navegador privada o de Incógnito para 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.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Situación del desafío

Eres el administrador principal de Google Kubernetes Engine en un equipo que administra la tienda en línea de OnlineBoutique.

Tienes todo listo para implementar el sitio del equipo en Google Kubernetes Engine, pero sigues buscando formas de asegurarte de reducir los costos y aumentar el rendimiento.

Serás responsable de implementar la app de OnlineBoutique en GKE y de realizar algunos cambios en la configuración que se recomendaron para la optimización de costos.

Se te pidió que siguieras algunos lineamientos en el momento de la implementación, como los siguientes:

  • Crea el clúster en la zona .
  • El esquema de nombres es equipo-recurso-número, p. ej., un clúster podría llamarse .
  • En el clúster inicial, debes comenzar con el tamaño de máquina e2-standard-2 (2 CPU virtuales, 8 GB de memoria).
  • El clúster debe usar el canal de versiones rápido.

Tarea 1: Crea un clúster y, luego, implementa tu app

  1. Antes de que puedas implementar la aplicación, debes crear un clúster y darle el nombre .

  2. Comienza de a poco y crea un clúster zonal solo con dos (2) nodos.

  3. Antes de implementar la tienda, asegúrate de configurar algunos espacios de nombres para separar los recursos en tu clúster según los 2 entornos: dev y prod.

  4. Después de eso, implementa la aplicación en el espacio de nombres dev con el siguiente comando:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git && cd microservices-demo && kubectl apply -f ./release/kubernetes-manifests.yaml --namespace dev

Haz clic en Revisar mi progreso para verificar el objetivo. Crear el clúster y, luego, implementar una app

Tarea 2: Migra a un grupo de nodos optimizado

  1. Después de implementar correctamente la app en el espacio de nombres dev, consulta los detalles del nodo:

Tabla de detalles del nodo

Concluyes que debes realizar cambios en el grupo de nodos del clúster, como los siguientes:

  • Hay mucha RAM sobrante de las implementaciones actuales, así que deberías poder usar un grupo de nodos con máquinas que poseen menos RAM.
  • La mayoría de las implementaciones en las que podrías considerar aumentar el recuento de réplicas requerirán solo 100 mCPU por Pod adicional. Es posible que puedas usar un grupo de nodos con menos CPU total si lo configuras para usar máquinas más pequeñas. Sin embargo, también debes considerar cuántas implementaciones será necesario escalar y cuánto será necesario escalarlas.
  1. Crea un nuevo grupo de nodos llamado con custom-2-3584 como el tipo de máquina.

  2. Establece la cantidad de nodos en 2.

  3. Cuando el nuevo grupo de nodos esté configurado, usa el acordonamiento y desvío de default-pool para migrar las implementaciones de tu aplicación al nuevo grupo de nodos.

  4. Borra el default-pool cuando se finalice correctamente la migración de las implementaciones.

Haz clic en Revisar mi progreso para verificar el objetivo. Migrar a un grupo de nodos optimizado

Tarea 3: Aplica una actualización de frontend

Ya tienes todo implementado y, ahora, el equipo de desarrollo quiere realizar una actualización de último minuto antes del próximo lanzamiento. Está bien. Sabes que puedes hacer esto sin la necesidad de generar tiempo de inactividad.

  1. Establece un presupuesto de interrupción de Pods para la implementación de tu frontend.

  2. Asígnale el nombre onlineboutique-frontend-pdb.

  3. Establece el valor min-availability de tu implementación en 1.

Ahora, puedes aplicar la actualización de tu equipo. Cambiaron el archivo del banner de la página principal y te entregaron una imagen de Docker actualizada:

gcr.io/qwiklabs-resources/onlineboutique-frontend:v2.1
  1. Edita la implementaci[on de tu frontend y cambia la imagen por la versión actualizada.

  2. Mientras editas tu implementación, cambia ImagePullPolicy a Always.

Haz clic en Revisar mi progreso para verificar el objetivo. Aplicar una actualización de frontend

Tarea 4: Aplica el ajuste de escala automático a partir del tráfico estimado

Se aproxima una campaña de marketing que generará un alza del tráfico en la tienda de OnlineBoutique. Normalmente, iniciarías recursos adicionales por adelantado para controlar el aumento estimado de tráfico. Sin embargo, si el aumento de tráfico supera lo anticipado, es posible que te despierten en medio de la noche para iniciar más recursos y controlar la carga.

También quieres evitar la ejecución de recursos adicionales por más tiempo que el necesario. Para reducir los costos y ahorrarte un posible dolor de cabeza, puedes configurar las implementaciones de Kubernetes para escalar automáticamente cuando la carga comience a subir.

  1. Aplica ajuste automático de escala horizontal de Pods a tu implementación de frontend para controlar el aumento de tráfico.

  2. Escala en función de un objetivo de porcentaje de CPU de 50.

  3. Establece el escalamiento de Pod entre un mínimo de 1 y un máximo de .

Por supuesto, deseas asegurarte de que los usuarios no experimentarán tiempo de inactividad mientras estás escalando la implementación.

  1. Para asegurarte de que la acción de escalamiento ocurra sin tiempo de inactividad, configura la implementación para que escale con un objetivo de porcentaje de CPU de un 50%. Esto debería permitir que haya suficiente espacio para controlar la carga mientras ocurre el ajuste de escala automático.

  2. Configura la implementación para que escale entre un mínimo de 1 y un máximo de  Pods.

¿Pero qué pasa si el aumento sobrepasa los recursos de procesamiento que habías aprovisionado? Es posible que necesites agregar nodos de procesamiento adicionales.

  1. Luego, asegúrate de que tu clúster pueda iniciar automáticamente nodos de procesamiento adicionales, de ser necesario. Sin embargo, controlar el escalamiento vertical no es el único caso que puedes controlar con el ajuste de escala automático.

  2. Para adelantarte, configurarás una cantidad mínima y máxima de nodos. De este modo, el clúster puede agregar nodos cuando el tráfico está alto y reducir la cantidad cuando está bajo.

  3. Actualiza tu escalador automático de clúster para que escale entre un mínimo de 1 nodo y un máximo de 6 nodos.

Haz clic en Revisar mi progreso para verificar el objetivo. Aplicar el ajuste de escala automático a partir del tráfico estimado

  1. Por último, ejecuta una prueba de carga para simular el aumento de tráfico.

Afortunadamente, OnlineBoutique se diseñó con generación de carga incorporada. En este momento, tu instancia de desarrollo está simulando el tráfico en la tienda con aproximadamente 10 usuarios simultáneos.

  1. Para replicar mejor el tráfico esperado para este evento, ejecuta la generación de carga de tu Pod loadgenerator con una cantidad mayor de usuarios simultáneos con este comando. Reemplaza YOUR_FRONTEND_EXTERNAL_IP con la IP del servicio de frontend-external, de la siguiente manera:
kubectl exec $(kubectl get pod --namespace=dev | grep 'loadgenerator' | cut -f1 -d ' ') -it --namespace=dev -- bash -c 'export USERS=8000; locust --host="http://YOUR_FRONTEND_EXTERNAL_IP" --headless -u "8000" 2>&1'
  1. Ahora, observa tus cargas de trabajo y supervisa cómo controla tu clúster el aumento de tráfico.

Deberías ver que recommendationservice falla o, por lo menos, tiene muchas dificultades por el aumento de tráfico.

  1. Aplica ajuste automático de escala horizontal de Pods a tu implementación de recommendationservice. Escala en función de un objetivo de porcentaje de CPU de 50 y establece el escalamiento de Pod entre un mínimo de 1 y un máximo de 5.
Nota: El proceso de escalamiento a partir de la prueba de carga y el aprovisionamiento de cualquier nodo nuevo tardará algunos minutos.

Tarea 5: Optimiza otros servicios (opcional)

Aunque la aplicación del ajuste automático de escala horizontal de Pods a tu servicio de frontend mantiene tu aplicación disponible durante la prueba de carga, si supervisas tus otras cargas de trabajo, notarás que algunas de ellas están bastante presionadas con ciertos recursos.

Si todavía te queda tiempo en el lab, inspecciona algunas de tus otras cargas de trabajo y trata de optimizarlas por medio del ajuste de escala automático para que alcancen la métrica de recursos apropiada.

También puedes revisar si sería posible optimizar más tu utilización de recursos con el Aprovisionamiento automático de nodos.

¡Felicitaciones!

¡Felicitaciones! En este lab, implementaste correctamente la app de OnlineBoutique en Google Kubernetes Engine y realizaste algunos cambios en la configuración que se recomendaron para optimizar costos. También aplicaste el ajuste automático de escala horizontal de Pods a tus implementaciones de frontend y recommendationservice para controlar el aumento de tráfico. Asimismo, optimizaste otros servicios aplicando el ajuste de escala automático a la métrica de recursos adecuada.

Optimize_Costs_for_Google_Kubernetes_Engine_Skill_badge_WBG.png

Obtén tu próxima insignia de habilidad

Este lab de autoaprendizaje forma parte del curso con insignia de habilidad Optimize Costs for Google Kubernetes Engine. Si completas este curso, obtendrás la insignia de habilidad que se muestra arriba como reconocimiento de tu logro. Comparte la insignia en tu currículum y tus plataformas sociales, y anuncia tu logro con el hashtag #GoogleCloudBadge.

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: 22 de marzo de 2024

Prueba más reciente del lab: 27 de julio de 2023

Copyright 2024 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.