Modificare i valori di timeout del job

Se i job in Google Distributed Cloud scadono e ritieni che il comportamento non sia dovuto a un problema di fondo con l'installazione, puoi aumentare l'intervallo di timeout. Questo documento descrive come regolare gli intervalli di timeout per i job di macchine e batch utilizzando le annotazioni nella specifica di configurazione.

Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud.

Tipi di job ed errori

Esistono due tipi di comandi e routine di Google Distributed Cloud: job di macchina e job batch. Molti fattori possono influire sul tempo necessario per completare un job, ad esempio la configurazione hardware, la configurazione di rete e la configurazione del cluster. Google Distributed Cloud ha timeout predefiniti pensati per supportare le installazioni tipiche.

Di seguito sono riportati alcuni esempi di messaggi di errore relativi al timeout del job:

  • Un messaggio di errore di timeout del job della macchina (con a capo per chiarezza) da un log di preflight comebmctl-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
    
  • L'output di kubectl logs per un pod non riuscito potrebbe mostrare un messaggio DeadlineExceeded simile (con a capo):

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

Modificare l'intervallo di timeout del job della macchina

Un job di macchina è una routine che viene eseguita su una sola macchina, ad esempio un controllo prevolo limitato a una singola macchina. I job di macchine Google Distributed Cloud hanno un timeout predefinito di 900 secondi o 15 minuti. Puoi modificare l'intervallo di tempo di interruzione del job della macchina con l'annotazione baremetal.cluster.gke.io/machine-job-deadline-seconds nel file di configurazione del cluster.

Nell'esempio seguente l'intervallo di timeout del job dell'automazione è impostato su 1800 secondi, ovvero 30 minuti:

   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:
   ...

Il valore dell'intervallo di timeout viene applicato quando crei nuovi cluster con bmctl create cluster o quando esegui l'upgrade di cluster esistenti con bmctl upgrade cluster. Il nuovo intervallo viene utilizzato per tutti i job su una singola macchina, tra cui bmctl check preflight, bmctl check -c CLUSTER_NAME e altri.

Modificare l'intervallo di timeout del job batch

Un job batch è una routine che viene eseguita su più macchine, ad esempio un controllo preflight della rete. L'intervallo di timeout predefinito per i job batch di Google Distributed Cloud dipende dal numero di macchine nella rete. L'intervallo di timeout predefinito è di 900 secondi, più altri 20 secondi per ogni macchina.

Ad esempio, se il job batch viene eseguito su 60 macchine, l'intervallo di timeout predefinito è di 2100 secondi (900 + (20 * 60) = 2100) o 35 minuti.

Puoi modificare l'intervallo di tempo di spegnimento del job batch con l'annotazione baremetal.cluster.gke.io/batch-job-deadline-seconds nel file di configurazione del cluster.

L'esempio seguente imposta l'intervallo di timeout del job batch su 10.800 secondi o 3 ore:

   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:
   ...

Il valore dell'intervallo di timeout viene applicato quando crei nuovi cluster con bmctl create cluster o quando esegui l'upgrade di cluster esistenti con bmctl upgrade cluster.

Passaggi successivi

Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud.