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 jedem Google Kubernetes Engine Cluster bereitstellen. Alle Cloud Deploy-Funktionen werden unterstützt, wenn Sie in GKE-Zielen bereitstellen.
Hinweis
Sie benötigen mindestens einen GKE-Cluster, in dem Sie die Bereitstellung ausführen können.
Wenn Sie keine GKE-Cluster haben, in denen Sie die Bereitstellung ausführen können, können Sie sie erstellen.
Prüfen Sie, ob Ihr Ausführungs-Dienstkonto die erforderlichen Rollen und Berechtigungen hat.
In dieser skaffold.yaml-Datei enthält der Abschnitt deploy die Anweisung kubectl. Das bedeutet, dass Skaffold für Kubernetes (GKE) gerendert und dort bereitgestellt wird. Die Manifeste, die Sie für diese Anwendung verwenden, sind dort aufgeführt.
Erstellen Sie Ihre Zielkonfiguration
Jedes Ziel kann in der YAML-Datei der Bereitstellungspipeline konfiguriert werden oder sich in einer separaten Datei befinden. Sie können auch mehrere Ziele in derselben Datei konfigurieren. Sie müssen sich jedoch in verschiedenen 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 ausführen, muss sich nicht im selben Projekt wie Ihre Bereitstellungspipeline befinden.
[
location] ist die Region, in der der Cluster erstellt wurde.[
cluster_name] ist der Name, der dem Cluster bei der Erstellung gegeben wurde.Sie finden diesen Namen in der Liste der Cluster für Ihr Projekt in der Google Cloud Konsole.

Hier sehen Sie eine Beispielkonfiguration für ein Ziel, das 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 bei der Bereitstellung in einem GKE-Cluster verwenden können.
Das folgende Beispiel zeigt eine Beispiel skaffold.yaml Datei für die Bereitstellung in einem
GKE-Cluster:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
Unter Skaffold mit Cloud Deploy verwenden wird ausführlicher beschrieben, wie Sie Skaffold mit Ihrer Bereitstellungspipeline verwenden.
Kubernetes-Manifeste vorbereiten
Wenn Sie Ihre Anwendung in GKE bereitstellen möchten, stellen Sie Cloud Deploy ein oder mehrere Kubernetes-Manifeste zur Verfügung. Diese werden gerendert und dann auf den Ziel cluster oder die Zielcluster angewendet, um Ihre Anwendung bereitzustellen.
Wenn Sie diese Manifeste nicht haben, erstellen Sie sie, bevor Sie versuchen, die Bereitstellung mit einer Cloud Deploy-Bereitstellungspipeline auszuführen.
Sie können Kustomize oder Helm verwenden , um Manifeste zu erstellen. Sie können Kustomize oder Helm auch verwenden, wenn Ihre Manifeste Vorlagen sind und gerendert werden müssen.
Zusammenfassung
Nachdem Sie Ihre Kubernetes-Manifeste, Ihre skaffold.yaml Konfiguration,
Ihre Cloud Deploy-Zieldefinitionen erstellt und Ihre Ziele
als Cloud Deploy-Ressourcen
registriert haben, können Sie jetzt Ihre
Bereitstellungspipeline aufrufen,
um einen Release zu erstellen und ihn durch die in der Pipeline definierten Ziele zu bewegen.
Bereitstellung über einen Proxy
Sie können einen Proxy für Ihren Ziel-GKE-Cluster angeben. Dies ist für Organisationen gedacht, die so eingerichtet sind, dass sie nur über einen HTTP-Proxy auf ihre Cluster zugreifen können.
Fügen Sie dazu in der Zielkonfiguration eine proxyUrl-Property zum Abschnitt gke hinzu:
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
proxyUrl: [URL]
Dabei ist URL die URL des Proxys.
Bereitstellung in einem privaten Cluster
Sie können Ihre Anwendung mit einer von drei Optionen in einem privaten GKE-Cluster bereitstellen:
DNS-Endpunkt verwenden
Dies ist die einfachste Möglichkeit, eine Verbindung zu einem privaten Cluster herzustellen.
Legen Sie in der Zielkonfiguration unter
gkefürdnsEndpointden Werttruefest.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 so konfigurieren, dass die Bereitstellung in einem privaten GKE-Cluster erfolgt, der mit einem Virtual Private Cloud-Netzwerk verbunden ist:
Erstellen Sie Ihren privaten Cluster.
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
internalIpfürtrueuntergkein der Zielkonfiguration fest.Erstellen Sie in Cloud Build, einen privaten Worker-Pool mit dem Sie die Bereitstellung in diesem privaten Cluster ausführen können.
Konfigurieren Sie die Ausführungsumgebung so, dass dieser private Pool verwendet wird.
Sie müssen diesen Pool für
RENDERverwenden. Sie können ihn auch fürDEPLOYundVERIFYverwenden. Hier sehen Sie ein Beispiel, in demRENDERundDEPLOYverwendet werden:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Weitere Informationen finden Sie unter Auf private GKE-Cluster über private Cloud Build-Pools mit Identity Service for GKE zugreifen und Auf private GKE-Cluster mit privaten Cloud Build-Pools zugreifen.
Hinweise zu Projekten und Berechtigungen
Sie können ein Ziel so konfigurieren, dass ein privater Worker-Pool verwendet wird, der die Bereitstellung in einem privaten Cluster 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
Um mit einem privaten Pool zu kommunizieren, 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 zur Kommunikation mit diesem Projekt.
Das Ausführungs-Dienstkonto 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.
An GKE angehängte Clusterziele und Connect-Gateway verwenden
Sie können ein Ziel so konfigurieren, dass die Bereitstellung in einem privaten GKE-Cluster mit Zielen erfolgt, die an GKE angehängte Cluster und das Connect-Gatewayverwenden.
Bei dieser Methode müssen Sie keine Virtual Private Cloud- oder VPN-Verbindungen verwenden.
Nächste Schritte
Bereitstellungspipeline aufrufen, um einen 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 .
Weitere Informationen zu GKE