arrow_back

Cómo implementar objetos Job en Google Kubernetes Engine

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

Cómo implementar objetos Job en Google Kubernetes Engine

Lab 1 hora universal_currency_alt 5 créditos 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

Descripción general

En este lab, definirá y ejecutará objetos Job y CronJob.

En GKE, Job es un objeto de controlador que representa una tarea limitada. Los objetos Job administran una tarea a medida que se ejecuta hasta su finalización, en vez de administrar un estado deseado en curso, como mantener la cantidad total de Pods en ejecución.

Los objetos CronJob realizan tareas limitadas y relacionadas con la hora, que se ejecutan una o varias veces a la hora que usted especifica mediante el uso de objetos Job para finalizar sus tareas.

Objetivos

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

  • Definir, implementar y limpiar un objeto Job de GKE
  • Definir, implementar y limpiar un objeto CronJob de GKE

Configuración del lab

Accede a Qwiklabs

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Después de completar los pasos iniciales de acceso, aparecerá el panel del proyecto.

Activa Google Cloud Shell

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

Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell destacado

  2. Haz clic en Continuar.

El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

ID del proyecto destacado en la terminal de Cloud Shell

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.

  • Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list

Resultado:

Credentialed accounts: - @.com (active)

Resultado de ejemplo:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puedes solicitar el ID del proyecto con este comando:
gcloud config list project

Resultado:

[core] project =

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: La documentación completa de gcloud está disponible en la guía de descripción general de gcloud CLI .

Tarea 1: Defina e implemente un manifiesto del objeto Job

En GKE, Job es un objeto de controlador que representa una tarea limitada.

En esta tarea, creará un objeto Job, inspeccionará su estado y luego lo quitará.

Conéctate al clúster de Google Kubernetes Engine del lab

  1. En Cloud Shell, escribe el siguiente comando para establecer la variable de entorno para la zona y el nombre del clúster:
export my_region={{{project_0.default_region | "REGION"}}} export my_cluster=autopilot-cluster-1
  1. Configura el completado de línea de comando de kubectl en Cloud Shell:
source <(kubectl completion bash)
  1. En Cloud Shell, configura el acceso a tu clúster para la herramienta de línea de comandos de kubectl con el siguiente comando:
gcloud container clusters get-credentials $my_cluster --region $my_region

Crea y ejecuta un trabajo

Creemos un trabajo de muestra que calcule el valor de Pi en 2,000 lugares y, luego, imprima el resultado.

  1. Crea y abre un archivo llamado example-job.yaml con nano usando el siguiente comando:
nano example-job.yaml
  1. Una vez que nano se abra, pega lo siguiente en el archivo example-job.yaml:
apiVersion: batch/v1 kind: Job metadata: # Unique key of the Job instance name: example-job spec: template: metadata: name: example-job spec: containers: - name: pi image: perl:5.34 command: ["perl"] args: ["-Mbignum=bpi", "-wle", "print bpi(2000)"] # Do not restart containers after they exit restartPolicy: Never
  1. Presiona Ctrl + O y, luego, Intro para guardar el archivo editado.

  2. Presiona Ctrl + X para salir del editor de texto nano.

  3. Para crear un objeto Job a partir de este archivo, ejecuta el siguiente comando:

kubectl apply -f example-job.yaml

Haga clic en Revisar mi progreso para verificar el objetivo. Crear y ejecutar un objeto Job

  1. Para verificar el estado de este objeto Job, ejecute el siguiente comando:
kubectl describe job example-job

Verás los detalles del trabajo, incluidos los estados del Pod que indican cuántos trabajos todavía se están ejecutando, cuántos se completaron correctamente y cuántos fallaron:

... Start Time: Thu, 20 Dec 2018 14:34:09 +0000 Pods Statuses: 0 Running / 1 Succeeded / 0 Failed ...
  1. Para ver todos los recursos del Pod en su clúster, incluidos los Pods que creó el objeto Job y que se completaron, ejecute el siguiente comando:
kubectl get pods

El nombre de tu Pod podría ser diferente del resultado de ejemplo:

NAME READY STATUS RESTARTS AGE example-job-sqljc 0/1 Completed 0 1m

Toma nota de uno de los nombres del Pod.

Limpia y borra el trabajo

Cuando se completa, el objeto Job deja de crear Pods. El objeto de la API del Job no se quita cuando se completa. Esto permite que vea su estado. Los Pods que crea el Job no se borran, pero se finalizan. La retención de los Pods te permite ver tus registros, así como interactuar con ellos.

  1. Para obtener una lista de los objetos Job del clúster, ejecuta el siguiente comando:
kubectl get jobs

El resultado se debería ver como el ejemplo:

NAME COMPLETIONS DURATION AGE example-job 1/1 75s 2m5s
  1. Ingresa el siguiente comando para recuperar el archivo de registro del Pod que ejecutó el Job. Debes reemplazar [POD-NAME] por el nombre del Pod que registraste en la última tarea.
kubectl logs [POD-NAME]

El resultado mostrará que el Job escribió los primeros dos mil dígitos de pi en el registro del Pod.

  1. Para borrar el Job, ejecute el siguiente comando:
kubectl delete job example-job

Si intenta consultar los registros nuevamente, el comando fallará porque ya no se puede encontrar el Pod.

Tarea 2: Defina e implemente un manifiesto del CronJob

Puede crear objetos CronJob para realizar tareas limitadas y relacionadas con la hora, que se ejecutan una o varias veces a la hora que usted especifica.

En esta tarea, crearás y ejecutarás un CronJob; luego, limpiarás y borrarás el objeto Job.

Define un manifiesto de CronJob

Este objeto CronJob implementa un nuevo contenedor cada minuto que imprime la hora, la fecha y “Hello, World!”.

  1. Crea y abre un archivo llamado example-cronjob.yaml con nano usando el siguiente comando:
nano example-cronjob.yaml
  1. Una vez que nano se abra, pega lo siguiente en el archivo example-cronjob.yaml:
apiVersion: batch/v1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo "Hello, World!" restartPolicy: OnFailure
  1. Presiona Ctrl + O y, luego, Intro para guardar el archivo editado.

  2. Presiona Ctrl + X para salir del editor de texto nano.

Nota: Los objetos CronJob usan el campo schedule requerido, que acepta una hora en el formato crontab estándar de Unix.

Todas las horas de los CronJobs están en UTC:
  • El primer valor indica el minuto (entre 0 y 59).
  • El segundo valor indica la hora (entre 0 y 23).
  • El tercer valor indica el día del mes (entre 1 y 31).
  • El cuarto valor indica el mes (entre 1 y 12).
  • El quinto valor indica el día de la semana (entre 0 y 6).

El campo schedule también acepta * y ? como comodines. La combinación de / con los rangos especifica que la tarea debe repetirse a intervalos regulares. En el ejemplo, */1 * * * * indica que la tarea debe repetirse cada minuto de cada día de cada mes.

Crea y ejecuta un CronJob

  1. Para crear un objeto Job a partir de este archivo, ejecuta el siguiente comando:
kubectl apply -f example-cronjob.yaml

Haga clic en Revisar mi progreso para verificar el objetivo. Crear y ejecutar un objeto CronJob

  1. Para obtener una lista de los objetos Job del clúster, ejecuta el siguiente comando:
kubectl get jobs

El resultado se debería ver como el ejemplo:

NAME COMPLETIONS DURATION AGE hello-1545013620 1/1 2s 18s
  1. Para verificar el estado de este Job, ejecute el siguiente comando, en el que [job_name] corresponde al nombre de su trabajo:
kubectl describe job [job_name]

Verás los detalles del trabajo, incluidos los estados del Pod que muestran que se ejecutó una instancia de este trabajo:

... Start Time: Thu, 20 Dec 2018 15:24:03 +0000 Pods Statuses: 0 Running / 1 Succeeded / 0 Failed ... ...Created pod: hello-1545319920-twkhl
  1. Tome nota del nombre del Pod que usó este trabajo.
  2. Consulte los registros del Pod a fin de ver el resultado del objeto Job. Reemplace [POD-NAME] por el nombre del Pod que registró en el último paso.
kubectl logs [POD-NAME]

Esto mostrará el resultado de la secuencia de comandos de shell configurada en el CronJob:

Fri Jan 28 11:12:01 UTC 2022 Hello, World!
  1. Para ver todos los recursos del trabajo en su clúster, incluidos todos los Pods que creó el CronJob y que se completaron, ejecute el siguiente comando:
kubectl get jobs

Los nombres de tus trabajos podrían ser diferentes de los resultados de ejemplo. De forma predeterminada, Kubernetes establece los límites del historial de objetos Job para que solo se conserven los últimos tres trabajos exitosos y fallidos. Por lo tanto, esta lista solo contendrá tres de los cuatro trabajos más recientes:

NAME COMPLETIONS DURATION AGE hello-27389472 1/1 1s 2m55s hello-27389473 1/1 1s 115s hello-27389474 1/1 1s 55s

Limpie y borre el objeto Job

Para detener el CronJob y limpiar los objetos Job asociados con él, debe borrar el CronJob.

  1. Para borrar todos estos trabajos, ejecute el siguiente comando:
kubectl delete cronjob hello
  1. Para verificar que los trabajos se hayan borrado, ejecute el siguiente comando:
kubectl get jobs

El resultado se debería ver como el ejemplo:

No resources found in default namespace.

Se quitaron todos los objetos Job.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

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