Container-Systemdiagnosen (Jobs) konfigurieren

Auf dieser Seite wird beschrieben, wie Sie HTTP-, TCP- und gRPC-Start-Prüfungen für neue und vorhandene Cloud Run-Jobs konfigurieren. Die Konfiguration variiert je nach Art der Prüfung.

Anwendungsfälle

Sie können Startprüfungen für die Systemdiagnose konfigurieren. Startprüfungen ermitteln, ob der Container gestartet wurde und bereit ist, den Job auszuführen.

Wenn ein Job wiederholt nicht gestartet werden kann, begrenzt Cloud Run die Neustarts der Aufgabe, um unkontrollierte Absturzschleifen zu verhindern.

Prüfungsanforderungen und -verhalten

Prüfungstyp Voraussetzungen Verhalten
TCP-Start Keine Wenn Cloud Run keine Verbindung herstellen kann, weist dies auf einen Fehler hin.

Wenn eine Startprüfung innerhalb des angegebenen Zeitintervalls nicht erfolgreich ist, wird der Container von Cloud Run heruntergefahren. Dieses Zeitintervall wird als failureThreshold * periodSeconds berechnet und darf 240 Sekunden nicht überschreiten.
HTTP-Start Erstellen Sie einen HTTP-Systemdiagnose-Endpunkt
Verwenden Sie HTTP/1
Nachdem Sie die Prüfung konfiguriert haben, stellt Cloud Run eine HTTP-GET-Anfrage an den Endpunkt der Job-Systemdiagnose (z. B. /ready). Jede Antwort zwischen 200 und 400 ist ein Erfolg. Alles andere zeigt einen Fehler an.

Wenn eine Startprüfung innerhalb der angegebenen Zeit (failureThreshold * periodSeconds) nicht erfolgreich ist, darf 240 nicht überschritten werden. Sekunden, wird der Container heruntergefahren.
gRPC-Start Implementieren Sie das gRPC-Systemdiagnoseprotokoll in Ihrem Cloud Run-Job Wenn eine Startprüfung innerhalb der angegebenen Zeit (failureThreshold * periodSeconds) nicht erfolgreich ist, die 240 Sekunden nicht überschreiten kann, wird der Container heruntergefahren.

Prüfungen konfigurieren

Konfigurieren Sie HTTP-, TCP- und gRPC-Prüfungen mit der Google Cloud -Console oder YAML:

Console

Wichtig: Wenn Sie Ihren Cloud Run-Job für HTTP-Prüfungen konfigurieren, müssen Sie dem Jobcode auch einen HTTP-Systemdiagnose-Endpunkt hinzufügen, um auf die Prüfung zu reagieren. Wenn Sie eine gRPC-Prüfung konfigurieren, müssen Sie auch das gRPC-Systemdiagnoseprotokoll in Ihrem Cloud Run-Job implementieren.

  1. Rufen Sie in der Google Cloud -Konsole die Seite Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie für einen neuen Job auf CONTAINER BEITRETEN und dann auf Job. Klicken Sie für einen vorhandenen Job auf den Tab Jobs, auf den gewünschten Job und dann auf JOBKONFIGURATION ANSEHEN UND BEARBEITEN.

  3. Maximieren Sie Container, Volumes, Netzwerk, Sicherheit.

  4. Im Abschnitt Container wechseln Sie zu Systemdiagnosen und klicken Sie auf Systemdiagnose hinzufügen, um den Konfigurationsbereich Systemdiagnose hinzufügen zu öffnen.

  5. Wählen Sie im Menü Typ der Systemdiagnose auswählen den Starttyp der Systemdiagnose aus.

  6. Wählen Sie im Menü Prüfungstyp auswählen den Typ der Prüfung aus, z. B. HTTP oder gRPC. Dadurch wird das Formular zur Prüfungskonfiguration angezeigt.

  7. Beachten Sie, dass die Prüfungskonfiguration je nach Prüfungstyp variiert. Konfigurieren Sie die Prüfungseinstellungen:

    • Wenn Sie HTTP-Prüfungen verwenden:
      • Geben Sie im Feld Pfad den relativen Pfad zum Endpunkt an, z. B. /.
      • Klicken Sie das Kästchen HTTP-Header an, um optionale benutzerdefinierte Header anzugeben. Geben Sie dann den Header-Namen im Feld Name und den Header-Wert im Feld Wert an. Klicken Sie auf HTTP-Header hinzufügen, um weitere Header anzugeben.
    • Geben Sie unter Port den Port an, an dem der Jobcontainer auf die Probe wartet.
    • Geben Sie unter Anfängliche Verzögerung an, wie viele Sekunden nach dem Start des Containers gewartet werden soll, bevor die erste Prüfung ausgeführt wird. Geben Sie einen Wert zwischen 0 Sekunden und 240 Sekunden an. Der Standardwert beträgt 0 Sekunden.
    • Geben Sie für Period das Zeitintervall in Sekunden an, in dem die Prüfung ausgeführt werden soll. Beispiel: 2, um die Prüfung alle zwei Sekunden durchzuführen. Geben Sie einen Wert zwischen 1 Sekunde und 240 Sekunden an. Der Standardwert beträgt 10 Sekunden.
    • Geben Sie als Fehlerschwellenwert an, wie oft die Prüfung wiederholt werden soll, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Geben Sie unter Zeitlimit an, wie viele Sekunden gewartet werden soll, bis das Zeitlimit der Prüfung überschritten wird. Dieser Wert darf den für periodSeconds angegebenen Wert nicht überschreiten. Geben Sie einen Wert zwischen 1 und 240 an. Der Standardwert ist 1.
  8. Klicken Sie auf Hinzufügen, um den neuen Schwellenwert hinzuzufügen.

YAML

Wichtig: Wenn Sie Ihren Cloud Run-Job für HTTP-Prüfungen konfigurieren, müssen Sie dem Jobcode auch einen Endpunkt hinzufügen, um auf die Prüfung zu reagieren. Wenn Sie eine gRPC-Prüfung konfigurieren, müssen Sie auch das gRPC-Systemdiagnoseprotokoll in Ihrem Cloud Run-Job implementieren.

TCP-Start

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Job aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Konfigurieren Sie das Attribut startupProbe so:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Ersetzen Sie die folgenden Variablen:

    • JOB durch den Namen Ihres Cloud Run-Jobs.
    • IMAGE_URL durch die URL des Job-Container-Images, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • Optional: CONTAINER_PORT durch den Port, an dem der Jobcontainer auf die Prüfung wartet.
    • DELAY mit der Anzahl der Sekunden, die nach dem Start des Containers gewartet werden soll, bevor die erste Prüfung ausgeführt wird. Geben Sie einen Wert zwischen 0 Sekunden und 240 Sekunden an. Der Standardwert beträgt 0 Sekunden.
    • Optional: TIMEOUT mit der Anzahl der Sekunden, die gewartet wird, bis das Zeitlimit der Prüfung überschritten wird. Dieser Wert darf den für periodSeconds angegebenen Wert nicht überschreiten. Geben Sie einen Wert zwischen 1 und 240 an. Der Standardwert ist 1.
    • THRESHOLD mit der Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • PERIOD durch das Intervall (in Sekunden), in dem die Prüfung durchgeführt werden soll. Beispiel: 2, um die Prüfung alle zwei Sekunden durchzuführen. Geben Sie einen Wert zwischen 1 Sekunde und 240 Sekunden an. Der Standardwert beträgt 10 Sekunden.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

HTTP-Start

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Job aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Konfigurieren Sie das Attribut startupProbe so:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Ersetzen Sie die folgenden Variablen:

    • JOB durch den Namen Ihres Cloud Run-Jobs.
    • IMAGE_URL durch die URL des Job-Container-Images, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH durch den relativen Pfad zum HTTP-Endpunkt, z. B. /ready.
    • Optional: CONTAINER_PORT durch den Port, an dem der Jobcontainer auf die Prüfung wartet.
    • Optional: httpHeaders kann verwendet werden, um mehrere oder wiederkehrende benutzerdefinierte Header mithilfe der Felder HEADER_NAME und HEADER_VALUE anzugeben.
    • Optional: DELAY mit der Anzahl der Sekunden, die gewartet werden soll, bis der Container gestartet wurde, bevor die erste Prüfung ausgeführt wird. Geben Sie einen Wert zwischen 0 Sekunden und 240 Sekunden an. Der Standardwert beträgt 0 Sekunden.
    • Optional: TIMEOUT mit der Anzahl der Sekunden, die gewartet wird, bis das Zeitlimit der Prüfung überschritten wird. Dieser Wert darf den für periodSeconds angegebenen Wert nicht überschreiten. Geben Sie einen Wert zwischen 1 und 240 an. Der Standardwert ist 1.
    • Optional: THRESHOLD mit der Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Optional: PERIOD durch das Intervall (in Sekunden), in dem die Prüfung ausgeführt werden soll. Beispiel: 2, um die Prüfung alle zwei Sekunden durchzuführen. Geben Sie einen Wert zwischen 1 Sekunde und 240 Sekunden an. Der Standardwert beträgt 10 Sekunden.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

gRPC-Start

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Job aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Konfigurieren Sie das Attribut startupProbe so:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              grpc:
                service: GRPC_SERVICE
                port: CONTAINER_PORT
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Ersetzen Sie die folgenden Variablen:

    • JOB durch den Namen Ihres Cloud Run-Jobs.
    • IMAGE_URL durch die URL des Job-Container-Images, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • Optional: GRPC_SERVICE. Wenn festgelegt, wird dieser Wert im Feld „service“ des grpc.health.v1.HealthCheckRequest verwendet, wenn die grpc.health.v1.Health.Check-RPC aufgerufen wird.
    • Optional: CONTAINER_PORT durch den Port, an dem der Jobcontainer auf die Prüfung wartet.
    • Optional: DELAY mit der Anzahl der Sekunden, die gewartet werden soll, bis der Container gestartet wurde, bevor die erste Prüfung ausgeführt wird. Geben Sie einen Wert zwischen 0 Sekunden und 240 Sekunden an. Der Standardwert beträgt 0 Sekunden.
    • Optional: TIMEOUT mit der Anzahl der Sekunden, die gewartet werden soll, bis das Zeitlimit der Prüfung überschritten wird. Dieser Wert darf den für periodSeconds angegebenen Wert nicht überschreiten. Geben Sie einen Wert zwischen 1 und 240 an. Der Standardwert ist 1.
    • Optional: THRESHOLD mit der Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Optional: PERIOD durch das Intervall (in Sekunden), in dem die Prüfung ausgeführt werden soll. Beispiel: 2, um die Prüfung alle zwei Sekunden durchzuführen. Geben Sie einen Wert zwischen 1 Sekunde und 240 Sekunden an. Der Standardwert beträgt 10 Sekunden.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

HTTP-Systemdiagnose-Endpunkte erstellen

Wenn Sie Ihren Cloud Run-Job für eine HTTP-Startprüfung konfigurieren, müssen Sie dem Jobcode einen Endpunkt hinzufügen, der auf die Prüfung reagiert. Sie können einen beliebigen Namen für den Endpunkt verwenden, z. B. /startup oder /ready. Der Name muss mit den Werten übereinstimmen, die Sie in der Prüfungskonfiguration für path angeben. Wenn Sie beispielsweise /ready für eine HTTP-Startprüfung angeben, geben Sie path in Ihrer Prüfungskonfiguration so an:

startupProbe:
  httpGet:
    path: /ready