Ejecutar un cronjob (trabajo programado)
Además de los jobs (trabajos) únicos, Kubernetes también admite los cronjobs para ejecutar tareas según una programación regular. En este ejemplo, crearemos un cronjob que ejecute un comando cada minuto.
Crea un archivo llamado cronjob.yaml
en /home/labex/project/
con el siguiente contenido:
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello-cronjob
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
command: ["sh", "-c", 'echo "Hello, World!"']
restartPolicy: Never
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
En este archivo, definimos un cronjob llamado hello-cronjob
que ejecuta un comando cada minuto. El comando es el mismo que usamos en el primer ejemplo para imprimir "Hello, World!" en la consola.
Para crear el cronjob, ejecuta el siguiente comando:
kubectl apply -f cronjob.yaml
Puedes comprobar el estado del cronjob ejecutando el siguiente comando:
kubectl get cronjobs
Una vez que el cronjob esté en ejecución, puedes ver los registros (logs) del pod ejecutando el siguiente comando:
kubectl logs -f <POD_NAME>
Reemplaza <POD_NAME>
con el nombre de cualquier pod que haya sido creado por el cronjob, y puedes obtener el POD_NAME
con el comando kubectl get pod |grep hello-cronjob
.
¡Felicidades, has ejecutado con éxito un cronjob en Kubernetes!