Jobs y cronjobs en kubernetes

En kubernetes también se pueden crear tareas programadas con crons o correr una tarea simple, que realizarla a mano sería más costoso, como por ejemplo dejar preinstalado wordpress en un volumen. Para estos menesteres están los jobs y los cronjobs.

El siguiente ejemplo es un job que nos deja una instalación de wordpress en el volumen files-pvc, que después se puede «atachar» a un pod de apache (por ejemplo).

apiVersion: batch/v1
kind: Job
metadata:
  name: wordpress-install
spec:
 template:
  spec:
   containers:
   - name: install
     image: bash
     command: ["/bin/sh", "-c"]
     args:
     - cd /root; wget https://wordpress.org/latest.tar.gz && tar -xzvf latest.tar.gz && cp -r wordpress/* /var/www/html/ && \
       cd /root; rm -rf latest.tar.gz wordpress
     volumeMounts:
     - name: files-pvc
       mountPath: "/var/www/html"
  volumes:
  - name: files-pvc
    persistentVolumeClaim:
     claimName: files-pvc
     restartPolicy: OnFailure

En el siguiente ejemplo, ejecutamos un cron cada 5 minutos, que hace un curl a un cron de wordpress:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: cron wordpress
spec:
  schedule: "*/5 * * * *"
  jobTemplate:
   spec:
    template:
     spec:
      containers:
      - name: cron_wp
        image: bash
        args:
        - /bin/sh
        - -c
        - curl http://www.miweb.com/wp-cron.php
        restartPolicy: OnFailure

Te recordamos que en Occentus Network somos Kubernetes Certified Service Provider (KCSP) y que gracias a esta certificación ofrecemos Kubernetes Service, así como consultoría y formación a empresas que eligen Kubernetes.

Artículos relacionados