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 sottostante con l'installazione, puoi aumentare l'intervallo di timeout. Questo documento descrive come modificare gli intervalli di timeout per i job della macchina e i job batch utilizzando le annotazioni nella specifica di configurazione.

Tipi di job ed errori

Esistono due tipi di comandi e routine di Google Distributed Cloud: job della 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 che sono progettati per adattarsi alle installazioni tipiche.

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

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

    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 della macchina è una routine che viene eseguita solo su una macchina, ad esempio un controllo preflight limitato a una singola macchina. I job della macchina Google Distributed Cloud hanno un timeout predefinito di 900 secondi, ovvero 15 minuti. Puoi modificare l'intervallo di timeout del job della macchina con l'annotazione baremetal.cluster.gke.io/machine-job-deadline-seconds nel file di configurazione del cluster.

L'esempio seguente imposta l'intervallo di timeout del job della macchina 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 dei cluster esistenti con bmctl upgrade cluster. Il nuovo intervallo viene utilizzato per tutti i job di una singola macchina, inclusi 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 di 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ù 20 secondi aggiuntivi 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), ovvero 35 minuti.

Puoi modificare l'intervallo di timeout 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, ovvero 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 dei cluster esistenti con bmctl upgrade cluster.

Passaggi successivi

Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud. Puoi anche consultare Richiedere assistenza per ulteriori informazioni sulle risorse di assistenza, tra cui:

  • Requisiti per l'apertura di una richiesta di assistenza.
  • Strumenti per la risoluzione dei problemi, come la configurazione dell'ambiente, i log e le metriche.
  • Componenti supportati.