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.
Accede a Qwiklabs desde una ventana de incógnito.
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.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
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.
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.
En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.
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:
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:
Creemos un trabajo de muestra que calcule el valor de Pi en 2,000 lugares y, luego, imprima el resultado.
Crea y abre un archivo llamado example-job.yaml con nano usando el siguiente comando:
nano example-job.yaml
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
Presiona Ctrl + O y, luego, Intro para guardar el archivo editado.
Presiona Ctrl + X para salir del editor de texto nano.
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
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:
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.
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
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.
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!”.
Crea y abre un archivo llamado example-cronjob.yaml con nano usando el siguiente comando:
nano example-cronjob.yaml
Una vez que nano se abra, pega lo siguiente en el archivo example-cronjob.yaml:
Presiona Ctrl + O y, luego, Intro para guardar el archivo editado.
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
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
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
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:
Tome nota del nombre del Pod que usó este trabajo.
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!
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.
Para borrar todos estos trabajos, ejecute el siguiente comando:
kubectl delete cronjob hello
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.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
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.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
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.
Architecting with Google Kubernetes Engine: Cómo implementar objetos Job en Google Kubernetes Engine
Duración:
9 min de configuración
·
Acceso por 60 min
·
60 min para completar