Skip to main content

Batch

 

Un cluster de Kubernetes no solo nos vale para desplegar servidores, también para ejecutar trabajos del tipo 'batch'(Es decir, que ejecutan una tarea y se paran). En este caso lo haríamos de la siguiente manera(Para calcular los 200 primeros dígitos de pi):

apiVersion: batch/v1
kind: Job
metadata:
  name: job-pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(200)"]
      restartPolicy: Never

En caso de que la tarea se tenga que ejecutar regularmente, por ejemplo, una copia de seguridad o el cálculo de unos reports podemos crear un 'CronJob' donde nos permite programar(schedule) cada cuanto se ejecutará el trabajo:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: ubuntu
            args:
            - /bin/sh
            - -c
            - date; echo Hola Kubernetes
          restartPolicy: OnFailure