Auf dieser Seite wird beschrieben, wie Sie Cloud Deploy so konfigurieren, dass die Konfiguration für jedes Ziel in einer Bereitstellungspipeline.
Cloud Deploy verwendet Skaffold zum Rendern von Kubernetes Manifests. Der Dienst unterstützt das Rendering von RAW-Manifesten und erweiterten Manifestverwaltungstools wie Helm, Kustomize und kpt.
Der Renderingprozess umfasst zwei Phasen:
Das Manifest-Managementtool generiert das Manifest.
Skaffold ersetzt die Image-Referenzen im Manifest durch die Images, die Sie in Ihrem Release bereitstellen möchten.
Diese Seite enthält Konfigurationsbeispiele mit Helm und Kustomize.
Skaffold zum Generieren der Konfiguration verwenden
Wenn Sie noch keine Skaffold-Konfigurationsdatei (skaffold.yaml
) haben, können Sie basierend auf dem Inhalt Ihres Repositorys Skaffold verwenden.
Installieren Sie Skaffold mit der Google Cloud CLI:
gcloud components install skaffold
Führen Sie
skaffold init
in dem Repository aus, das Ihre Manifeste enthält:skaffold init --skip-build
Mit diesem Befehl wird eine skaffold.yaml
-Datei in Ihrem Repository erstellt. Diese Datei verweist auf die Manifeste in diesem Repository. Dieser Inhalt sieht so aus:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: sample-app
manifests:
rawYaml:
- k8s-manifests/deployment.yaml
- k8s-manifests/rbac.yaml
- k8s-manifests/redis.yaml
- k8s-manifests/service.yaml
RAW-Manifeste rendern
Raw-Manifeste sind Manifeste, die nicht von einem Tool wie Helm oder Kustomize verwaltet werden und daher keine Vorverarbeitung erfordern, bevor sie in einem Cluster hydriert und in einem Cluster bereitgestellt werden.
Standardmäßig verwendet Cloud Deploy skaffold render
um Ihre Kubernetes-Manifeste zu rendern. Ersetzen Sie dabei die Namen von nicht getaggten Images durch die
der von Ihnen bereitgestellten Container-Images
mit Tags gekennzeichneten Image-Namen. Wenn Sie dann
den Release hochstufen, verwendet Cloud Deploy
skaffold apply
um die Manifeste anzuwenden und die Images in Ihrer Google Kubernetes Engine bereitzustellen
Cluster.
Eine manifests
-Stanza aus einer Basiskonfiguration sieht so aus:
manifests:
rawYaml:
- PATH_TO_MANIFEST
Weitere Informationen dazu, welche Werte hier übergeben werden können, finden Sie in der Skaffold-Dokumentation.
Rendering mit Helm
Sie können Helm mit Cloud Deploy rendern.
Diagramme. Fügen Sie dazu Helm-Diagrammdetails in eine deploy
-Stanza in einem Skaffold-Profil ein.
Jede solche Definition sieht so aus:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
helm:
releases:
- name: RELEASE_NAME
chartPath: PATH_TO_HELM_CHART
Wobei:
RELEASE_NAME ist der Name der Helm-Diagramminstanz für diesen Release.
PATH_TO_HELM_CHART ist der lokale Pfad zu einem gepackten Helm-Diagramm oder einem entpackten Helm-Diagrammverzeichnis.
Sie können zusätzliche Helm-Konfigurationsoptionen verwenden, wie in der Skaffold-Dokumentation beschrieben.
Rendering mit Kustomize
Sie können Kustomize mit Cloud Deploy verwenden. Verweisen Sie dazu auf die Kustomization-Dateien aus der deploy
-Stanza in Ihrer skaffold.yaml
-Profilkonfiguration.
Sie fügen eine separate Kustomize-Konfiguration für jedes Ziel hinzu, für das Sie Kustomize verwenden, und zwar unter jeder entsprechenden profile
in Ihrer skaffold.yaml
.
Jede solche Definition sieht so aus:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
kustomize:
paths:
- PATH_TO_KUSTOMIZE
Wobei:
PATH_TO_KUSTOMIZE verweist auf Ihre Kustomization-Dateien. Der Standardwert ist
["."]
Sie können zusätzliche Kustomize-Konfigurationsoptionen verwenden, wie in der Skaffold-Dokumentation beschrieben.
Unterschiedliche Manifeste pro Ziel konfigurieren
Oft erfordert jedes Ziel eine etwas andere Konfiguration. Beispielsweise können die Produktionsbereitstellungen mehr Replikate enthalten als die Staging-Bereitstellungen.
Sie können für jedes Ziel eine andere Gruppe von Manifesten rendern, indem Sie jede Variante als anderes Skaffold-Profil bereitstellen.
Profile mit RAW-Manifesten
Wenn Sie mit Rohmanifesten arbeiten, können Sie Cloud Deploy auf eine je nach Ziel eine andere Datei. Sie könnten sie so konfigurieren:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
rawYaml:
- prod.yaml
- name: staging
manifests:
rawYaml:
- staging.yaml
Profile mit Kustomize
Hier sehen Sie ein Beispiel-skaffold.yaml
mit unterschiedlichen Profilen für Staging und Produktion mit Kustomize, wobei jedes Profil auf eine andere Kustomisierung verweist:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
kustomize:
paths:
- environments/prod
- name: staging
manifests:
kustomize:
paths:
- environments/staging
Profile, auf die in der Bereitstellungspipeline verwiesen wird
Auf diese in skaffold.yaml
definierten Profile wird in der Konfiguration der Bereitstellungspipeline pro Ziel verwiesen:
serialPipeline:
stages:
- targetId: staging-target
profiles:
- staging
- targetId: prod-target
profiles:
- prod
Nächste Schritte
- Weitere Informationen zur Konfiguration der Cloud Deploy-Bereitstellungspipeline
- Schritt-für-Schritt-Anleitung für Skaffold-Profile für Cloud Deploy
- Weitere Informationen zu Kustomize
- Weitere Informationen zu Helm
- Weitere Informationen zu Kpt
- Erwägen Sie die Verwendung von Artifact Registry, um Artefakte wie Helm-Diagramme oder Kustomisierungen zu speichern.