In diesem Dokument wird beschrieben, wie Sie Ihre Anwendungen in Google Kubernetes Engine-Clustern bereitstellen.
Mit Cloud Deploy können Sie Ihre containerbasierten Arbeitslasten in einem beliebigen Google Kubernetes Engine-Cluster bereitstellen. Alle Cloud Deploy-Funktionen werden unterstützt, wenn Sie in GKE-Zielen bereitstellen.
Hinweise
Sie benötigen mindestens einen GKE-Cluster für die Bereitstellung.
Wenn Sie keine GKE-Cluster haben, in denen Sie die Bereitstellung vornehmen können, können Sie sie erstellen.
Prüfen Sie, ob Ihr Ausführungsdienstkonto die erforderlichen Rollen und Berechtigungen hat.
In dieser skaffold.yaml-Datei enthält der deploy-Abschnitt kubectl, was darauf hinweist, dass Skaffold für Kubernetes (GKE) gerendert und bereitgestellt wird. Dort finden Sie auch die Manifeste, die Sie für diese Anwendung verwenden.
Zielkonfiguration erstellen
Jedes Ziel kann in der YAML-Datei Ihrer Lieferpipeline oder in einer separaten Datei konfiguriert werden. Sie können auch mehrere Ziele in derselben Datei konfigurieren, sie müssen sich jedoch in unterschiedlichen kind: Target-Abschnitten befinden.
Ziele müssen im selben Projekt und in derselben Region wie die Bereitstellungspipeline definiert werden. Die Cluster, in denen die Ziele bereitgestellt werden, können sich jedoch in verschiedenen Projekten und Regionen befinden, sofern das Dienstkonto Zugriff auf diese Projekte hat.
Erstellen Sie in der Zieldefinition einen gke-Abschnitt, um auf den GKE-Cluster zu verweisen:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
Diese GKE-Ressourcen-ID verwendet die folgenden Elemente:
[
project_name] ist der Name des Google Cloud Projekts, in dem Sie diesen Cluster ausführen.Der Cluster, in dem Sie die Bereitstellung vornehmen, muss nicht im selben Projekt wie Ihre Bereitstellungspipeline sein.
[
location] ist die Region, in der der Cluster erstellt wurde.[
cluster_name] ist der Name, der dem Cluster bei seiner Erstellung gegeben wurde.Sie finden diesen Namen in der Liste der Cluster für Ihr Projekt in derGoogle Cloud -Konsole.

Im Folgenden sehen Sie ein Beispiel für eine Zielkonfiguration, die auf einen GKE-Cluster verweist:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development cluster
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
Skaffold-Konfiguration erstellen
In diesem Abschnitt finden Sie ein Beispiel für eine einfache Skaffold-Konfiguration, die Sie für die Bereitstellung in einem GKE-Cluster verwenden können.
Das Folgende ist eine Beispieldatei skaffold.yaml für die Bereitstellung in einem GKE-Cluster:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
Skaffold mit Cloud Deploy verwenden enthält weitere Informationen zur Verwendung von Skaffold mit Ihrer Bereitstellungspipeline.
Kubernetes-Manifeste vorbereiten
Wenn Sie Ihre Anwendung in GKE bereitstellen möchten, stellen Sie Cloud Deploy ein oder mehrere Kubernetes-Manifeste zur Verfügung, die gerendert und dann auf den Zielcluster oder die Zielcluster angewendet werden, um Ihre Anwendung bereitzustellen.
Wenn Sie diese Manifeste nicht haben, erstellen Sie sie, bevor Sie versuchen, mit einer Cloud Deploy-Bereitstellungspipeline bereitzustellen.
Sie können Kustomize oder Helm verwenden, um Manifeste zu erstellen. Sie können auch Kustomize oder Helm verwenden, wenn Ihre Manifeste Vorlagen sind und gerendert werden müssen.
Zusammenfassung
Nachdem Sie Ihre Kubernetes-Manifeste, Ihre skaffold.yaml-Konfiguration und Ihre Cloud Deploy-Zieldefinitionen haben und Ihre Ziele als Cloud Deploy-Ressourcen registriert haben, können Sie jetzt Ihre Lieferpipeline aufrufen, um ein Release zu erstellen und es durch die in der Pipeline definierte Zielsequenz zu verschieben.
Über einen Proxy bereitstellen
Sie können einen Proxy für Ihren GKE-Zielcluster angeben. Dies gilt für Organisationen, die so eingerichtet sind, dass sie nur über einen HTTP-Proxy auf ihre Cluster zugreifen können.
Fügen Sie dazu dem Abschnitt gke in der Zielkonfiguration die Eigenschaft proxyUrl hinzu:
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
proxyUrl: [URL]
Dabei ist URL die URL des Proxys.
In einem privaten Cluster bereitstellen
Sie haben drei Möglichkeiten, Ihre Anwendung in einem privaten GKE-Cluster bereitzustellen:
DNS-Endpunkt verwenden
Dies ist die einfachste Möglichkeit, eine Verbindung zu einem privaten Cluster herzustellen.
Legen Sie in der Zielkonfiguration unter
gkednsEndpointauftruefest.Wenn für Ihren Cluster kein IP-basierter Endpunkt konfiguriert ist, können Sie diesen Schritt überspringen. Cloud Deploy stellt standardmäßig eine Verbindung zum DNS-Endpunkt her, da dies der einzige Endpunkt der Steuerungsebene ist.
Virtual Private Cloud-Netzwerk verwenden
Sie können ein Ziel für die Bereitstellung in einem privaten GKE-Cluster konfigurieren, der mit einem VPC-Netzwerk (Virtual Private Cloud) verbunden ist:
-
Ein privater Cluster ist ein VPC-nativer Cluster, dessen Knoten und Pods standardmäßig vom öffentlichen Internet isoliert sind.
Wenn Sie die interne IP-Adresse des privaten Clusterziels verwenden möchten, legen Sie
internalIpin der Zielkonfiguration untergkeauftruefest. Erstellen Sie in Cloud Build einen privaten Worker-Pool, den Sie für die Bereitstellung in diesem privaten Cluster verwenden können.
Ausführungsumgebung für die Verwendung dieses privaten Pools konfigurieren
Sie müssen diesen Pool für
RENDERverwenden. Sie können sie auch fürDEPLOYundVERIFYverwenden. Hier ein Beispiel mitRENDERundDEPLOY:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Weitere Informationen finden Sie unter Mit Identity Service for GKE über private Cloud Build-Pools auf private GKE-Cluster zugreifen und Auf private GKE-Cluster mit privaten Cloud Build-Pools zugreifen.
Hinweise zu Projekten und Berechtigungen
Sie können ein Ziel für die Verwendung eines privaten Worker-Pools konfigurieren, der in einem privaten Cluster Bereitstellungen ausführen kann. Es sind jedoch einige Dinge zu beachten, wenn sich Ressourcen in verschiedenen Projekten befinden.
- Wenn sich Cloud Deploy und der Worker-Pool in separaten Projekten befinden
Wenn Sie mit einem privaten Pool kommunizieren möchten, der Zugriff auf eine VPC hat und sich in einem anderen Projekt als Ihr Ziel befindet, benötigt der Cloud Deploy-Dienst-Agent ausreichende Berechtigungen, um mit diesem Projekt zu kommunizieren.
Das Ausführungsdienstkonto benötigt außerdem Berechtigungen für den Zugriff auf den Cloud Storage-Bucket.
- Wenn sich der Worker-Pool und der Cluster in separaten Projekten befinden
Befindet sich der private GKE-Cluster in einem anderen Projekt als der private Worker-Pool, benötigt das Ausführungs-Dienstkonto ausreichende Berechtigungen zur Kommunikation mit dem Projekt, in dem sich der Cluster befindet.
Ziele und Connect-Gateway für angehängte GKE-Cluster verwenden
Sie können ein Ziel für die Bereitstellung in einem privaten GKE-Cluster mit Zielen konfigurieren, die angehängte GKE-Cluster und das Connect-Gateway verwenden.
Für diesen Ansatz ist keine Virtual Private Cloud oder VPN-Verbindung erforderlich.
Nächste Schritte
Lieferpipeline aufrufen, um ein Release zu erstellen
Weitere Informationen zum Konfigurieren von Cloud Deploy-Zielen
Weitere Informationen zur Verwendung von Skaffold mit Cloud Deploy
Weitere Informationen zu Ausführungsumgebungen für Cloud Deploy