Se i job in Google Distributed Cloud scadono e ritieni che il comportamento non sia dovuto a un problema di fondo dell'installazione, puoi aumentare l'intervallo di timeout. Questo documento descrive come regolare gli intervalli di timeout per job della macchina e job batch utilizzando le annotazioni nella specifica di configurazione.
Se hai bisogno di ulteriore aiuto, contatta l'assistenza clienti Google Cloud.Tipi di job ed errori
Esistono due tipi di comandi e routine di Google Distributed Cloud: job di macchine e job batch. Molti fattori possono influire sul tempo necessario per il completamento di un job, ad esempio la configurazione hardware, la configurazione di rete e la configurazione del cluster. Google Distributed Cloud dispone di timeout predefiniti destinati a ospitare 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 di una macchina (aggregato per chiarezza) da un log 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 2021L'output da
kubectl logs
per un pod non riuscito potrebbe mostrare un messaggioDeadlineExceeded
simile (con wrapping):cluster-cluster1
172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st ● 0/1
0 DeadlineExceeded 192.168.122.180 bmctl-control-plane 7m12
Regola l'intervallo di timeout del job della macchina
Un job macchina è una routine che viene eseguita su una sola macchina, come un controllo preflight
confinato a una singola macchina. I job di macchine Google Distributed Cloud
hanno un timeout predefinito di 900 secondi o 15 minuti. Puoi regolare l'intervallo di timeout del job di 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 o 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 delle singole macchine, 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, come 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ù 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 di 35 minuti.
Puoi regolare 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 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
.