Optionen der Bereitstellung
Cloud Run bietet mehrere Bereitstellungsoptionen. Alle Bereitstellungsoptionen führen zu einem Container-Image, das als Cloud Run-Dienst oder Job in der vollständig verwalteten und hoch skalierbaren Cloud Run-Infrastruktur ausgeführt wird.
Container-Images
Jedes Container-Image, das dem Container-Laufzeitvertrag von Cloud Run entspricht, kann in einem Cloud Run-Dienst oder Job bereitgestellt werden.
Quellen
In Cloud Run können Sie Quellcode mit einem einzigen Befehl erstellen und bereitstellen.
Bei der Bereitstellung von Quellen wandelt Cloud Build den Code in ein Container-Image um, das in Artifact Registry gespeichert wird.
Sie können Quellen bereitstellen, die eine Dockerfile
enthalten oder in einer der unterstützten Laufzeiten geschrieben wurden.
Quellen können in einem Cloud Run-Dienst oder Job bereitgestellt werden.
Funktionen
Sie können Funktionen, die einem einzigen Zweck dienen, bereitstellen, die auf Ereignisse reagieren, die von Ihrer Cloud-Infrastruktur und Ihren Diensten ausgegeben werden. Die Funktion wird ausgelöst, wenn ein beobachtetes Ereignis initiiert wird.
Die Bereitstellung von Funktionen ist eine spezielle Art der Quellcodebereitstellung, bei der Sie nur den Funktionscode angeben müssen. Sie können Cloud Run-Funktionen mit einer Reihe von unterstützten Programmiersprachen schreiben.
Funktionen werden als Cloud Run-Dienste bereitgestellt.
Kontinuierliche Bereitstellung von Quellen aus Git
Mit Cloud Run können Sie die kontinuierliche Bereitstellung aus Git konfigurieren.
Wie bei Quellimplementierungen können Sie auch Quellen bereitstellen, die eine Dockerfile
enthalten oder in einer der unterstützten Sprachlaufzeiten geschrieben sind.
Die kontinuierliche Bereitstellung aus Git ist für Cloud Run-Dienste verfügbar und kann in Cloud Build für Cloud Run-Jobs manuell konfiguriert werden.
Cloud Run-Dienste
Dienste sind eine der wichtigsten Ressourcen von Cloud Run. Jeder Dienst befindet sich in einer bestimmten Google Cloud-Region. Zu Redundanz- und Failover-Zwecken werden Dienste automatisch in mehreren Zonen der Region repliziert, in der sie sich befinden. Ein bestimmtes Google Cloud-Projekt kann viele Dienste in verschiedenen Regionen ausführen.
Jeder Dienst stellt einen eindeutigen Endpunkt bereit und skaliert die zugrunde liegende Infrastruktur automatisch, um eingehende Anfragen zu verarbeiten. Sie können einen Dienst aus einem Container, Repository oder Quellcode bereitstellen.
Das folgende Diagramm zeigt das Cloud Run-Ressourcenmodell für Dienste:
Das Diagramm zeigt ein Google Cloud-Projekt mit drei Cloud Run-Diensten, Service A
, Service B
und Service C
, von denen jeder mehrere Überarbeitungen hat.
Im Diagramm erhält Service A
viele Anfragen, was zum Starten und Ausführen mehrerer Instanzen führt, in denen jeweils ein einzelner Container ausgeführt wird. Beachten Sie, dass Service B
keine Anfragen empfängt, daher wird noch keine Instanz gestartet.
Service C
führt mehrere Container pro Instanz innerhalb jeder Version aus. Beachten Sie, dass nur der Ingress-Container die Anfrage empfängt. Jede Instanz mit mehreren Containern wird als unabhängige Einheit skaliert.
Cloud Run-Dienstüberarbeitungen
Bei jedem Deployment in einem Dienst wird eine Überarbeitung erstellt. Eine Version besteht aus einem oder mehreren Container-Images sowie Konfigurationen wie Umgebungsvariablen, Arbeitsspeicherlimits oder einem Wert für die Nebenläufigkeit von Anfragen.
Überarbeitungen können nach der Erstellung nicht mehr geändert werden. Wenn Sie beispielsweise ein Container-Image für einen neuen Cloud Run-Dienst bereitstellen, wird die erste Überarbeitung erstellt. Wenn Sie anschließend für denselben Dienst ein anderes Container-Image bereitstellen, wird eine zweite Überarbeitung erstellt. Wenn Sie anschließend eine Umgebungsvariable festlegen, wird eine dritte Überarbeitung erstellt und so weiter.
Anfragen werden automatisch so schnell wie möglich an die neueste fehlerfreie Dienstüberarbeitung weitergeleitet.
Cloud Run-Dienstinstanzen
Jede Dienstüberarbeitung, die Anfragen empfängt, wird automatisch auf die Anzahl der Instanzen skaliert, die zur Verarbeitung aller Anfragen nötig sind. Instanzen können viele Anfragen gleichzeitig empfangen. Mit der Einstellung für die Nebenläufigkeit von Anfragen können Sie die maximale Anzahl von Anfragen festlegen, die parallel an jede Instanz einer Version gesendet werden können.
Cloud Run-Jobs
Jeder Job befindet sich in einer bestimmten Google Cloud-Region und führt einen oder mehrere Container aus. Ein Job besteht aus einer oder mehreren unabhängigen Aufgaben, die in einer bestimmt Jobausführung parallel ausgeführt werden.
Cloud Run-Jobausführungen
Wenn ein Job ausgeführt wird, wird eine Jobausführung erstellt, in der alle Jobaufgaben gestartet werden. Alle Aufgaben einer Jobausführung müssen erfolgreich abgeschlossen werden, damit die Jobausführung erfolgreich ist. Sie können Zeitlimits für Aufgaben festlegen und die Anzahl der Wiederholungen im Fall von Aufgabenfehlern angeben. Wenn eine Aufgabe die maximale Anzahl an Wiederholungsversuchen überschreitet, werden diese Aufgabe und der Job als fehlgeschlagen markiert. Standardmäßig werden maximal 100 Aufgaben parallel ausgeführt. Sie können aber auch ein niedrigeres Maximum festlegen, wenn Ihre Sicherungsressourcen dies erfordern.
Cloud Run-Jobaufgaben
Bei jeder Jobausführung werden mehrere Aufgaben parallel ausgeführt. Jede Aufgabe führt eine Instanz aus und wiederholt dies gegebenenfalls.