Mit Cloud Deploy können Sie eine Bereitstellung auf einem Ziel ausführen, das so konfiguriert ist, dass es mehrere Ziele darstellt. Ihre Anwendung wird parallel (gleichzeitig) auf diesen Zielen bereitgestellt. Das Ziel, das Sie als Phase in Ihrer Pipeline identifizieren, wird als Multi-Target bezeichnet. Die Ziele, aus denen das Multi-Target besteht, werden als untergeordnete Ziele bezeichnet.
Sie können die parallele Bereitstellung mit jedem Zieltyp verwenden, der von Cloud Deploy unterstützt wird.
Vorteile der parallelen Bereitstellung
Sie können die parallele Bereitstellung beispielsweise verwenden, um Ihre Anwendung auf mehreren Produktionszielen bereitzustellen. In diesem Fall müssen Sie die Bereitstellung nicht nacheinander auf jedem Ziel ausführen, da es keine Progression gibt (z. B. von der Entwicklung über die Staging- zur Produktionsumgebung).
Diese parallele Bereitstellung kann Teil einer normalen Lieferpipeline
Progression sein:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...].
Cloud Deploy-Ressourcen für die parallele Bereitstellung
Bei der parallelen Bereitstellung werden die folgenden speziellen Cloud Deploy-Ressourcen verwendet:
Multi-Targets
Ein Multi-Target ist ein Ziel, das mit der Property
multiTargetkonfiguriert ist, auf der obersten Ebene der Zielkonfigurations-YAML. Anstatt auf den Laufzeitcluster oder -dienst zu verweisen, verweist es mitmultiTarget.targetIdsauf ein oder mehrere andere Ziele.Untergeordnete Ziele
Ein untergeordnetes Ziel ist jedes Ziel, auf das von einem Multi-Target als
multiTarget.targetIdsverwiesen wird.Controller-Roll-outs
Ein Controller-Roll-out ist ein Roll-out, das dem Multi-Target entspricht.
Weitere Informationen zu den Möglichkeiten und Einschränkungen bei der Verwendung eines Controller-Roll-outs finden Sie unter Beschränkungen.
-
Weitere Informationen zu den Möglichkeiten und Einschränkungen bei der Verwendung eines untergeordneten Roll-outs finden Sie unter Beschränkungen.
Parallele Bereitstellung einrichten
Zum Einrichten der parallelen Bereitstellung müssen Sie ein Multi-Target und die Anzahl der benötigten untergeordneten Ziele definieren (bis zum Limit). Zieldefinitionen sind für alle Ziele gleich, mit Ausnahme der folgenden:
- Multi-Targets enthalten die Property
multiTarget. - Untergeordnete Ziele enthalten nicht die Property
multiTarget, sondern werden vom Multi-Target mit der PropertymultiTarget.targetIdsreferenziert. - Sie können das Multi-Target für die Genehmigung konfigurieren, nicht aber die untergeordneten Ziele, die nicht
requireApproval:trueenthalten können.
Multi-Targets und untergeordnete Ziele können benutzerdefinierte Ausführungsumgebung konfigurationen enthalten. Wenn für ein untergeordnetes Ziel keine Ausführungsumgebung angegeben ist, wird die in der Multi-Target-Definition definierte oder die Standardumgebung übernommen. Weitere Informationen finden Sie unter Ausführungsumgebungen und parallele Bereitstellung.
Multi-Target konfigurieren
Ein Multi-Target ist ein einzelnes Ziel, das als Phase in Ihrer Lieferpipeline identifiziert wird, aber auf ein oder mehrere untergeordnete Ziele verweist.
Die Multi-Target-Konfiguration enthält die Property multiTarget. Ein Multi-Target kann nicht die Properties gke, run oder anthosCluster haben.
Die Konfiguration für ein Multi-Target ist unabhängig davon, in welcher Laufzeitumgebung Sie die Bereitstellung ausführen.
Erstellen Sie in der YAML-Datei Ihrer Lieferpipeline 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 Multi-Targets, der in der Definition der Lieferpipeline,
stages.targetIdProperty verwendet wird.