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
Rufen Sie in der Google Cloud Console Cloud Run auf:
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.
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.
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 Typ der Systemdiagnose aus, die Sie hinzufügen möchten.
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.
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.
Klicken Sie auf Hinzufügen, um den neuen Schwellenwert hinzuzufügen.
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-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.