arrow_back

Desarrollo de aplicaciones: Cómo implementar la aplicación en Kubernetes Engine - Python

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Desarrollo de aplicaciones: Cómo implementar la aplicación en Kubernetes Engine - Python

Lab 50 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

GSP188

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

Google Kubernetes Engine proporciona un entorno administrado para implementar, administrar y escalar sus 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 su 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á la aplicación Quiz en Kubernetes Engine aprovechando los recursos de Google Cloud Platform, entre ellos Container Builder y Container Registry, y los recursos de Kubernetes, que incluyen implementaciones, pods y servicios.

Objetivos

En este lab, aprenderá a realizar las siguientes tareas:

  • Crear Dockerfiles para empaquetar el código frontend y backend de la aplicación Quiz para la implementación
  • Aprovechar Container Builder para producir imágenes de Docker
  • Aprovisionar un clúster de Kubernetes Engine para alojar la aplicación Quiz
  • Utilizar las implementaciones de Kubernetes para aprovisionar pods replicados en Kubernetes Engine
  • Aprovechar un servicio de Kubernetes para aprovisionar un balanceador de cargas al frontend del cuestionario

Configuración de Qwiklabs

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

  1. 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
  2. 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.
  3. 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.

  4. Haz clic en Siguiente.

  5. 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.

  6. 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.
  7. 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. Ícono del menú de navegación y campo de búsqueda

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.

  2. Haz clic para avanzar por las siguientes ventanas:

    • Continúa en la ventana de información de Cloud Shell.
    • Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API 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 {{{project_0.project_id | "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.

Resultado:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} 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_0.project_id | "PROJECT_ID"}}} Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.

Inicie el editor de código de Cloud Shell

En Cloud Shell, haga clic en el ícono de Abrir Editor (que tiene forma de lápiz) para iniciar el editor de código.

editor.png

Cómo preparar la aplicación Quiz

En esta sección, accederá a Cloud Shell, clonará el repositorio de Git que contiene la aplicación Quiz, configurará las variables del entorno y ejecutará la aplicación.

Clone el código fuente en Cloud Shell

Haga clic en Abrir Terminal y clone el repositorio de laboratorio

git clone https://github.com/GoogleCloudPlatform/training-data-analyst

Cree un enlace suave como acceso directo al directorio de trabajo.

ln -s ~/training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine ~/kubernetesengine

Configure la aplicación Quiz

Cambie el directorio de trabajo.

cd ~/kubernetesengine/start

Configure la aplicación Quiz.

. prepare_environment.sh

Este archivo de secuencia de comandos realiza lo siguiente:

  • Crea una aplicación de Google App Engine.
  • Exporta las variables del entorno GCLOUD_PROJECT y GCLOUD_BUCKET.
  • Actualiza pip y ejecuta pip install -r requirements.txt.
  • Crea entidades en Google Cloud Datastore.
  • Crea un tema de Google Cloud Pub/Sub.
  • Crea una instancia, una base de datos y una tabla de Cloud Spanner.
  • Imprime el ID del proyecto de Google Cloud Platform.

La aplicación Quiz se configurará cuando vea el siguiente mensaje:

Ejemplo de mensaje de salida.

Creating Cloud Pub/Sub topic
Created topic [projects/qwiklabs-gcp-92b7e5716e0cbf7e/topics/feedback].
Created subscription [projects/qwiklabs-gcp-92b7e5716e0cbf7e/subscriptions/worker-subscription].
Creating Cloud Spanner Instance, Database, and Table
Creating instance...done.
Creating database...done.
Project ID: qwiklabs-gcp-92b7e5716e0cbf7e

Haga clic en Revisar mi progreso para verificar el objetivo.

Configurar la aplicación Quiz

Cómo revisar el código

En esta sección examine los archivos de la aplicación.

Para ver y editar archivos, puede usar el editor Shell que están instalados en el Cloud Shell, como nano o vim o el editor del código Cloud Shell. Este laboratorio usa el codigo editor Cloud Shell.

En este lab se usa el editor de código de Cloud Shell para revisar el código de la aplicación Quiz.

Examine el código

Navegue a training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine/start.

La estructura de carpetas de la aplicación Quiz refleja el modo en que se implementará en Kubernetes Engine.

La aplicación web está en una carpeta llamada frontend.

El código de aplicación de la instancia de trabajador que se subscribe a Cloud Pub/Sub y procesa los mensajes se encuentra en una carpeta llamada backend.

Hay archivos de configuración de Docker (un Dockerfile en las carpetas frontend y backend) y archivos .yaml de Kubernetes Engine para backend-deployment y para frontend-deployment.

Cómo crear y conectar a un clúster de Kubernetes Engine

Cree un clúster de Kubernetes Engine

  1. En Cloud Platform Console, haga clic en el menú de navegación > Kubernetes Engine > Clústeres.

    kubernetes-cluster.png

  2. Haga clic en Crear cluster.

  3. Configure el Cluster. Establezca los siguientes campos en los valores proporcionados, deje todos los demás valores predeterminados.

Propiedad

Valor

Nombre

quiz-cluster

Zone

us-central1-b

default Pool > Seguridad > Permiso de acceso

Seleccione Permitir el acceso completo a todas las API de Cloud, y haga clic en Guardar.

  1. Haga clic en Crear. El aprovisionamiento del clúster lleva un par de minutos.

Haga clic en Revisar mi progreso para verificar el objetivo.

Crear un clúster de Kubernetes engine

Conéctese al clúster

En esta sección, conectará la aplicación Quiz al clúster de Kubernetes.

  1. Cuando el clúster esté listo, haga clic en Conectar.

kubernetes_cluster_ready.png

  1. En Conectarse al clúster, haga clic en Ejecutar en Cloud Shell. Presione Intro en Cloud Shell para ejecutar el comando propagado previamente que es similar a gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project [Project-ID]

  2. Ejecute el siguiente comando para mostrar los pods del clúster:

kubectl get pods

La respuesta debería ser No resources found porque no hay pods en el clúster. Esto confirma que configuró la seguridad de modo que la herramienta de línea de comandos kubectl realice operaciones para el clúster.

Cómo compilar imágenes de Docker con Container Builder

En esta sección, creará un Dockerfile para la aplicación frontend y backend y luego utilizara un Container Builder para compilar imágenes y almacenarlas en Container Registry.

Cree el documento Dockerfile para el código frontend y backend

En el editor de código de Cloud Shell, abra frontend/Dockerfile. Ahora agregará un bloque de código que hace lo siguiente:

  • Ingresa el comando Dockerfile para inicializar la creación de una imagen de Docker personalizada con la imagen de Python App Engine de Google como punto de partida.
  • Escribe los comandos Dockerfile para activar un entorno virtual.
  • Escribe el comando Dockerfile para ejecutar pip install como parte del proceso de creación.
  • Escribe el comando Dockerfile para agregar el contenido de la carpeta actual en la ruta /app dentro del contenedor.
  • Completa el documento Dockerfile. Para esto, ingresa la instrucción gunicorn ..., que se ejecuta junto con el contenedor. Gunicorn (Green Unicorn) es un servidor HTTP compatible con la especificación de interfaz de puerta de enlace del servidor web (WSGI) de Python.

Ahora, copie y pegue lo siguiente en Dockerfile:

FROM gcr.io/google_appengine/python

RUN virtualenv -p python3.7 /env

ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH

ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt

ADD . /app

CMD gunicorn -b 0.0.0.0:$PORT quiz:app

Abra el archivo backend/Dockerfile y copie y pegue el siguiente código:

FROM gcr.io/google_appengine/python

RUN virtualenv -p python3.7 /env

ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH

ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt

ADD . /app

CMD python -m quiz.console.worker

Cree imágenes de Docker con Container Builder

  1. En Cloud Shell, asegúrese de estar en la carpeta Start:

  2. cd ~/kubernetesengine/start
    
  3. Ejecute el siguiente comando para compilar la imagen de Docker the Frontend:

gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-frontend ./frontend/

Los archivos se habilitan a etapa en Cloud Storage y se compila una imagen de Docker que se almacena en Container Registry. Esto lleva unos cuantos minutos.

Ignore cualquier mensaje sobre incompatibilidades que vea en los mensajes de salida.

  1. Ejecute el siguiente comando para compilar la imagen de Docker de backend:

gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-backend ./backend/

Cuando la imagen de Docker de backend esté lista, verá estos últimos mensajes:

DONE
-----------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION  SOURCE
                                                             IMAGES
   STATUS
be0326f4-3f6f-42d6-850f-547e260dd4d7  2018-06-13T22:20:16+00:00  50S       gs://qwiklabs-gcp-3f89d0745056ee31_cloudbuil
d/source/1528928414.79-4914d2a972f74e188f40ced135662b7d.tgz  gcr.io/qwiklabs-gcp-3f89d0745056ee31/quiz-backend (+1 more
)  SUCCESS
  1. En el menú de navegación de Cloud Platform Console, haga clic en Container Registry. Debería ver dos pods: quiz-frontend y quiz-backend.

backend_frontend.png

  1. Haga clic en quiz-frontend.

container-image.png

Haga clic en Revisar mi progreso para verificar el objetivo.

Construir imágenes de Docker con Container Builder

Cómo crear recursos de implementación y servicio de Kubernetes

En esta sección, modificará los archivos de plantilla yaml que contienen la especificación para los recursos de implementación y servicio de Kubernetes; luego, creará los recursos en el clúster de Kubernetes Engine.

Cree un archivo de implementación de Kubernetes

  1. En el editor de código de Cloud Shell, abra el archivo frontend-deployment.yaml.
  1. Reemplace los marcadores de posición en el archivo frontend-deployment.yaml con los siguientes valores:

Nombre del marcador de posición

Valor

[GCLOUD_PROJECT]

ID del proyecto de GCP
(Para ver el ID del proyecto, ingrese
echo $GCLOUD_PROJECT en Cloud Shell)

[GCLOUD_BUCKET]

Nombre del depósito de Cloud Storage para el depósito de medios de su proyecto
(Para ver el nombre del depósito, ingrese
echo $GCLOUD_BUCKET en Cloud Shell)

[FRONTEND_IMAGE_IDENTIFIER]

La imagen de frontend identificada con la forma gcr.io/[Project_ID]/quiz-frontend

  1. Guarde el archivo.
  2. Reemplace 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

[GCLOUD_BUCKET]

ID del depósito de Cloud Storage para el depósito de medios de su proyecto

[BACKEND_IMAGE_IDENTIFIER]

La imagen de backend identificada con la forma gcr.io/[Project_ID]/quiz-backend

  1. Guarde el archivo.
  2. Revise el contenido del archivo frontend-service.yaml.

Ejecute los archivos de implementación y servicio

  1. En Cloud Shell, aprovisione la implementación de quiz-frontend.

kubectl create -f ./frontend-deployment.yaml
  1. Aprovisione la implementación de quiz-backend.

kubectl create -f ./backend-deployment.yaml
  1. Aprovisione el servicio de quiz-frontend.

kubectl create -f ./frontend-service.yaml

Haga clic en Revisar mi progreso para verificar el objetivo.

Crear implementación de Kubernetes y Recursos de Servicio

Cómo probar la aplicación Quiz

En esta sección, revisará los recursos de pods y servicios que implementó, y navegará a la aplicación Quiz.

Revise los recursos implementados

  1. En el menú de navegación de Google Cloud Platform Console, haga clic en Kubernetes Engine.
  2. Haga clic en Cargas de trabajo.
  1. Haga clic en quiz-frontend en la sección Grupos administrados, donde hay tres pods quiz-frontend.

  2. En la sección de Servicios cerca de la parte inferior, busque la sección Endpoints, copie la dirección IP y péguela en el campo URL de una nueva pestaña o ventana del navegador:

app.png

  1. Esto abre la aplicación Quiz, lo que significa que desplegó con éxito la aplicación! Puede finalizar su laboratorio aquí o usar el resto de tiempo para construir algunos cuestionarios.

¡Felicitaciones!

Esto concluye los labs de autoaprendizaje Desarrollo de aplicaciones: Cómo implementar la aplicación en Kubernetes Engine - Python. Ha aprovechado los recursos GCP y los recursos Kubenetes para implementar una aplicación quiz.

fbd1fd568c488208.pngimg/CloudDevelopment_125.png

Finalice su Quest

Este lab de autoaprendizaje es parte de los Quest Desarrollo de aplicaciones - Python y Cloud Development. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completa esta Quest, obtendrá la insignia que se muestra arriba como reconocimiento de su logro. Puede hacer públicas sus insignias y agregar vínculos a ellas en su currículum en línea o en sus cuentas de redes sociales. Inscríbase en esta Quest y obtenga un crédito inmediato de finalización si realizó este lab. Consulte otras Quests de Qwiklabs disponibles.

Próximos pasos/Más información

Obtenga más información acerca de Kubernetes Engine.

Última actualización del manual: 16 de octubre de 2020
Prueba más reciente del lab: 16 de octubre de 2020

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.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

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

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el 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.