Bereitstellung auf mehreren Zielen gleichzeitig

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:
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-Lösung 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-Roll-out ist ein Roll-out, das dem Multi-Target 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 Sie mit einem untergeordneten Roll-out tun können und was nicht, finden Sie unter Einschränkungen.

Parallele Bereitstellung einrichten

Bei der Einrichtung einer parallelen Bereitstellung definieren Sie ein Multi-Ziel und 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 das Mehrfachziel für die Genehmigung konfigurieren, aber nicht die untergeordneten Ziele, die requireApproval:true nicht enthalten dürfen.

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 .

Mehrfachziel 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. auf der sie bereitgestellt werden.

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. Der Name entspricht einem Mitglied in der Liste der Ziele in der multiTarget.targetIds-Property in der Definition mit mehreren Zielen.

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

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 dieses untergeordneten Ziels. Die Name entspricht einem Mitglied in der Liste der Ziele im multiTarget.targetIds in der Definition für mehrere Ziele.

  • Der Wert der run.location-Eigenschaft ist der Ressourcenname des Cloud Run-Dienstes, auf den sich dieses Ziel bezieht, einschließlich der Projekt-ID und der 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 auf die einzelnen Manifeste angewendet werden, basierend auf der Labelübereinstimmung mit den entsprechenden Zielen.

Beispielsweise können Sie für jedes untergeordnete Ziel. Dazu fügen Sie die Parameter und Werte in die Abfolge der Auslieferungspipeline ein. Außerdem müssen Sie Labels für die untergeordneten Ziele angeben, die mit jedem Parameter-Wert-Paar übereinstimmen müssen.

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 jeder Cloud Deploy-Pipeline und -Zielen. Der einzige Unterschied besteht darin, dass Cloud Deploy in der Phase mit dem Multi-Target ein Controller-Roll-out für das Multi-Target und ein untergeordnetes Roll-out erstellt, um die Anwendung auf jedem untergeordneten Ziel bereitzustellen.

Pub/Sub-Nachrichten als Reaktion 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 Multi-Ziels müssen dieselbe Ziellaufzeit haben (z. B. alle GKE oder alle GKE Enterprise).

  • 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.

    Bei der Bereitstellung für mehrere Ziele werden alle untergeordneten Roll-outs gleichzeitig bereitgestellt, bis das Cloud Build-Parallelisierungslimit erreicht ist. 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 wie in der Cloud Build-Dokumentation angegeben, haben zwei Optionen:

Ausführungsumgebungen und parallele Bereitstellung

Jedes Ziel kann so konfiguriert werden, dass eine andere Ausführungsumgebung als die Standardumgebung verwendet wird.

  • Wenn das Multi-Ziel eine nicht standardmäßige Ausführungsumgebung hat, übernehmen alle untergeordneten Ziele, die die standardmäßige Ausführungsumgebung verwenden, die nicht standardmäßige Ausführungsumgebung des Multi-Ziels.

  • 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.

Mit diesen Regeln können Sie die Ausführungsumgebung von einem Multi-Ziel auf untergeordnete Ziele übertragen. Sie müssen die Ausführungsumgebung also nicht für jedes untergeordnete Ziel definieren oder ändern. Sie können die Ausführungsumgebung aber bei Bedarf für ein oder mehrere untergeordnete Ziele anpassen.

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

Parallele Bereitstellung rückgängig machen

Wenn Sie eine Bereitstellung von mehreren parallelen Zielen zurücksetzen möchten, führen Sie ein Rollback für das Mehrfachziel aus, wie unter Rollback für ein Ziel ausführen beschrieben.

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