arrow_back

Awwvision: la API de Cloud Vision desde un clúster de Kubernetes

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

Awwvision: la API de Cloud Vision desde un clúster de Kubernetes

Lab 45 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

GSP066

Labs de autoaprendizaje de Google Cloud

Descripción general

En el lab de Awwvision se usan Kubernetes y la API de Cloud Vision para demostrar cómo usar la API de Vision con el fin de clasificar (etiquetar) imágenes del subreddit /r/aww de Reddit y mostrar los resultados etiquetados en una app web.

Awwvision tiene tres componentes:

  1. Una instancia simple de Redis
  2. Una app web en la que se muestran las etiquetas y las imágenes asociadas
  3. Un trabajador que controla el scraping de imágenes de Reddit y las clasifica con la API de Vision. Se usa Cloud Pub/Sub para coordinar las tareas entre varias instancias de trabajador.

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.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

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.

  1. Haz clic en Activar Cloud Shell Ícono de 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.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. 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`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1. Crea un clúster de Kubernetes Engine

En este lab, usarás gcloud, la herramienta de línea de comandos de Google Cloud, para configurar un clúster de Kubernetes Engine. Puedes especificar la cantidad de nodos que desees, pero necesitas al menos uno. El permiso cloud-platform se usa para permitir el acceso a las APIs de Pub/Sub y Vision.

  1. En Cloud Shell, ejecuta lo siguiente para crear un clúster en la zona :
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
  1. Luego, ejecuta el siguiente comando para iniciar el clúster:
gcloud container clusters create awwvision \ --num-nodes 2 \ --scopes cloud-platform

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste correctamente un clúster de Kubernetes, verás una puntuación de evaluación.

Crear un clúster de Kubernetes Engine
  1. Ejecuta el siguiente comando para usar las credenciales del contenedor:
gcloud container clusters get-credentials awwvision
  1. Verifica que todo funcione con la herramienta de línea de comandos kubectl:
kubectl cluster-info

Tarea 2. Crea un entorno virtual

Se utilizan entornos virtuales de Python para aislar del sistema la instalación de paquetes.

  1. Instala el entorno virtualenv:
sudo apt-get install -y virtualenv
  1. Crea el entorno virtual:
python3 -m venv venv
  1. Activa el entorno virtual.
source venv/bin/activate

Tarea 3: Obtén la muestra

  • Ejecuta el siguiente comando para agregar datos de muestra a tu proyecto:
gsutil -m cp -r gs://spls/gsp066/cloud-vision

Tarea 4. Implementa la muestra

  1. En Cloud Shell, cambia al directorio python/awwvision en el repositorio clonado cloud-vision:
cd cloud-vision/python/awwvision
  1. Cuando estés en el directorio awwvision, ejecuta make all para compilar y, luego, implementar todo:
make all

Como parte del proceso, se compilarán y subirán las imágenes de Docker en el registro de contenedores privado de Google Container Registry.

Además, se generarán los archivos yaml a partir de plantillas que contienen información específica de tu proyecto y que se usan para implementar los recursos de redis, webapp y worker de Kubernetes para este lab.

Tarea 5. Verifica los recursos de Kubernetes en el clúster

Luego de la implementación, verifica que los recursos de Kubernetes funcionen correctamente.

  1. Primero, ejecuta el siguiente comando para enumerar los pods:
kubectl get pods

Deberías ver una tabla similar a la siguiente, aunque los nombres de tus pods serán diferentes. Asegúrate de que todos tus pods muestren el estado "Running" antes de ejecutar el siguiente comando.

NAME READY STATUS RESTARTS AGE awwvision-webapp-vwmr1 1/1 Running 0 1m awwvision-worker-oz6xn 1/1 Running 0 1m awwvision-worker-qc0b0 1/1 Running 0 1m awwvision-worker-xpe53 1/1 Running 0 1m redis-master-rpap8 1/1 Running 0 2m
  1. A continuación, ejecuta el siguiente comando para enumerar las implementaciones:
kubectl get deployments -o wide

Puedes ver la cantidad de réplicas especificadas para cada una y las imágenes que se usaron:

NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR awwvision-webapp 1/1 1 1 1m awwvision-webapp gcr.io/your-project/awwvision-webapp app=awwvision awwvision-worker 3/3 3 3 1m awwvision-worker gcr.io/your-project/awwvision-worker app=awwvision redis-master 1/1 1 1 1m redis-master redis app=redis
  1. Luego de la implementación, ejecuta el siguiente comando para obtener la dirección IP externa del servicio de webapp:
kubectl get svc awwvision-webapp

Es posible que la IP externa asignada tarde unos minutos en aparecer en el resultado. Deberías ver una tabla similar a la siguiente, aunque tus IP serán diferentes:

NAME TYPE CLUSTER_IP EXTERNAL_IP PORT(S) AGE awwvision-webapp LoadBalancer 10.163.250.49 23.236.61.91 80:31925/TCP 13m

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si implementaste correctamente la app de muestra, verás una puntuación de evaluación.

Implementar la muestra

Tarea 6. Visita tu app web nueva y, luego, inicia el rastreador

  1. Copia la IP externa del servicio de awwvision-webapp y pégala en un navegador nuevo para abrir la app web; luego, haz clic en el botón Iniciar el rastreador.

  2. A continuación, haz clic en Volver; deberías comenzar a ver imágenes del subreddit /r/aww que clasificaron las etiquetas proporcionadas por la API de Vision. Verás algunas de las imágenes clasificadas en varias oportunidades, cuando se detecten varias etiquetas para las imágenes. (Si abriste la página antes de que el rastreador finalizara la tarea, puedes volver a cargar la página en unos minutos).

Deberías obtener un resultado similar al siguiente:

La página web de Awwvision, en la que se muestran varios mosaicos de fotos

Tarea 7. Pon a prueba tus conocimientos

Aquí tienes una pregunta de opción múltiple para reforzar tus conocimientos sobre los conceptos de este lab. Intenta responderla correctamente.

¡Felicitaciones!

Usaste Kubernetes y la API de Cloud Vision para clasificar imágenes del subreddit /r/aww de Reddit y mostraste los resultados en una app web.

Finaliza la Quest

Este lab de autoaprendizaje es parte de las Quests Integrate with Machine Learning APIs y Advanced ML: ML Infrastructure. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en cualquier Quest que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Prueba otro lab sobre las APIs de aprendizaje automático, como Pruebas de carga distribuida con Kubernetes.

Próximos pasos y más información

Para obtener más información, regístrate en el curso completo de Coursera sobre aprendizaje automático

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: 6 de octubre de 2023

Prueba más reciente del lab: 9 de octubre 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.