Si des tâches dépassent le délai avant expiration et que vous pensez que celui-ci n'est pas dû à un problème sous-jacent lié à l'installation, vous pouvez augmenter ce délai. Ce document explique comment ajuster le délai avant expiration des tâches de machine et des tâches par lot en ajoutant des annotations aux spécifications de configuration.
Les GDCV pour les commandes et routines Bare Metal appartiennent à deux catégories : les tâches de machine et les tâches par lot. De nombreux facteurs peuvent affecter le temps d'exécution d'une tâche, comme la configuration matérielle, la configuration réseau et la configuration du cluster. GKE sur Bare Metal dispose de délais d'inactivité par défaut destinés à accueillir des installations classiques.
Voici quelques exemples dans lesquels vous pouvez trouver des messages d'erreur concernant le délai avant expiration de la tâche :
Message d'erreur lié au délai avant expiration de la tâche de machine (encapsulé pour plus de clarté) dans un journal de vérification préliminaire, par exemple
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
Le résultat de
kubectl logs
pour un pod défaillant peut afficher un messageDeadlineExceeded
semblable au suivant (encapsulé) :cluster-cluster1 172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st ● 0/1 0 DeadlineExceeded 192.168.122.180 bmctl-control-plane 7m12
Ajuster le délai avant expiration d'une tâche de machine
Une tâche de machine est une routine qui ne s'exécute que sur une seule machine, comme une vérification préliminaire qui est limitée à une seule machine. Les tâches de machine GKE sur Bare Metal ont un délai avant expiration par défaut de 900 secondes ou 15 minutes. Le délai avant expiration de la tâche de machine est ajusté avec l'annotation baremetal.cluster.gke.io/machine-job-deadline-seconds
dans le fichier de configuration du cluster.
L'exemple suivant définit le délai avant expiration de la tâche de machine sur 1 800 secondes ou 30 minutes :
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:
...
La valeur du délai avant expiration est appliquée lorsque vous créez des clusters avec bmctl create cluster
ou lorsque vous mettez à niveau des clusters existants avec bmctl upgrade
cluster
. Le nouveau délai sera utilisé pour toutes les tâches de machine individuelles, y compris bmctl check preflight
et bmctl check -c <cluster-name>
.
Ajuster le délai avant expiration d'une tâche par lot
Une tâche par lot est une routine exécutée sur plusieurs machines, telle qu'une vérification préliminaire du réseau. Le délai avant expiration par défaut des tâches par lot GKE sur Bare Metal dépend du nombre de machines sur le réseau. Le délai avant expiration par défaut est de 900 secondes, auquel s'ajoutent 20 secondes supplémentaires pour chaque machine.
Ainsi, si votre tâche par lot s'exécute sur 60 machines, le délai avant expiration par défaut est de 2 100 secondes (900 + 20 * 60 = 2 100) ou 35 minutes. Le délai avant expiration de la tâche par lot est ajusté avec l'annotation baremetal.cluster.gke.io/batch-job-deadline-seconds
dans le fichier de configuration du cluster.
L'exemple suivant définit le délai avant expiration de la tâche par lot sur 10 800 secondes ou 3 heures :
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:
...
La valeur du délai avant expiration est appliquée lorsque vous créez des clusters avec bmctl create cluster
ou lorsque vous mettez à niveau des clusters existants avec bmctl upgrade
cluster
.