Kubernetes - empregos

A principal função de um trabalho é criar um ou mais pods e rastrear o sucesso dos pods. Eles garantem que o número especificado de pods seja concluído com êxito. Quando um número especificado de execuções bem-sucedidas de pods é concluído, o trabalho é considerado concluído.

Criando um Trabalho

Use o seguinte comando para criar um trabalho -

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

No código acima, definimos -

  • kind: Job → Nós definimos o tipo de Jó que dirá kubectl que o yaml arquivo sendo usado é para criar um pod de tipo de trabalho.

  • Name:py → Este é o nome do modelo que estamos usando e a especificação define o modelo.

  • name: py → demos um nome como py sob as especificações do contêiner, o que ajuda a identificar o pod que será criado a partir dele.

  • Image: python → a imagem que vamos extrair para criar o contêiner que será executado dentro do pod.

  • restartPolicy: Never →Esta condição de reinicialização da imagem é dada como nunca, o que significa que se o contêiner for eliminado ou se for falso, ele não será reiniciado.

Iremos criar o trabalho usando o seguinte comando com yaml que é salvo com o nome py.yaml.

$ kubectl create –f py.yaml

O comando acima irá criar um trabalho. Se você deseja verificar o status de um trabalho, use o seguinte comando.

$ kubectl describe jobs/py

O comando acima irá criar um trabalho. Se você deseja verificar o status de um trabalho, use o seguinte comando.

Trabalho Programado

O trabalho agendado em Kubernetes usa Cronetes, que pega o job do Kubernetes e os inicia no cluster do Kubernetes.

  • O agendamento de um trabalho executará um pod em um determinado momento.
  • Um trabalho paródico é criado para ele, que se invoca automaticamente.

Note - O recurso de um trabalho agendado é suportado pela versão 1.4 e a API betch / v2alpha 1 é ativada passando o –runtime-config=batch/v2alpha1 ao abrir o servidor API.

Usaremos o mesmo yaml que usamos para criar o trabalho e torná-lo um trabalho agendado.

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

No código acima, definimos -

  • schedule: h/30 * * * * ? → Para agendar o trabalho para ser executado a cada 30 minutos.

  • /bin/sh: Isso vai entrar no contêiner com / bin / sh

  • ps –eaf → Irá executar o comando ps -eaf na máquina e listar todos os processos em execução dentro de um contêiner.

Este conceito de trabalho agendado é útil quando estamos tentando construir e executar um conjunto de tarefas em um determinado momento e, em seguida, concluir o processo.