Kubernetes - Lavori

La funzione principale di un lavoro è creare uno o più pod e tenere traccia del successo dei pod. Garantiscono che il numero specificato di pod venga completato correttamente. Quando viene completato un numero specificato di esecuzioni riuscite di pod, il lavoro viene considerato completo.

Creazione di un lavoro

Utilizzare il seguente comando per creare un lavoro:

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

Nel codice sopra, abbiamo definito:

  • kind: Job → Abbiamo definito il tipo come Giobbe che dirà kubectl che il yaml file utilizzato è quello di creare un pod del tipo di lavoro.

  • Name:py → Questo è il nome del modello che stiamo utilizzando e la specifica definisce il modello.

  • name: py → abbiamo dato un nome come py sotto le specifiche del contenitore che aiuta a identificare il pod che verrà creato da esso.

  • Image: python → l'immagine che andremo a tirare per creare il contenitore che scorrerà all'interno del pod.

  • restartPolicy: Never →Questa condizione di riavvio dell'immagine viene data come mai, il che significa che se il contenitore viene ucciso o se è falso, non si riavvierà da solo.

Creeremo il lavoro utilizzando il seguente comando con yaml che viene salvato con il nome py.yaml.

$ kubectl create –f py.yaml

Il comando precedente creerà un lavoro. Se vuoi controllare lo stato di un lavoro, usa il seguente comando.

$ kubectl describe jobs/py

Il comando precedente creerà un lavoro. Se vuoi controllare lo stato di un lavoro, usa il seguente comando.

Lavoro pianificato

Il lavoro pianificato in Kubernetes utilizza Cronetes, che accetta il lavoro Kubernetes e lo avvia nel cluster Kubernetes.

  • La pianificazione di un lavoro eseguirà un pod in un punto di tempo specificato.
  • Per essa viene creato un lavoro parodico che si richiama automaticamente.

Note - La funzionalità di un lavoro pianificato è supportata dalla versione 1.4 e l'API betch / v2alpha 1 viene attivata passando il –runtime-config=batch/v2alpha1 durante la visualizzazione del server API.

Useremo lo stesso yaml che abbiamo usato per creare il lavoro e renderlo un lavoro pianificato.

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

Nel codice sopra, abbiamo definito:

  • schedule: h/30 * * * * ? → Per pianificare l'esecuzione del lavoro ogni 30 minuti.

  • /bin/sh: Questo entrerà nel contenitore con / bin / sh

  • ps –eaf → Eseguirà il comando ps -eaf sulla macchina ed elencherà tutti i processi in esecuzione all'interno di un contenitore.

Questo concetto di lavoro pianificato è utile quando si cerca di creare ed eseguire una serie di attività in un momento specifico e quindi si completa il processo.