Kubernetes - Empleos

La función principal de un trabajo es crear uno o más pods y pistas sobre el éxito de los pods. Se aseguran de que el número especificado de pods se complete correctamente. Cuando se completa un número específico de ejecuciones exitosas de pods, el trabajo se considera completo.

Crear un trabajo

Utilice el siguiente comando para crear un trabajo:

apiVersion: v1
kind: Job ------------------------> 1
metadata:
   name: py
   spec:
   template:
      metadata
      name: py -------> 2
      spec:
         containers:
            - name: py ------------------------> 3
            image: python----------> 4
            command: ["python", "SUCCESS"]
            restartPocliy: Never --------> 5

En el código anterior, hemos definido:

  • kind: Job → Hemos definido el tipo como Job que dirá kubectl que el yaml El archivo que se utiliza es para crear un pod de tipo de trabajo.

  • Name:py → Este es el nombre de la plantilla que estamos usando y la especificación define la plantilla.

  • name: py → hemos dado un nombre como py bajo la especificación del contenedor que ayuda a identificar el Pod que se creará a partir de él.

  • Image: python → la imagen que vamos a extraer para crear el contenedor que se ejecutará dentro del pod.

  • restartPolicy: Never →Esta condición de reinicio de la imagen se da como nunca, lo que significa que si el contenedor se mata o si es falso, entonces no se reiniciará.

Crearemos el trabajo usando el siguiente comando con yaml que se guarda con el nombre py.yaml.

$ kubectl create –f py.yaml

El comando anterior creará un trabajo. Si desea verificar el estado de un trabajo, use el siguiente comando.

$ kubectl describe jobs/py

El comando anterior creará un trabajo. Si desea verificar el estado de un trabajo, use el siguiente comando.

Trabajo programado

Trabajo programado en usos de Kubernetes Cronetes, que toma el trabajo de Kubernetes y lo lanza en el clúster de Kubernetes.

  • Al programar un trabajo, se ejecutará un pod en un momento específico.
  • Se crea para él un trabajo paródico que se invoca automáticamente.

Note - La función de un trabajo programado es compatible con la versión 1.4 y la API betch / v2alpha 1 se activa al pasar el –runtime-config=batch/v2alpha1 al abrir el servidor API.

Usaremos el mismo yaml que usamos para crear el trabajo y convertirlo en un trabajo programado.

apiVersion: v1
kind: Job
metadata:
   name: py
spec:
   schedule: h/30 * * * * ? -------------------> 1
   template:
      metadata
         name: py
      spec:
         containers:
         - name: py
         image: python
         args:
/bin/sh -------> 2
-c
ps –eaf ------------> 3
restartPocliy: OnFailure

En el código anterior, hemos definido:

  • schedule: h/30 * * * * ? → Para programar el trabajo para que se ejecute cada 30 minutos.

  • /bin/sh: Esto entrará en el contenedor con / bin / sh

  • ps –eaf → Ejecutará el comando ps -eaf en la máquina y enumerará todo el proceso en ejecución dentro de un contenedor.

Este concepto de trabajo programado es útil cuando intentamos crear y ejecutar un conjunto de tareas en un momento específico y luego completar el proceso.