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 il timeout intervallo di tempo. 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 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 da
kubectl logs
per un pod non riuscito potrebbe mostrare un risultato simileDeadlineExceeded
messaggio (aggregato):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 macchina è una routine che viene eseguita su una sola macchina, come un controllo preflight
limitato a una sola macchina. I job di macchine Google Distributed Cloud hanno un timeout predefinito di 900 secondi o 15 minuti. Puoi regolare il job della macchina
intervallo di timeout con 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 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, come una rete controllo preflight. L'intervallo di timeout predefinito per il batch Google Distributed Cloud dipende dal numero di macchine nella rete. Il valore predefinito di timeout è 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 regolare l'intervallo di timeout del job batch con
baremetal.cluster.gke.io/batch-job-deadline-seconds
annotazione nel cluster
di configurazione del deployment.
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
.