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.
Rufen Sie in der Google Cloud -Konsole die Seite Cloud Run auf.
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.
Maximieren Sie Container, Volumes, Netzwerk, Sicherheit.
Im Abschnitt Container wechseln Sie zu Systemdiagnosen und klicken Sie auf Systemdiagnose hinzufügen, um den Konfigurationsbereich Systemdiagnose hinzufügen zu öffnen.
Wählen Sie im Menü Typ der Systemdiagnose auswählen den Starttyp der Systemdiagnose aus.
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.
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 im Feld Pfad den relativen Pfad zum Endpunkt an, z. B.
- 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.
- Wenn Sie HTTP-Prüfungen verwenden:
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
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
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.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run jobs replace job.yaml
HTTP-Start
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
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.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run jobs replace job.yaml
gRPC-Start
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
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 diegrpc.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.
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