Container-Systemdiagnosen für Worker-Pools konfigurieren

Sie können HTTP-, TCP- und gRPC-Start-up-Prüfungen sowie HTTP- und gRPC-Aktivitätsprüfungen für neue und vorhandene Cloud Run-Workerpools konfigurieren. Die Konfiguration variiert je nach Art der Prüfung.

Anwendungsfälle

Sie können zwei Arten von Systemdiagnoseprüfungen konfigurieren:

  • Aktivitätsprüfungen bestimmen, ob ein Container neu gestartet werden soll.

    • Durch einen Neustart eines Containers kann in diesem Fall die Verfügbarkeit des Worker-Pools 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 Worker-Pool ausgeführt wird, aber keine Fortschritte machen kann. Mithilfe von benutzerdefinierten Organisationsrichtlinien können Sie für jeden Container eine Aktivitätsprüfung erzwingen.
  • Startprüfungen ermitteln, ob der Container gestartet wurde.

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

Wenn bei einem Worker-Pool wiederholt Fehler bei Start- oder Aktivitätsprüfungen auftreten, verhindert Cloud Run unkontrollierte Absturzschleifen, indem es Instanzneustarts begrenzt.

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.

Prüfungsanforderungen und -verhalten

Prüfungstyp Voraussetzungen Verhalten
TCP-Start Keine Falls angegeben, 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, wird der Container von Cloud Run heruntergefahren. Die Zeit beträgt maximal 240 Sekunden und wird als failureThreshold * periodSeconds berechnet. Sie legen sie bei der Konfiguration der Startprüfung für den Worker-Pool fest.
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 des Worker-Pools (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 von Cloud Run heruntergefahren.

Wenn die HTTP-Startprüfung innerhalb der angegebenen Zeit erfolgreich ist und Sie eine HTTP-Aktivitätsprüfung konfiguriert haben, wird diese von Cloud Run gestartet.
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 zwischen 200 und 400 ist ein Erfolg. Alles andere zeigt einen Fehler an.

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

Nachdem die Aktivitätsprüfung konfiguriert wurde und jede Startprüfung erfolgreich ist, sendet Cloud Run eine Systemdiagnoseanfrage an den Worker-Pool.

Wenn eine Aktivitätsprüfung innerhalb der angegebenen Zeit nicht erfolgreich ist (failureThreshold × periodSeconds), fährt Cloud Run den Container mit einem SIGKILL-Signal herunter. Nachdem Cloud Run den Container heruntergefahren hat, startet das Cloud Run-Autoscaling eine neue Containerinstanz.

Prü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 oder der Cloud Run REST API konfigurieren:

Konsole

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

    Zu Cloud Run

  2. Wählen Sie im Menü Worker-Pools aus.

    • Wenn Sie einen neuen Worker-Pool konfigurieren, klicken Sie auf Container bereitstellen.
    • Wenn Sie einen vorhandenen Worker-Pool konfigurieren, wählen Sie den Worker-Pool aus und klicken Sie dann auf Neue Überarbeitung bearbeiten und bereitstellen.
  3. Wenn Sie einen neuen Worker-Pool konfigurieren, füllen Sie die Seite mit den anfänglichen Worker-Pool-Einstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Konfiguration von Worker-Pools zu maximieren.

  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 Typ der Systemdiagnose aus, die Sie hinzufügen möchten.

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

  7. Konfigurieren Sie die Prüfungseinstellungen, die je nach Prüfungstyp variieren:

    • 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 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, muss Ihr Container-Image das gRPC-Systemdiagnoseprotokoll implementieren. Weitere Informationen finden Sie unter GRPC Health Checking Protocol.

    • Geben Sie für beide Prüfungstypen (HTTP und gRPC) Folgendes 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. Geben Sie beispielsweise 2 an, um die Prüfung alle 2 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. Geben Sie einen Wert zwischen 1 und dem kleineren Wert von 240 und periodSeconds an. Der Standardwert ist 1.

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

  9. Klicken Sie auf Erstellen oder Bereitstellen.

REST API

Wichtig: Wenn Sie Ihren Cloud Run-Worker-Pool für HTTP-Prüfungen konfigurieren, müssen Sie dem Worker-Pool-Code 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-Worker-Pool implementieren.

HTTP-Start

Verwenden Sie die REST API, um dies zu konfigurieren.

HTTP-Aktivität

Verwenden Sie die REST API, um dies zu konfigurieren.

gRPC-Start

Verwenden Sie die REST API, um dies zu konfigurieren.

gRPC-Aktivität

Verwenden Sie die REST API, um dies zu konfigurieren.

HTTP-Systemdiagnose-Endpunkte erstellen

Wenn Sie den Cloud Run-Worker-Pool für eine HTTP-Start- oder Aktivitätsprüfung konfigurieren, müssen Sie dem Worker-Pool-Code einen Endpunkt hinzufügen, der auf die Prüfung reagiert. Der Endpunkt kann einen beliebigen Namen haben, z. B. /startup oder /ready. Er muss jedoch mit dem Wert übereinstimmen, den 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

HTTP-Systemdiagnose-Endpunkte sind extern zugänglich und folgen den gleichen Prinzipien wie alle anderen extern zugänglichen HTTP-Endpunkte.