Puntos de control
Create cluster and deploy an app
/ 40
Migrate to an Optimized Nodepool
/ 20
Apply a Frontend Update
/ 20
Autoscale from Estimated Traffic
/ 20
Optimiza los costos de Google Kubernetes Engine: Lab de desafío
- GSP343
- Introducción
- Configuración y requisitos
- Situación del desafío
- Tarea 1: Crea un clúster y, luego, implementa tu app
- Tarea 2: Migra a un grupo de nodos optimizado
- Tarea 3: Aplica una actualización de frontend
- Tarea 4: Aplica el ajuste de escala automático a partir del tráfico estimado
- Tarea 5: Optimiza otros servicios (opcional)
- ¡Felicitaciones!
GSP343
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ás utilizar las habilidades aprendidas en los labs del curso para decidir cómo completar las tareas por tu cuenta. Un sistema automatizado de puntuación (en esta página) mostrará comentarios y determinará si completaste tus tareas correctamente.
En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíes las habilidades que adquiriste, 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)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
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
-
Antes de que puedas implementar la aplicación, debes crear un clúster en la zona
y darle el nombre . -
Comienza de a poco y crea un clúster zonal solo con dos (2) nodos.
-
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
yprod
. -
Después de eso, implementa la aplicación en el espacio de nombres
dev
con el siguiente comando:
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2: Migra a un grupo de nodos optimizado
- Después de implementar correctamente la app en el espacio de nombres dev, consulta los 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.
-
Crea un nuevo grupo de nodos llamado
con custom-2-3584 como el tipo de máquina. -
Establece la cantidad de nodos en 2.
-
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. -
Borra el default-pool cuando se finalice correctamente la migración de las implementaciones.
Haz clic en Revisar mi progreso para verificar el objetivo.
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.
-
Establece un presupuesto de interrupción de Pods para la implementación de tu frontend.
-
Asígnale el nombre onlineboutique-frontend-pdb.
-
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:
-
Edita la implementaci[on de tu frontend y cambia la imagen por la versión actualizada.
-
Mientras editas tu implementación, cambia ImagePullPolicy a Always.
Haz clic en Revisar mi progreso para verificar el objetivo.
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.
-
Aplica ajuste automático de escala horizontal de Pods a tu implementación de frontend para controlar el aumento de tráfico.
-
Escala en función de un objetivo de porcentaje de CPU de 50.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
- 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.
- 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:
- 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.
- 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.
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.
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: 29 de abril de 2024
Prueba más reciente del lab: 29 de abril de 2024
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.