Ajuster les valeurs de délai avant expiration des tâches

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 message DeadlineExceeded 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.