Si des tâches dans GKE sur une solution Bare Metal expirent et que vous pensez que le comportement n'est pas dû à un problème sous-jacent lié à votre installation, vous pouvez augmenter l'intervalle du délai avant expiration. Ce document explique comment ajuster les intervalles de délai avant expiration pour les tâches machine et par lot à l'aide d'annotations dans la spécification de configuration.
Si vous avez besoin d'aide supplémentaire, contactez l'assistance Cloud Customer Care.Types de tâches et erreurs
Il existe deux types de commandes et de routines GKE sur Bare Metal: les tâches de machine et les tâches par lots. De nombreux facteurs peuvent affecter le temps nécessaire à l'exécution d'une tâche, tels que 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 des exemples de messages d'erreur liés au délai avant expiration d'un job:
Message d'erreur lié au délai avant expiration du job de la machine (encapsulé pour plus de clarté) provenant d'un journal préliminaire tel que
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 en échec peut afficher un messageDeadlineExceeded
similaire (encapsulé):cluster-cluster1 172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st ● 0/1 0 DeadlineExceeded 192.168.122.180 bmctl-control-plane 7m12
Ajuster l'intervalle d'expiration des jobs de la 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, soit 15 minutes. Vous pouvez ajuster l'intervalle d'expiration des tâches de la machine avec l'annotation baremetal.cluster.gke.io/machine-job-deadline-seconds
dans le fichier de configuration du cluster.
L'exemple suivant définit l'intervalle d'expiration d'un job de machine sur 1 800 secondes, soit 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 de l'intervalle 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 nouvel intervalle est utilisé pour toutes les tâches de machine unique, y compris bmctl check preflight
, bmctl check -c CLUSTER_NAME
, etc.
Ajuster l'intervalle d'expiration des job 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, plus 20 secondes supplémentaires pour chaque machine.
Par exemple, si votre job par lot s'exécute sur 60 machines, l'intervalle d'expiration par défaut est de 2 100 secondes (900 + (20 * 60) = 2 100), soit 35 minutes.
Vous pouvez ajuster l'intervalle du délai avant expiration des job par lot avec l'annotation baremetal.cluster.gke.io/batch-job-deadline-seconds
dans le fichier de configuration du cluster.
L'exemple suivant définit l'intervalle d'expiration des job par lot sur 10 800 secondes, soit trois 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 de l'intervalle 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
.