Auf mehreren Zielen gleichzeitig bereitstellen

Mit Cloud Deploy können Sie Bereitstellungen auf einem Ziel vornehmen, das für mehrere Ziele darstellen und Ihre Anwendung für diese Ziele in parallel (gleichzeitig) erfolgen. Das Ziel, das Sie als Phase in Ihrer Pipeline festlegen, werden als mehrere Ziele bezeichnet und die Ziele aus denen mehrere Ziele bestehen, werden als untergeordnete Ziele bezeichnet.

Sie können die parallele Bereitstellung für jeden Zieltyp verwenden, Cloud Deploy unterstützt u. a. Google Kubernetes Engine, Cloud Run und GKE Enterprise.

Vorteile einer parallelen Bereitstellung

Sie können die parallele Bereitstellung z. B. verwenden, um Ihre Anwendung auf mehreren Produktionszielen. In diesem Fall müssen Sie nicht auf jedem Ziel hintereinander, da es keinen Fortschritt gibt (z. B. von der Entwicklung vom Staging bis zur Produktion).

Diese parallele Bereitstellung kann Teil einer normalen Bereitstellungspipeline sein. Fortschritt:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...].

Für die parallele Bereitstellung verwendete Cloud Deploy-Ressourcen

Die parallele Bereitstellung verwendet die folgende spezialisierte Cloud Deploy-Anwendung Ressourcen:

  • Mehrere Ziele

    Ein solches Ziel ist ein Ziel, das mit der Eigenschaft multiTarget konfiguriert wird, auf der obersten Ebene der YAML-Datei mit der Zielkonfiguration hinzu. oder Laufzeit-Cluster oder -Dienst, verweist er auf ein oder mehrere andere Ziele, multiTarget.targetIds.

  • Untergeordnete Ziele

    Ein untergeordnetes Ziel ist jedes Ziel, auf das in einem Mehrfachziel als multiTarget.targetIds Das untergeordnete Element muss auch auf einen unterstützten Zieltyp verweisen (Google Kubernetes Engine, GKE Enterprise oder Cloud Run.

  • Controller-Roll-outs

    Ein Controller-Rollout ist ein Rollout, das dem Multi-Ziel entspricht.

    Weitere Informationen dazu, was mit einem Controller-Roll-out möglich ist und was nicht, finden Sie unter Einschränkungen.

  • Untergeordnete Roll-outs

    Weitere Informationen dazu, was mit einem untergeordneten Roll-out möglich ist und was nicht, finden Sie unter Einschränkungen.

Parallele Bereitstellung einrichten

Bei der Einrichtung einer parallelen Bereitstellung definieren Sie ein Mehrfachziel Anzahl der erforderlichen untergeordneten Ziele (bis zum Limit). Ziel sind dieselben Definitionen wie für alle Ziele, mit Ausnahme von:

  • Dazu gehört unter anderem das Attribut multiTarget.
  • Untergeordnete Ziele enthalten nicht das Attribut multiTarget, es wird aber darauf verwiesen mit der Property multiTarget.targetIds aus dem Multi-Ziel entfernen.
  • Sie können mehrere Ziele für die Genehmigung konfigurieren, jedoch nicht die untergeordneten Ziele. und darf requireApproval:true nicht enthalten.

Mehrere und untergeordnete Ziele können benutzerdefinierte Ausführungsumgebung Konfigurationen. Wenn in einem untergeordneten Ziel keine Ausführungsumgebung angegeben ist, die in der Definition für mehrere Ziele oder die Standardeinstellung definiert ist. Weitere Informationen finden Sie unter Ausführungsumgebungen und parallele Bereitstellung .

Mehrere Ziele konfigurieren

Ein Multi-Ziel ist ein einzelnes Ziel, das als Phase der Auslieferung festgelegt wird. die auf ein oder mehrere untergeordnete Ziele verweist.

Die Konfiguration für mehrere Ziele enthält das Attribut multiTarget. A Mehrere Ziele können nicht die Properties gke, run oder anthosCluster haben. Die Konfiguration für mehrere Ziele ist unabhängig von der verwendeten Laufzeit gleich. für die Bereitstellung.

Erstellen Sie in der YAML-Datei für die Bereitstellungspipeline oder in einer separaten YAML-Datei die grundlegende Zieldefinition, einschließlich multiTarget:

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
 targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]

In dieser YAML-Datei...

  • TARGET_NAME ist der Name dieses Mehrfachziels, also die in der Definition der Bereitstellungspipeline verwendet werden, stages.targetId.

  • CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn sind die Namen der untergeordneten Elemente, auf die diese Mehrfachziel-Bereitstellung ausgerichtet ist. Jeder Name entspricht zum Attribut name in der untergeordneten Zieldefinition.

Das Vorhandensein der Eigenschaft multiTarget.targetIds macht dieses Ziel zu einem mehrere Ziele.

Untergeordnete Ziele konfigurieren

Für jedes Ziel, das als Kind identifiziert in Ihrem Konfiguration mit mehreren Zielen und konfigurieren Sie ein weiteres Ziel als untergeordnetes Ziel:

In der YAML-Datei für die Bereitstellungspipeline oder in einer separaten YAML-Datei verwenden, erstellen Sie die grundlegende Zieldefinition:

GKE

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
gke:
 cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME

In dieser YAML-Datei...

  • CHILD_TARGET1 ist der Name des untergeordneten Ziels. Die Name entspricht einem Mitglied in der Liste der Ziele im multiTarget.targetIds in der Definition für mehrere Ziele.

  • Der Wert des Attributs gke.cluster ist der Ressourcenname des Clusters sich dieses Ziel bezieht, einschließlich der Projekt-ID, der Region und des Clusters Namen.

Dieses Ziel ist genauso konfiguriert wie ein standardmäßiges GKE-Ziel. Das Einzige, was dieses Ziel zu einem untergeordneten Ziel macht, ist, dass es vom multiTarget.targetIds in den verschiedenen Zielen.

Cloud Run

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
run:
 location: projects/PROJECT_ID/locations/REGION

In dieser YAML-Datei...

  • CHILD_TARGET1 ist der Name des untergeordneten Ziels. Die Name entspricht einem Mitglied in der Liste der Ziele im multiTarget.targetIds in der Definition für mehrere Ziele.

  • Der Wert des Attributs run.location ist der Ressourcenname des Cloud Run-Dienst, auf den sich dieses Ziel bezieht, einschließlich des die Projekt-ID und die Region.

Dieses Ziel ist wie ein standardmäßiges Cloud Run konfiguriert Ziel. Das Einzige, was dieses Ziel zu einem untergeordneten Ziel macht, ist, dass seine referenzierten nach der multiTarget.targetIds-Eigenschaft bei mehreren Zielen an.

GKE Enterprise

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
anthosCluster:
 membership: projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME

In dieser YAML-Datei...

Dieses Ziel ist wie eine standardmäßige GKE Enterprise-Version konfiguriert Ziel. Das Einzige, was dieses Ziel zu einem untergeordneten Ziel macht, ist, dass seine referenzierten nach der multiTarget.targetIds-Eigenschaft bei mehreren Zielen an.

Bereitstellungsparameter an Ziele übergeben

Sie können zwischen untergeordneten Zielen unterscheiden, indem Sie Parameter in Ihre das Manifest und die Werte in der Definition Ihrer Bereitstellungspipeline enthält. Diese Werte können separat angewendet auf den separate Manifeste basierend auf dem Labelabgleich für die entsprechenden Ziele.

Beispielsweise können Sie für jedes untergeordnete Ziel. Dazu nehmen Sie die Parameter und Werte Fortschritt der Pipeline Labels für die untergeordneten Ziele an, damit diese mit jedem Parameter/Wert-Paar übereinstimmen.

Weitere Informationen zu Bereitstellungsparametern

Release erstellen

Wenn Sie mehrere Ziele und untergeordnete Ziele konfiguriert haben, Bereitstellungspipeline und Zielressourcen erstellen und anschließend wie gewohnt einen Release erstellen.

Der Lebenszyklus der Bereitstellungspipeline ist derselbe wie bei Cloud Deploy-Pipeline und -Ziele, außer dass sie beim Erreichen der mit dem Multi-Target, erstellt Cloud Deploy einen Controller Roll-out für das mehrere Ziele und ein untergeordnetes Rollout, um die Anwendung auf für jedes untergeordnete Ziel.

Pub/Sub-Nachrichten als Antwort auf Cloud Deploy-Vorgänge zwischen Controller-Roll-outs und untergeordneten Roll-outs unterscheiden.

Beschränkungen

  • Ein Mehrfachziel darf nicht mehr als 50 untergeordnete Ziele haben.

  • Alle untergeordneten Ziele eines einzelnen Ziels mit mehreren Zielen müssen dieselbe Ziellaufzeit haben (z. B. alle GKEs oder alle GKE Enterprises).

  • Innerhalb einer Bereitstellungspipeline kann ein untergeordnetes Ziel nur ein übergeordnetes Ziel haben mehrere Ziele.

  • Ein Mehrfachziel darf weder untergeordnete Elemente haben noch auf sich selbst oder ein anderes verweisen. mehrere Ziele als untergeordnete Ziele festlegen.

  • Sie können ein untergeordnetes Ziel in einer einzelnen Bereitstellungspipeline nur einmal verwenden. aber Sie können sie in anderen Pipelines wiederverwenden.

  • Standardpools haben Parallelitätslimits, private Pools jedoch nicht.

    Beim Bereitstellen für mehrere Ziele werden alle untergeordneten Roll-outs gleichzeitig bereitgestellt bis zum Cloud Build-Limit für die Nebenläufigkeit. Wenn Sie mehr untergeordnete Ziele haben, werden die Bereitstellungsjobs für einige Ziele erst ausgeführt, wenn die anderen beendet sind. bedeutet, dass Cloud Deploy die Bereitstellung nicht für alle untergeordneten Ziele in diesem Fall.

    Wenn die Ziele außerdem verify Jobs enthalten: kann es sein, dass einer oder mehrere dieser Bestätigungsjobs vor dem Anwendung wurde für alle untergeordneten Ziele bereitgestellt.

    Wenn die gleichzeitige Bereitstellung für mehr Ziele als das Limit erforderlich sein muss Cloud Build-Dokumentation angegeben haben, haben zwei Optionen:

Ausführungsumgebungen und parallele Bereitstellung

Jedes Ziel kann so konfiguriert werden, dass eine nicht standardmäßige Ausführungsumgebung verwendet wird.

  • Wenn das mehrere Ziel eine nicht standardmäßige Ausführungsumgebung hat, werden alle untergeordneten Ziele Standardausführungsumgebung verwenden, übernehmen Sie die nicht standardmäßige Umgebung aus dem mehrere Ziele

  • Wenn für mehrere Ziele die Standardausführungsumgebung verwendet wird, kann jedes untergeordnete Ziel die mit einer nicht standardmäßigen Ausführungsumgebung konfiguriert ist, keine Standard-URL.

Diese Regeln machen es einfacher, Ausführungsumgebungen an untergeordnete Ziele weiterzugeben aus mehreren Zielen ab, sodass Sie die Ausführung Umgebung für jedes untergeordnete Ziel zu erstellen. Gleichzeitig können Sie weiterhin die Ausführungsumgebung für ein oder mehrere untergeordnete Ziele erstellen, falls Sie dies tun müssen.

Siehe Ausführungsumgebungen von Google Cloud Deploy verwenden finden Sie weitere Informationen zu Ausführungsumgebungen in Cloud Deploy.

Rollback einer parallelen Bereitstellung durchführen

Wenn Sie für eine Bereitstellung von mehreren parallelen Zielen ein Rollback durchführen müssen, Führen Sie für mehrere Ziele ein Rollback wie unter Rollback eines Ziels durchführen

Genehmigungen für die parallele Bereitstellung

Wie bei allen Zielen können Sie Ihre parallele Bereitstellung so konfigurieren, dass Genehmigungen. Bei der parallelen Bereitstellung können Sie die Genehmigung jedoch nur für die mehrere Ziele. Die Genehmigung oder Ablehnung wirkt sich zusammen auf alle untergeordneten Ziele aus.

Parallele Bereitstellung in der Google Cloud Console ansehen

Sie können Details zu Ihren untergeordneten Zielen, mehreren Zielen, und untergeordneten Roll-outs in der Google Cloud Console.

Wenn Sie die Liste der Ziele für eine bestimmte Bereitstellungspipeline anzeigen, Pipelinedetails, werden mehrere Ziele aufgelistet, untergeordnete Ziele jedoch nicht. In den Releasedetails sehen Sie jedoch das Controller-Roll-out und der untergeordneten Roll-outs. Controller-Roll-outs und untergeordnete Roll-outs werden auch auf der Seite Tab Rollouts auf der Detailseite der Bereitstellungspipeline.

Im Release Inspector können Sie sich gerenderte Manifeste für untergeordnete Roll-outs.

Parallele Bereitstellung mit einer Bereitstellungsstrategie verwenden

Sie können die Bereitstellung parallel durchführen, wenn Sie eine Canary-Bereitstellungsstrategie Weitere Informationen finden Sie unter Parallele Bereitstellung mit einer Canary-Bereitstellungsstrategie verwenden .

Nächste Schritte