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 ( failureThreshold × periodSeconds ) nicht erfolgreich ist, 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 Cloud Run REST API konfigurieren:
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.