Ajustar os valores de tempo limite do job

Se os jobs estiverem expirando e você acreditar que o tempo limite não se deve a um problema subjacente na instalação, aumente o intervalo do tempo limite. Neste documento, descrevemos como ajustar os intervalos de tempo limite para jobs de máquina e jobs em lote com anotações na especificação de configuração.

A GDCV para comandos e rotinas Bare Metal se enquadram em duas categorias: jobs de máquina e jobs em lote. Muitas coisas podem afetar o tempo necessário para que um job seja concluído, como configuração de hardware, configuração de rede e de cluster. O GKE em Bare Metal tem tempos limite padrão para acomodar instalações típicas.

Veja alguns exemplos de onde é possível encontrar mensagens de erro de tempo limite do job:

  • Mensagem de erro de tempo limite do job de máquina (agrupada para facilitar a leitura) de um registro de simulação. Por exemplo, bmctl-workspace/cluster1/logs/preflight-20210501-000426/172.18.0.4

    Pod:172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st
    Result:Failed Reason:DeadlineExceeded Time:Wed Feb  3 16:59:56 2021
    
  • A saída de kubectl logs de um pod com falha pode exibir uma mensagem DeadlineExceeded semelhante (agrupada):

    cluster-cluster1
    172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st  ●  0/1
    0 DeadlineExceeded  192.168.122.180  bmctl-control-plane  7m12
    

Como ajustar o intervalo de tempo limite do job da máquina

Um job de máquina é uma rotina, como uma verificação de simulação executada em uma única máquina. Os jobs de máquina do GKE em Bare Metal têm um tempo limite padrão de 900 segundos ou 15 minutos. O intervalo de tempo limite do job de máquina é ajustado com a anotação baremetal.cluster.gke.io/machine-job-deadline-seconds no arquivo de configuração do cluster.

No exemplo a seguir, o intervalo de tempo limite do job de máquina é definido como 1.800 segundos ou 30 minutos:

   apiVersion: baremetal.cluster.gke.io/v1
   kind: Cluster
   metadata:
     name: cluster1
     namespace: cluster-cluster1
     annotations:
       baremetal.cluster.gke.io/machine-job-deadline-seconds: "1800"
   spec:
   ...

O valor do intervalo de tempo limite será aplicado quando você criar novos clusters com bmctl create cluster ou fizer upgrade de clusters existentes com bmctl upgrade cluster. O novo intervalo será usado para todos os jobs de máquina única, incluindo bmctl check preflight, bmctl check -c <cluster-name>, entre outros.

Como ajustar o intervalo de tempo limite do job em lote

Um job em lote é uma rotina que é executada em várias máquinas, como uma verificação de simulação de rede. O intervalo de tempo limite padrão para jobs do GKE em Bare Metal depende do número de máquinas na rede. O intervalo de tempo limite padrão é de 900 segundos, mais 20 segundos para cada máquina extra. Portanto, se o job em lote for executado em 60 máquinas, o intervalo de tempo limite padrão será de 2.100 segundos (900 + 20 * 60 = 2.100) ou 35 minutos. O intervalo de tempo limite do job em lote é ajustado com a anotação baremetal.cluster.gke.io/batch-job-deadline-seconds no arquivo de configuração do cluster.

O exemplo a seguir define o intervalo de tempo limite do job em lote como 10.800 segundos ou 3 horas:

   apiVersion: baremetal.cluster.gke.io/v1
   kind: Cluster
   metadata:
     name: cluster1
     namespace: cluster-cluster1
     annotations:
       baremetal.cluster.gke.io/batch-job-deadline-seconds: "10800"
   spec:
   ...

O valor do intervalo de tempo limite será aplicado quando você criar novos clusters com bmctl create cluster ou fizer upgrade de clusters existentes com bmctl upgrade cluster.