Início
Criando um Job
Escalando um Job
Configurando a duração máxima
Início
Um job, ao contrario de um deployment (ou controlador de replicação), pode rodar inúmeros pods para terminar sua tarefa. Um job sabe todo o progresso de uma tarefa e atualiza seu status com informações de pods active, succeeded e failed pods. Deletar um job vai excluir todos os pods que foram criados. Jobs fazem parte da extensão do Kubernetes API, que pode ser gerenciado com o comando oc assim como outros tipos de objetos.
Veja a documentação do Kubernetes para mais informações sobre jobs.
Criando um Job
A configuração de um job consiste nas próximas partes:
- O template de um pod, que descreve a aplicação que o pod vai criar.
- Um parâmetro opcional paralelism, que especifica quantos pods rodando em paralelo irão executar o job. Se não for especificado, o padrão será o valor no parâmetro completions.
- Um parâmetro opcional completions, especificando quantos pods são necessários para completar um job. Se não for especificado, o valor default 1 sera utilizado.
A seguir um exemplo de um job:
apiVersion: extensions/v1beta1
kind: Job
metadata:
name: pi
spec:
selector:
matchLabels:
app: pi
parallelism: 1
completions: 1
template:
metadata:
name: pi
labels:
app: pi
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
- Seleciona o label do pod a ser executado. Usa os generalized label selectors.
- Valor opcional para o número de pods que um job deve executar em paralelo, defaults para o completions.
- Valor opcional para o número de pods completos é preciso para marcar um job como completo, default é 1.
- Template para o controlador criar o pod.
Escalando um job
Um job pode ser escalado para um mais ou menos através do comando oc scale com opção --replicas, que neste caso de jobs vai modificar o parâmetro spec.parallelism. Isto vai resultar na modificação do número de pods rodando em paralelo, executando um job.
O próximo comando usa o exemplo do job anterior e escala para três:
$ oc scale job pi --replicas=3
![]() |
Controladores de replicação também usam o comando oc scale com a opção --replicas, mas ao contrário, ele alterar o parâmetro replicas da configuração de um controlador de replicação. |
Configurando a duração máxima
Quando for definir um Job, você pode definir o máximo durante a configuração, setando o campo activeDeadlineSeconds. É especificado em segundos e não é definido por default. Quando não definido, a duração máxima não é aplicada.
A duração máxima é contada a partir da criação do primeiro pod, e define quanto tempo um job pode ficar ativo. Monitora o progresso todo tempo de uma execução e é irrelevante ao número de completions (número de pods que precisam para executar uma tarefa). Depois de atingir o tempo especificado para timeout, o job é terminado pelo OpenShift.
O próximo exemplo exibe parte de um Job especificando o campo activeDeadlineSeconds para 30 minutos:
{
"spec" : {
"activeDeadlineSeconds" : 1800,
}
}
Comentários
0 comentário
Por favor, entre para comentar.