In diesem Dokument wird beschrieben, wie Sie Ihre Anwendungen bereitstellen, einschließlich Cloud Run-Dienste und Cloud Run-Jobs.
Mit Cloud Deploy können Sie Ihre containerbasierten Arbeitslasten in jedem Cloud Run-Dienst oder Job bereitstellen. Alle Cloud Deploy-Funktionen werden unterstützt, wenn Sie für Cloud Run-Dienste auf Cloud Run-Ziele bereitstellen. Canary-Bereitstellungen werden jedoch nicht für Cloud Run-Jobs unterstützt.
In diesem Dokument werden die drei Hauptkonfigurationen beschrieben, die Sie in für die Bereitstellung in Cloud Run:
- Zielkonfiguration erstellen
- Skaffold-Konfiguration erstellen
- Cloud Run-Dienstdefinitionen oder Jobdefinitionen erstellen
Beschränkungen
Sie können pro Ziel nur einen Cloud Run-Dienst oder -Job bereitstellen.
Sie können keine Kanarien-Bereitstellung für einen Cloud Run-Job ausführen.
Cloud Run-Dienste können jedoch ein Canary-Deployment verwenden.
Hinweise
Achten Sie darauf, dass Sie die gcloud CLI verwenden. Version
401.0.0
oder höher.
Zielkonfiguration erstellen
Das Ziel kann in der YAML-Datei für die Bereitstellungspipeline oder in einem in einer separaten Datei. Außerdem können Sie mehrere Ziele in derselben Datei konfigurieren.
Erstellen Sie in der Zieldefinition einen run
-Abschnitt, um den Speicherort anzugeben, an dem der Cloud Run-Dienst erstellt werden soll.
Die Syntax zum Angeben des Cloud Run-Dienstes oder -Jobs in Ihrem lautet die Zieldefinition:
run:
location: projects/[project_name]/locations/[region_name]
Diese Ressourcen-ID verwendet die folgenden Elemente:
[
project_name
] ist der Name des Google Cloud-Projekts, in dem Ihr Der Cloud Run-Dienst oder -Job wird erstellt.Dieser Schritt wird für jedes Ziel ausgeführt. Wir empfehlen für jedes Projekt ein anderes Cloud Run-Dienst oder -Job. Mehr als einen Dienst Projekt im selben Projekt arbeiten, müssen Sie Skaffold-Profile in der Konfigurationsdatei
skaffold.yaml
.[
region_name
] ist die Region, in der der Dienst oder Job erstellt wird. Ihr Dienst oder Job kann sich in einer beliebigen von Cloud Run unterstützte Region.
Im Folgenden finden Sie ein Beispiel für eine Zielkonfiguration, in der der zu erstellende Cloud Run-Dienst oder -Job definiert wird:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development service
run:
location: projects/my-app/locations/us-central1
Sie können dieses Ziel in einer Cloud Deploy-Bereitstellungspipeline definieren oder separat. In jedem Fall müssen Sie Ziel registrieren bevor Sie den Release zum Bereitstellen Ihres Cloud Run-Dienstes erstellen oder einen Job.
Skaffold-Konfiguration erstellen
Hier sehen Sie ein Beispiel einer skaffold.yaml
-Datei für ein
Cloud Run-Bereitstellung:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: cloud-run-application
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
In dieser skaffold.yaml
-Datei…
manifests.rawYaml
stellt die Namen von Cloud Run bereit. Dienstdefinitionen.In diesem Beispiel ist
service.yaml
die Datei, die ein Cloud Run-Dienst, der von Skaffold bereitgestellt wird. Dieser Dateiname kann beliebig sein, aber per Konvention ist es für einen Dienstservice.yaml
undjob.yaml
für einen Job.Die Stanza
deploy
gibt an, wie das Manifest bereitgestellt werden soll. insbesondere das Projekt und den Standort.deploy
ist ein Pflichtfeld.Wir empfehlen, das Feld
{}
leer zu lassen. Von Cloud Deploy ausgefüllte Daten je nach Projekt und Standort des Ziels, Definition.Für die lokale Entwicklung können Sie jedoch hier Werte angeben. Cloud Deploy verwendet jedoch immer das Projekt und den Speicherort aus der Zieldefinition, unabhängig davon, ob hier Werte angegeben sind.
Cloud Run-Dienstdefinitionen erstellen
Zum Erstellen einer Cloud Run-Dienstdefinition haben Sie zwei Möglichkeiten: manuell oder aus einem vorhandenen Dienst kopieren. Beide werden in diesem Abschnitt beschrieben.
Option 1: Neuen Cloud Run-service.yaml
erstellen
In der Datei service.yaml wird Ihr Cloud Run-Dienst definiert. Wenn Sie einen Release erstellen, verwendet Skaffold diese Definition, um Ihren Dienst bereitzustellen.
Hier ein vereinfachtes Beispiel:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: [SERVICE_NAME]
spec:
template:
spec:
containers:
- image: [IMAGE_PATH]
Wobei:
[SERVICE_NAME]
ist ein Name für diesen Cloud Run-Dienst.[IMAGE_PATH]
verweist auf das Container-Image oder die Images, mit denen Sie bereitstellen. für diesen Dienst.
Option 2: service.yaml
mit der Google Cloud Console aus einem vorhandenen Dienst kopieren
Sie können einen Dienst mit der Google Cloud Console erstellen oder einen vorhandenen Dienst verwenden.
und kopiere deine service.yaml
von dort.
So rufen Sie die service.yaml
mit der Google Cloud CLI ab:
gcloud run services describe [service_name] --format=export
So rufen Sie die service.yaml
aus der Google Cloud Console ab:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run-Dienste“ auf. Seite.
Wählen Sie den vorhandenen Dienst aus, dessen Definition Sie verwenden möchten.
Sie können auch eine neue erstellen und dann auswählen. Wenn Sie den Dienst auswählen, wird die Seite „Dienstdetails“ angezeigt:
Wählen Sie den Tab YAML aus.
Klicken Sie auf Bearbeiten und kopieren Sie den Inhalt der YAML-Datei in eine neue Datei namens
service.yaml
in Ihrem Dateisystem, damit Skaffold sie beim Erstellen eines Release verwenden kann.
Cloud Run-Jobdefinitionen erstellen
Zum Bereitstellen einer Cloud Run-Jobdefinition können Sie manuell oder kopieren Sie einen Job aus einem vorhandenen Job. Beide werden in diesem .
Jobs werden nicht unbedingt ausgeführt, wenn sie von einem Cloud Deploy: Dies unterscheidet sich von Diensten, die nachdem sie bereitgestellt wurden. Wie ein Job aufgerufen wird, hängt vom Job ab selbst.
Option 1: Neuen Cloud Run-job.yaml
erstellen
In der Datei job.yaml wird Cloud Run-Job. Wenn Sie ein Release erstellen, verwendet Skaffold diese Definition, um den Job bereitzustellen.
Hier ein vereinfachtes Beispiel:
apiVersion: run.googleapis.com/v1
kind: Job
metadata:
name: [JOB_NAME]
spec:
template:
spec:
containers:
- image: [IMAGE_PATH]
Wobei:
[JOB_NAME]
ist ein Name für diesen Cloud Run-Job.[IMAGE_PATH]
verweist auf das Container-Image, das Sie für diesen Job bereitstellen.
Option 2: job.yaml
mit der Google Cloud Console aus einem vorhandenen Job kopieren
Sie können einen Job mit der Google Cloud Console erstellen oder einen vorhandenen Job verwenden.
und kopiere deine job.yaml
von dort.
So rufen Sie die job.yaml
mit der Google Cloud CLI ab:
gcloud run jobs describe [job_name] --format=export
So rufen Sie die job.yaml
aus der Google Cloud Console ab:
Rufen Sie in der Google Cloud Console die Cloud Run-Jobs auf. Seite.
Wählen Sie den vorhandenen Job aus, dessen Definition Sie verwenden möchten.
Sie können auch eine neue erstellen und dann auswählen. Wann? wählen Sie den Job aus, wird die Seite "Job Details" (Jobdetails) angezeigt:
Wählen Sie den Tab YAML aus.
Klicken Sie auf Edit (Bearbeiten) und kopieren Sie den Inhalt der YAML-Datei in eine neue Datei mit dem Namen
job.yaml
, sodass Skaffold es verwenden kann, wenn Sie Release erstellen.
Zusammenfassung
Nachdem Sie nun Ihre Cloud Run-Dienst- oder Jobdefinition haben,
skaffold.yaml
-Konfiguration und Ihr Cloud Deploy-Ziel
und Sie haben
Ihr Ziel registriert
Cloud Deploy-Ressource nutzen, können Sie
Bereitstellungspipeline aufrufen
um einen Release zu erstellen und den Fortschritt der definierten Ziele voranzutreiben
in der Pipeline.
Kurzanleitung Anwendung mit Cloud Deploy in Cloud Run bereitstellen in Aktion sehen.
Verhalten von Diensten über mehrere Überarbeitungen hinweg
Wenn Sie einen Dienst noch einmal bereitstellen, basiert die neue Überarbeitung auf dem neuen
hat service.yaml
bereitgestellt. Von der vorherigen Version wird nichts beibehalten, es sei denn, sie ist mit der neu bereitgestellten YAML-Datei identisch. Wenn beispielsweise
gibt es Konfigurationseinstellungen oder -labels in der vorherigen Version, die nicht
In der neuen YAML-Datei sind diese Einstellungen oder Labels in der neuen Version nicht vorhanden.
Cloud Run-Jobs auslösen
Nachdem Sie einen Job bereitgestellt haben, können Sie ihn wie beschrieben auslösen. Cloud Run-Dokumentation.
Cloud Run-Dienste und -Jobs in mehreren Projekten bereitstellen
Wenn Sie Dienste oder Jobs bereitstellen müssen, die sich in verschiedenen Projekten befinden, Ausführungsdienstkonto benötigt Berechtigung, auf die Projekte zuzugreifen, in denen diese Dienste oder Jobs definiert sind.
Siehe Cloud Deploy-Ausführungsdienstkonto und Rollen und Berechtigungen für Identity and Access Management .
Nächste Schritte
Weitere Informationen zu Ausführungsumgebungen für Cloud Deploy
Weitere Informationen zur Skaffold-Unterstützung für Cloud Run