Kubernetes Jobs

Jobs

Kubernetes bietet die Möglichkeit Pods mittels Jobs zu verwalten. Dadurch werden die Ressourcen der ICC nur solange reserviert wie auch die dazugehörigen Pods aktiv laufen. Diese Methode wird daher empfohlen zu nutzen, wenn lediglich bestimmte Aufgaben erfüllt werden sollen und keine permanenten Dienste notwendig sind. Im folgenden ist ein Beispiel aufgeführt, welches einen Job definiert, der π bis zur 2000 Nachkommastelle berechnet.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
apiVersion: batch/v1
kind: Job
metadata:
  name: pi
  namespace: <space-name>
spec:
  template:
    spec:
      containers:
        - name: pi
          image: perl
          command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4
  • Bei 'name' können Sie einen Namen frei für den Job vergeben.
  • mit dem Namen des Spaces ersetzen, in dem der Job laufen soll.
  • Unter dem Punkt 'spec -> Containers' muss das Docker Image angegeben werden, welches ausgeführt werden soll.
  • Bei 'backoffLimit' wird festgelegt wie häufig ein Job neugestartet werden soll, falls dieser fehlschlägt.

Die erzeugten Jobs können sich mithilfe des folgenden Befehls angezeigt werden lassen:

1
kubectl get jobs -n <space-name>

Werden weitere Informationen über den Job benötigt ist es möglich mittels des folgenden Befehls weitere Details anzeigen zulassen:

1
kubectl describe <Jobname> -n <space-name>

Das Ergebnis des Job kann sich, wenn das Ergebnis von der Anwendung über das Terminal ausgegeben wird, über den folgenden Befehl angezeigt werden lassen. Dies ist solange möglich wie auch der Job bzw. die dazugehörigen Pods existieren.

1
kubectl get logs <Jobname> -n <space-name>

Wird der Job nicht mehr benötigt, kann dieser mittels des folgenden Befehls gelöscht werden:

1
kubectl delete job <Job Name> -n <space-name>

oder

1
kubectl delete -f <yaml Datei> -n <space-name>