Container-Systemdiagnosen für Dienste konfigurieren

Cloud Run-Systemdiagnosen sorgen dafür, dass Ihre Containerinstanzen ordnungsgemäß ausgeführt werden und Traffic verarbeiten können. Mit Cloud Run-Systemdiagnosen können Sie anpassen, wann Ihr Container bereit ist, Anfragen zu empfangen, und wann er als fehlerhaft eingestuft werden soll, sodass ein Neustart erforderlich ist.

Anwendungsfälle

Sie können die folgenden Arten von Systemdiagnoseprüfungen konfigurieren:

  • Startprüfungen ermitteln, ob der Container gestartet wurde und bereit ist, Traffic entgegenzunehmen.

    • Wenn Sie eine Startprüfung konfigurieren, werden Aktivitäts- und Bereitschaftsprüfungen deaktiviert, bis die Startprüfung feststellt, dass der Container gestartet wurde, um Störungen des Dienststarts zu vermeiden.
    • Startprüfungen sind besonders nützlich, wenn Sie Aktivitätsprüfungen für langsam startende Container verwenden, da sie verhindern, dass die Container vorzeitig heruntergefahren werden, bevor sie ausgeführt werden.
  • Aktivitätsprüfungen bestimmen, ob ein Container neu gestartet werden soll.

    • Durch einen Neustart eines Containers kann in diesem Fall die Dienstverfügbarkeit bei Programmfehlern erhöht werden.
    • Aktivitätsprüfungen sollen einzelne Instanzen neu starten, die auf andere Weise nicht wiederhergestellt werden können. Sie sollten hauptsächlich für nicht wiederherstellbare Instanzfehler verwendet werden, um beispielsweise einen Deadlock zu erkennen, wenn ein Dienst ausgeführt wird, aber keine Fortschritte machen kann. Mithilfe von benutzerdefinierten Organisationsrichtlinien können Sie für jeden Container eine Aktivitätsprüfung erzwingen.
    • Wenn bei einem Dienst wiederholt Fehler bei Prüfungen auftreten, begrenzt Cloud Run Instanzneustarts, um unkontrollierte Absturzschleifen zu verhindern.
  • Bereitschaftsprüfungen (Vorabversion)

    Bereitschaftsprobes legen fest, wann eine Instanz in Ihrem Cloud Run-Dienst Traffic verarbeiten soll. Die Bereitschaftsprüfungen beginnen, nachdem die Startprüfung des Containers erfolgreich durchlaufen wurde. Wenn eine Instanz die Bereitschaftsprüfung über den von Ihnen konfigurierten Grenzwert für Fehler hinaus nicht besteht, sendet Cloud Run keinen neuen Traffic mehr an sie. Cloud Run beendet die Instanz nicht und leitet den Traffic zurück zur Instanz, wenn sie die Bereitschaftsprüfung wieder besteht.

Startprüfungen konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Sie können HTTP-, TCP- und gRPC-Prüfungen mit der Google Cloud Console, YAML oder Terraform konfigurieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Run auf:

    Zu Cloud Run

  2. Erweitern Sie für einen neuen Dienst Container, Volumes, Netzwerk, Sicherheit, um die Optionen der Systemdiagnose aufzurufen. Klicken Sie für einen vorhandenen Dienst auf den Dienst, den Sie konfigurieren möchten, und dann auf Bearbeiten und Bereitstellen, um die Optionen für die Systemdiagnose aufzurufen.

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

  4. Wählen Sie im Menü Typ der Systemdiagnose auswählen die Option Startprüfung aus.

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

  6. Die Konfiguration von Prüfungen variiert je nach Prüfungstyp. Konfigurieren Sie die Prüfungseinstellungen:

    • Wenn Sie HTTP-Prüfungen verwenden:

      • Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

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

    • Wenn Sie gRPC-Prüfungen verwenden:

    • Geben Sie unter Port den für Ihren Dienst verwendeten Containerport an.

    • Geben Sie unter Anfängliche Verzögerung die Anzahl der Sekunden an, 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.

    • Geben Sie für Period den Zeitraum 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 die Anzahl der Sekunden an, 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.

  7. Klicken Sie auf Hinzufügen, um den neuen Schwellenwert hinzuzufügen.

  8. Klicken Sie auf Erstellen oder Bereitstellen.

gcloud

TCP-Start

Führen Sie dazu diesen Befehl aus:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Optional. CONTAINER_PORT: Der für Ihren Dienst verwendete Containerport.
  • DELAY: 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: Die 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: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
  • PERIOD: Zeitraum (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.

HTTP-Start

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

Führen Sie dazu diesen Befehl aus:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH: ein relativer Pfad zum HTTP-Endpunkt, z. B. /health.
  • Optional. CONTAINER_PORT: auf den Containerport festgelegt, der für Ihren Dienst verwendet wird.
  • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
  • Optional. TIMEOUT: Die 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. PERIOD: 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.

gRPC-Start

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

Führen Sie dazu diesen Befehl aus:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • 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: Der für Ihren Dienst verwendete Containerport.
  • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
  • Optional. TIMEOUT: Die 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. PERIOD: 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.

YAML

TCP-Start

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut startupProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Optional. CONTAINER_PORT: Der für Ihren Dienst verwendete Containerport.
    • DELAY: 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: Die 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: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • PERIOD: Zeitraum (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 services replace service.yaml

HTTP-Start

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut startupProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    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 Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH: ein relativer Pfad zum HTTP-Endpunkt, z. B. /health.
    • Optional. CONTAINER_PORT: auf den Containerport festgelegt, der für Ihren Dienst verwendet wird.
    • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Optional: httpHeaders kann verwendet werden, um mehrere oder wiederkehrende benutzerdefinierte Header mithilfe der Felder HEADER_NAME und HEADER_VALUE anzugeben.
    • Optional. TIMEOUT: Die 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. PERIOD: 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 services replace service.yaml

gRPC-Start

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut startupProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    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 Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • 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: Der für Ihren Dienst verwendete Containerport.
    • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Optional. TIMEOUT: Die 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. PERIOD: 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 services replace service.yaml

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

TCP-Start

Konfigurieren Sie Ihren Cloud Run-Dienst mit dem Attribut startup_probe so:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        tcp_socket {
          port = 8080
        }
      }
    }
  }
}

HTTP-Start

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

Konfigurieren Sie Ihren Cloud Run-Dienst mit dem Attribut startup_probe so:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

gRPC-Start

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

Konfigurieren Sie Ihren Cloud Run-Dienst mit dem Attribut startup_probe so:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        grpc {
          # Note: Change to the name of your pre-existing grpc health status service
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Die standardmäßige TCP-Startprüfung

Wenn Sie keine TCP-Startprüfung für einen neuen Cloud Run-Dienst explizit konfigurieren, konfiguriert Cloud Run automatisch eine TCP-Startprüfung mit den folgenden Standardwerten:

startupProbe:
          timeoutSeconds: 240
          periodSeconds: 240
          failureThreshold: 1

Sie können diese Standardwerte gemäß der Anleitung im Abschnitt Prüfungskonfiguration auf dieser Seite ändern.

Anforderungen und Verhalten bei der Startprüfung

Prüfungstyp Voraussetzungen Verhalten
TCP-Start Ohne Standardmäßig stellt Cloud Run eine TCP-Verbindung her, um den TCP-Socket am angegebenen Port zu öffnen. Wenn Cloud Run keine Verbindung herstellen kann, weist dies auf einen Fehler hin.

Wenn eine Startprüfung innerhalb der angegebenen Zeit nicht erfolgreich ist (failureThreshold * periodSeconds), darf 240 nicht überschritten werden. Sekunden, wird der Container heruntergefahren. Siehe auch TCP-Standardeinstellungen.
HTTP-Start Erstellen Sie einen HTTP-Systemdiagnose-Endpunkt 
Verwenden Sie HTTP/1
Nach der Konfiguration der Prüfung sendet Cloud Run eine HTTP-GET-Anfrage an den Endpunkt der Systemdiagnose (z. B. /health). Jede Antwort vom Typ 2XX oder 3XX ist ein Erfolg. Alles andere weist auf einen Fehler hin.

Wenn eine Startprüfung innerhalb der angegebenen Zeit (failureThreshold * periodSeconds) nicht erfolgreich ist, die 240 Sekunden nicht überschreiten darf, wird der Container heruntergefahren.

Wenn die HTTP-Startprüfung innerhalb der angegebenen Zeit erfolgreich ist und Sie eine HTTP-Aktivitätsprüfung konfiguriert haben, wird diese gestartet.
gRPC-Start Implementieren Sie das gRPC-Systemdiagnoseprotokoll in Ihrem Cloud Run-Dienst Wenn eine Startprüfung innerhalb der angegebenen Zeit (failureThreshold * periodSeconds) nicht erfolgreich ist, die 240 Sekunden nicht überschreiten kann, wird der Container heruntergefahren.

Aktivitätsprüfungen konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Sie können HTTP- und gRPC-Prüfungen mit der Google Cloud Console, YAML oder Terraform konfigurieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Run auf:

    Zu Cloud Run

  2. Erweitern Sie für einen neuen Dienst Container, Volumes, Netzwerk, Sicherheit, um die Optionen der Systemdiagnose aufzurufen. Klicken Sie für einen vorhandenen Dienst auf den Dienst, den Sie konfigurieren möchten, und dann auf Bearbeiten und Bereitstellen, um die Optionen für die Systemdiagnose aufzurufen.

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

  4. Wählen Sie im Menü Typ der Systemdiagnose auswählen die Option Aktivitätsprüfung aus.

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

  6. Die Konfiguration von Prüfungen variiert je nach Prüfungstyp. Konfigurieren Sie die Prüfungseinstellungen:

    • Wenn Sie HTTP-Prüfungen verwenden:

      • Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

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

    • Wenn Sie gRPC-Prüfungen verwenden:

    • Geben Sie unter Port den für Ihren Dienst verwendeten Containerport an.

    • Geben Sie unter Anfängliche Verzögerung die Anzahl der Sekunden an, 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.

    • Geben Sie für Period den Zeitraum 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 3.600 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 die Anzahl der Sekunden an, 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 3.600 an. Der Standardwert ist 1.

  7. Klicken Sie auf Hinzufügen, um den neuen Schwellenwert hinzuzufügen.

  8. Klicken Sie auf Erstellen oder Bereitstellen.

gcloud

HTTP-Aktivität

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

Führen Sie dazu diesen Befehl aus:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH: ein relativer Pfad zum HTTP-Endpunkt, z. B. /health.
  • Optional. CONTAINER_PORT: auf den Containerport festgelegt, der für Ihren Dienst verwendet wird.
  • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
  • Optional. TIMEOUT: Die 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 3.600 an. Der Standardwert ist 1.
  • Optional. PERIOD: 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 3.600 Sekunden an. Der Standardwert beträgt 10 Sekunden.

gRPC-Aktivität

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

Führen Sie dazu diesen Befehl aus:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • 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: Der für Ihren Dienst verwendete Containerport.
  • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
  • Optional. TIMEOUT: Die 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 3.600 an. Der Standardwert ist 1.
  • Optional. PERIOD: 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 3.600 Sekunden an. Der Standardwert beträgt 10 Sekunden.

YAML

HTTP-Aktivität

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut livenessProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            livenessProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH: ein relativer Pfad zum HTTP-Endpunkt, z. B. /health.
    • Optional. CONTAINER_PORT: auf den Containerport festgelegt, der für Ihren Dienst verwendet wird.
    • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Optional: httpHeaders kann verwendet werden, um mehrere oder wiederkehrende benutzerdefinierte Header mithilfe der Felder HEADER_NAME und HEADER_VALUE anzugeben.
    • Optional. TIMEOUT: Die 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 3.600 an. Der Standardwert ist 1.
    • Optional. PERIOD: 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 3.600 Sekunden an. Der Standardwert beträgt 10 Sekunden.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
    gcloud run services replace service.yaml

gRPC-Aktivität

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut livenessProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            livenessProbe:
              grpc:
                port: CONTAINER_PORT
                service: GRPC_SERVICE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • 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: Der für Ihren Dienst verwendete Containerport.
    • Optional. DELAY: Die 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. THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor der Container heruntergefahren wird. Der Standardwert ist 3.
    • Optional. TIMEOUT: Die 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 3.600 an. Der Standardwert ist 1.
    • Optional. PERIOD: 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 3.600 Sekunden an. Der Standardwert beträgt 10 Sekunden.

  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
    gcloud run services replace service.yaml

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

HTTP-Aktivität

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

Konfigurieren Sie Ihren Cloud Run-Dienst mit dem Attribut liveness_probe so:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

gRPC-Aktivität

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

Konfigurieren Sie Ihren Cloud Run-Dienst mit dem Attribut liveness_probe so:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        # Note: Change to the name of your pre-existing grpc health status service
        grpc {
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Anforderungen und Verhalten von Aktivitätsprüfungen

Prüfungstyp Voraussetzungen Verhalten
HTTP-Aktivität Erstellen Sie einen HTTP-Systemdiagnose-Endpunkt 
Verwenden Sie HTTP/1
Die Aktivitätsprüfung wird erst gestartet, wenn die Startprüfung erfolgreich war. Nach der Konfiguration der Prüfung und wenn eine Startprüfung erfolgreich ist, sendet Cloud Run eine HTTP-GET-Anfrage an den Endpunkt der Systemdiagnose (z. B. /health). Jede Antwort vom Typ 2XX oder 3XX ist ein Erfolg. Alles andere zeigt einen Fehler an.

Wenn eine Aktivitätsprüfung innerhalb der angegebenen Zeit (failureThreshold * periodSeconds) nicht erfolgreich ist, wird der Container mit einem SIGKILL-Signal heruntergefahren. Alle verbleibenden Anfragen, die noch vom Container verarbeitet wurden, werden mit dem HTTP-Statuscode 503 beendet. Nachdem der Container heruntergefahren wurde, startet das Cloud Run-Autoscaling eine neue Containerinstanz.
gRPC-Aktivität Implementieren Sie das gRPC-Systemdiagnoseprotokoll in Ihrem Cloud Run-Dienst Wenn Sie eine gRPC-Startprüfung konfigurieren, wird diese erst gestartet, nachdem die Startprüfung erfolgreich war.

Nachdem die Aktivitätsprüfung konfiguriert wurde und jede Startprüfung erfolgreich ist, stellt Cloud Run eine Systemdiagnoseanfrage an Der Service.

Wenn eine Aktivitätsprüfung innerhalb der angegebenen Zeit (failureThreshold * periodSeconds) nicht erfolgreich ist, wird der Container mit einem SIGKILL-Signal heruntergefahren. Nachdem der Container heruntergefahren wurde, startet das Cloud Run-Autoscaling eine neue Containerinstanz.

Bereitschaftsprüfungen konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Für Bereitschaftsprobes gelten die folgenden Einschränkungen:

  • Wenn Sie die Sitzungsaffinität aktivieren, sendet Cloud Run weiterhin Anfragen an dieselbe Instanz, auch wenn die Bereitschaftsprüfung fehlschlägt.

  • Cloud Run sendet möglicherweise Anfragen an eine neu gestartete Instanz, bevor die Bereitschaftsprüfung zum ersten Mal abgeschlossen ist.

  • Wenn Sie vor November 2025 eine Bereitschaftsprüfung für Ihren Cloud Run-Dienst mit der Cloud Run Admin API v1 konfiguriert haben, werden Ihre Bereitschaftsprüfungen auch nach der Bereitstellung einer neuen Konfiguration für diesen Dienst nicht wirksam. Dies liegt daran, dass der Dienst eine ältere Konfiguration beibehält. Dienste, die Sie nach November 2025 erstellen, oder Dienste, die nie eine Bereitschaftsprüfung verwendet haben, sind davon nicht betroffen. So aktivieren Sie unterstützte Bereitschaftsprobes für betroffene Dienste:

    1. Stellen Sie eine neue Überarbeitung bereit, in der die alte Bereitschaftsüberprüfung entfernt wird.

    2. Stellen Sie eine weitere neue Überarbeitung bereit, in der die entsprechende Definition der Bereitschaftsprüfung hinzugefügt wird.

    Durch diese Schritte wird die alte Konfiguration gelöscht und die Bereitschaftsprüfung aktiviert.

Sie können eine Bereitschaftsprüfung über die Google Cloud Console, die Google Cloud CLI oder YAML konfigurieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Run auf:

    Zu Cloud Run

  2. Erweitern Sie für einen neuen Dienst Container, Volumes, Netzwerk, Sicherheit, um die Optionen der Systemdiagnose aufzurufen. Klicken Sie für einen vorhandenen Dienst auf den Dienst, den Sie konfigurieren möchten, und dann auf Bearbeiten und Bereitstellen, um die Optionen für die Systemdiagnose aufzurufen.

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

  4. Wählen Sie im Menü Typ der Systemdiagnose auswählen die Option Bereitschaftsprüfung aus.

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

  6. Die Konfiguration von Prüfungen variiert je nach Prüfungstyp. Konfigurieren Sie die Prüfungseinstellungen:

    • Wenn Sie HTTP-Prüfungen verwenden:

      • Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

      • Geben Sie im Feld Pfad den relativen Pfad zum Endpunkt an, z. B. /are_you_ready. Der Standardpfad ist /.

    • Wenn Sie gRPC-Prüfungen verwenden:

    • Geben Sie unter Port den Containerport für Ihren Dienst an. Der Standardport ist der Haupteingangsport.

    • Geben Sie für Period den Zeitraum 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 und 300 an. Der Standardwert beträgt 10 Sekunden.

    • Geben Sie für Erfolgsschwellenwert die Mindestanzahl aufeinanderfolgender Erfolge an, damit die Prüfung nach einem Fehler als erfolgreich gilt. Der Standardwert ist 2.

    • Geben Sie als Fehlerschwellenwert an, wie oft die Prüfung wiederholt werden soll, bevor ein Fehler gemeldet wird. Dadurch wird verhindert, dass die Instanz Traffic empfängt. Der Standardwert ist 3.

    • Geben Sie unter Zeitlimit die Anzahl der Sekunden an, 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 300 an. Der Standardwert ist 1.

  7. Klicken Sie auf Hinzufügen, um den neuen Schwellenwert hinzuzufügen.

  8. Klicken Sie auf Erstellen oder Bereitstellen.

gcloud

HTTP-Bereitschaft

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

Führen Sie dazu diesen Befehl aus:

gcloud beta run deploy SERVICE \
    --image=IMAGE_URL \
    --readiness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Optional. PATH: Der relative Pfad zum HTTP-Endpunkt, z. B. /are_you_ready. Der Standardpfad ist /.
  • Optional. CONTAINER_PORT: Der Containerport, der für Ihren Dienst verwendet wird. Der Standardport ist der Haupteingangsport.
  • Optional. SUCCESS_THRESHOLD: Die Mindestanzahl aufeinanderfolgender Erfolge, damit die Prüfung nach einem Fehler als erfolgreich gilt. Der Standardwert ist 2.
  • Optional. FAILURE_THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor ein Fehler gemeldet wird. In diesem Fall empfängt die Instanz keinen Traffic mehr. Der Standardwert ist 3.
  • Optional. TIMEOUT: Die 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 300 an. Der Standardwert ist 1.
  • Optional. PERIOD: 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 und 300 an. Der Standardwert beträgt 10 Sekunden.

gRPC-Bereitschaft

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

Führen Sie dazu diesen Befehl aus:

gcloud beta run deploy SERVICE \
    --image=IMAGE_URL \
    --readiness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Optional. CONTAINER_PORT: Der Containerport, der für Ihren Dienst verwendet wird. Der Standardport ist der Haupteingangsport.
  • 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. SUCCESS_THRESHOLD: Die Mindestanzahl aufeinanderfolgender Erfolge, damit die Prüfung nach einem Fehler als erfolgreich gilt. Der Standardwert ist 2.
  • Optional. FAILURE_THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor ein Fehler gemeldet wird. In diesem Fall empfängt die Instanz keinen Traffic mehr. Der Standardwert ist 3.
  • Optional. TIMEOUT: Die 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 300 an. Der Standardwert ist 1.
  • Optional. PERIOD: 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 und 300 an. Der Standardwert beträgt 10 Sekunden.

YAML

HTTP-Bereitschaft

Fügen Sie dem Dienstcode einen HTTP/1-Endpunkt (den Cloud Run-Standard, nicht HTTP/2) hinzu, um auf die Prüfung zu reagieren. Der Endpunktname (z. B. /startup, /health oder /are_you_ready) muss mit dem path in der Prüfungskonfiguration übereinstimmen. HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Dienstendpunkte.

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut readinessProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Optional. PATH: Der relative Pfad zum HTTP-Endpunkt, z. B. /are_you_ready. Der Standardpfad ist /.
    • Optional. CONTAINER_PORT: Der Containerport, der für Ihren Dienst verwendet wird. Der Standardport ist der Haupteingangsport.
    • Optional. SUCCESS_THRESHOLD: Die Mindestanzahl aufeinanderfolgender Erfolge, damit die Prüfung nach einem Fehler als erfolgreich gilt. Der Standardwert ist 2.
    • Optional. FAILURE_THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor ein Fehler gemeldet wird. In diesem Fall empfängt die Instanz keinen Traffic mehr. Der Standardwert ist 3.
    • Optional. TIMEOUT: Die 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 300 an. Der Standardwert ist 1.
    • Optional. PERIOD: 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 und 300 an. Der Standardwert beträgt 10 Sekunden.

  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
    gcloud run services replace service.yaml

gRPC-Bereitschaft

Achten Sie darauf, dass Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementiert.

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurieren Sie das Attribut readinessProbe so:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              grpc:
                port: CONTAINER_PORT
                service: GRPC_SERVICE
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Optional. CONTAINER_PORT: Der Containerport, der für Ihren Dienst verwendet wird. Der Standardport ist der Haupteingangsport.
    • 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. SUCCESS_THRESHOLD: Die Mindestanzahl aufeinanderfolgender Erfolge, damit die Prüfung nach einem Fehler als erfolgreich gilt. Der Standardwert ist 2.
    • Optional. FAILURE_THRESHOLD: Die Anzahl der Wiederholungen der Prüfung, bevor ein Fehler gemeldet wird. In diesem Fall empfängt die Instanz keinen Traffic mehr. Der Standardwert ist 3.
    • Optional. TIMEOUT: Die 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 300 an. Der Standardwert ist 1.
    • Optional. PERIOD: 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 und 300 an. Der Standardwert beträgt 10 Sekunden.

  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
    gcloud run services replace service.yaml

CPU-Zuweisung

  • Die CPU wird immer zugewiesen, wenn Prüfungen ausgeführt werden.
  • Bei allen Prüfungen werden für die Nutzung von CPU und Arbeitsspeicher Kosten in Rechnung gestellt, es fallen jedoch keine anfragebasierten Gebühren an.

Nächste Schritte