Zeitlimits von Jobs anpassen

Wenn bei Jobs eine Zeitüberschreitung auftritt und Sie der Meinung sind, dass die Zeitüberschreitung nicht auf ein zugrunde liegendes Problem bei Ihrer Installation zurückzuführen ist, können Sie das Zeitlimitintervall erhöhen. In diesem Dokument wird beschrieben, wie Sie die Zeitlimitintervalle für Maschinen- und Batchjobs mit Annotationen an die Konfigurationsspezifikation anpassen.

GDCV für Bare-Metal-Befehle und -Routinen fallen in zwei Kategorien: Maschinenjobs und Batchjobs. Die Länge der Ausführung eines Jobs kann von vielen Faktoren beeinflusst werden, z. B. der Hardwarekonfiguration, der Netzwerkkonfiguration und der Clusterkonfiguration. GKE on Bare Metal hat Standardzeitlimits, die für typische Installationen vorgesehen sind.

Hier einige Beispiele für Fälle, in denen Fehlermeldungen zu Zeitlimits angezeigt werden können:

  • Fehlermeldung über Zeitlimit bei einem Maschinenjob (zur Klarstellung zusammengefasst) aus einem Preflight-Log, z. B. 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
    
  • In der Ausgabe von kubectl logs für einen fehlgeschlagenen Pod kann eine ähnliche DeadlineExceeded-Meldung (zusammengefasst) angezeigt werden:

    cluster-cluster1
    172.18.0.4-machine-preflf3a32c8a2f7a2449545c7e8ff954c961-652st  ●  0/1
    0 DeadlineExceeded  192.168.122.180  bmctl-control-plane  7m12
    

Zeitlimitintervall für Maschinenjobs anpassen

Ein Maschinenjob ist eine Routine, die auf einer einzigen Maschine ausgeführt wird, z. B. eine Preflight-Prüfung, die auf eine einzelne Maschine beschränkt ist. GKE on Bare Metal-Maschinenjobs haben ein Standardzeitlimit von 900 Sekunden oder 15 Minuten. Das Zeitlimitintervall für Maschinenjobs wird mit der Annotation baremetal.cluster.gke.io/machine-job-deadline-seconds in der Clusterkonfigurationsdatei angepasst.

Im folgenden Beispiel wird das Zeitlimitintervall des Maschinenjobs auf 1.800 Sekunden oder 30 Minuten festgelegt:

   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:
   ...

Der Wert für das Zeitlimitintervall wird angewendet, wenn Sie neue Cluster mit bmctl create cluster erstellen oder vorhandene Cluster mit bmctl upgrade cluster aktualisieren. Das neue Intervall wird für alle Jobs einer einzelnen Maschine verwendet, einschließlich bmctl check preflight und bmctl check -c <cluster-name>.

Zeitlimitintervall für Batchjobs anpassen

Ein Batchjob ist eine Routine, die auf mehreren Maschinen ausgeführt wird, z. B. eine Netzwerk-Preflight-Prüfung. Das Standardzeitlimitintervall für Batchjobs in GKE on Bare Metal hängt von der Anzahl der Maschinen im Netzwerk ab. Das Standardzeitlimit beträgt 900 Sekunden plus zusätzliche 20 Sekunden für jede Maschine. Wenn Ihr Batchjob also auf 60 Maschinen ausgeführt wird, beträgt das Standardzeitlimitintervall 2.100 Sekunden (900 + 20 * 60 = 2.100) oder 35 Minuten. Das Zeitlimitintervall für Batchjobs wird mit der Annotation baremetal.cluster.gke.io/batch-job-deadline-seconds in der Clusterkonfigurationsdatei angepasst.

Im folgenden Beispiel wird das Zeitlimit für den Batchjob auf 10.800 Sekunden oder 3 Stunden festgelegt:

   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:
   ...

Der Wert für das Zeitlimitintervall wird angewendet, wenn Sie neue Cluster mit bmctl create cluster erstellen oder vorhandene Cluster mit bmctl upgrade cluster aktualisieren.