Kubernetes - Emplois

La fonction principale d'un travail est de créer un ou plusieurs pods et des pistes sur le succès des pods. Ils garantissent que le nombre spécifié de pods est terminé avec succès. Lorsqu'un nombre spécifié d'exécutions réussies de pods est terminé, le travail est considéré comme terminé.

Créer un travail

Utilisez la commande suivante pour créer un travail -

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

Dans le code ci-dessus, nous avons défini -

  • kind: Job → Nous avons défini le genre comme Job qui dira kubectl que le yaml Le fichier utilisé est de créer un pod de type de travail.

  • Name:py → C'est le nom du modèle que nous utilisons et la spécification définit le modèle.

  • name: py → nous avons donné un nom comme py sous la spécification du conteneur qui permet d'identifier le pod qui va être créé à partir de celui-ci.

  • Image: python → l'image que nous allons extraire pour créer le conteneur qui fonctionnera à l'intérieur du pod.

  • restartPolicy: Never →Cette condition de redémarrage d'image est donnée comme jamais ce qui signifie que si le conteneur est tué ou s'il est faux, il ne redémarrera pas de lui-même.

Nous allons créer le travail en utilisant la commande suivante avec yaml qui est enregistré avec le nom py.yaml.

$ kubectl create –f py.yaml

La commande ci-dessus créera un travail. Si vous souhaitez vérifier l'état d'un travail, utilisez la commande suivante.

$ kubectl describe jobs/py

La commande ci-dessus créera un travail. Si vous souhaitez vérifier l'état d'un travail, utilisez la commande suivante.

Travail planifié

Tâche planifiée dans Kubernetes utilise Cronetes, qui prend la tâche Kubernetes et les lance dans le cluster Kubernetes.

  • La planification d'un travail exécutera un pod à un moment donné.
  • Un job parodique est créé pour lui qui s'invoque automatiquement.

Note - La fonctionnalité d'une tâche planifiée est prise en charge par la version 1.4 et l'API betch / v2alpha 1 est activée en passant le –runtime-config=batch/v2alpha1 tout en mettant en place le serveur API.

Nous utiliserons le même yaml que nous avons utilisé pour créer le travail et en faire un travail planifié.

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

Dans le code ci-dessus, nous avons défini -

  • schedule: h/30 * * * * ? → Pour planifier l'exécution du travail toutes les 30 minutes.

  • /bin/sh: Cela entrera dans le conteneur avec / bin / sh

  • ps –eaf → Exécutera la commande ps -eaf sur la machine et listera tous les processus en cours dans un conteneur.

Ce concept de travail planifié est utile lorsque nous essayons de créer et d'exécuter un ensemble de tâches à un moment donné, puis de terminer le processus.