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-Features werden beim Bereitstellen für GKE-Ziele unterstützt.
Hinweise
Mindestens einen GKE-Cluster für das Deployment haben.
Wenn keine GKE-Cluster für die Bereitstellung vorhanden sind, können Sie diese erstellen.
Ihr Ausführungsdienstkonto muss die erforderlichen Rollen und Berechtigungen haben.
In dieser skaffold.yaml
-Datei enthält die deploy
-Stanza kubectl
. Dies gibt an, dass Skaffold für Kubernetes (GKE) gerendert und dort bereitgestellt wird. Die Manifeste, die du für diese Anwendung verwendest,
sind dort aufgeführt.
Zielkonfiguration erstellen
Jedes Ziel kann in der YAML-Datei für die Bereitstellungspipeline oder in einer separaten Datei konfiguriert werden. Sie können auch mehrere Ziele in derselben Datei konfigurieren, diese müssen sich jedoch in unterschiedlichen kind: Target
-Stanzas befinden.
Erstellen Sie in der Zieldefinition eine gke
-Stanza, die auf den GKE-Cluster verweist:
Die Syntax zum Angeben eines GKE-Cluster lautet:
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, für den Sie die Bereitstellung vornehmen, 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 Google Cloud Console in der Liste der Cluster für Ihr Projekt.
Das folgende Beispiel zeigt 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
Dieser Abschnitt enthält ein Beispiel für eine einfache Skaffold-Konfiguration, die bei der Bereitstellung in einem GKE-Cluster verwendet werden kann.
Hier sehen Sie ein Beispiel einer 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
Zum Bereitstellen Ihrer Anwendung in GKE stellen Sie Cloud Deploy mit einem oder mehreren Kubernetes-Manifesten bereit, die gerendert und dann auf den oder die Zielcluster angewendet werden, um Ihre Anwendung bereitzustellen.
Wenn Sie diese Manifeste nicht haben, erstellen Sie sie, bevor Sie die Bereitstellung mit einer Cloud Deploy-Bereitstellungspipeline ausführen.
Manifeste können mit Kustomize oder Helm erstellt werden. Sie können auch Kustomize oder Helm verwenden, wenn Ihre Manifeste in Vorlagen erstellt wurden und gerendert werden müssen.
Zusammenfassung
Nachdem Sie nun Ihre Kubernetes-Manifeste, die skaffold.yaml
-Konfiguration und die Cloud Deploy-Zieldefinitionen haben und Ihre Ziele als Cloud Deploy-Ressourcen registriert haben, können Sie jetzt Ihre Bereitstellungspipeline aufrufen, um einen Release zu erstellen und die Abfolge der in der Pipeline definierten Ziele durchlaufen.
Über einen Proxy bereitstellen
Sie können einen Proxy für den GKE-Zielcluster angeben. Dies gilt für Organisationen, die so eingerichtet sind, dass sie nur über einen Proxy auf ihre Cluster zugreifen.
Dazu fügen Sie der Stanza gke
in der Zielkonfiguration eine proxyUrl
-Eigenschaft 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 zwei Möglichkeiten, Ihre Anwendung in einem privaten GKE-Cluster bereitzustellen:
Virtual Private Cloud-Netzwerk verwenden
Sie können ein Ziel für die Bereitstellung in einem privaten GKE-Cluster konfigurieren, der mit einem Virtual Private Cloud-Netzwerk 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 Ziels des privaten Clusters verwenden möchten, setzen Sie
internalIp
in der Zielkonfiguration untergke
auftrue
. Erstellen Sie in Cloud Build einen privaten Worker-Pool, den Sie zum Bereitstellen in diesem privaten Cluster verwenden können.
Konfigurieren Sie die Ausführungsumgebung für die Verwendung dieses privaten Pools.
Sie müssen diesen Pool für
RENDER
verwenden. Sie können es auch fürDEPLOY
undVERIFY
verwenden. Im folgenden Beispiel werdenRENDER
undDEPLOY
verwendet:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Weitere Informationen finden Sie unter Mit Identity Service for GKE auf private GKE-Cluster über private Cloud Build-Pools zugreifen und Mit privaten Cloud Build-Pools auf private GKE-Cluster zugreifen.
Hinweise zu Projekten und Berechtigungen
Sie können ein Ziel so konfigurieren, dass ein privater Worker-Pool verwendet wird, der in einem privaten Cluster bereitgestellt werden kann. Es gibt jedoch einige Dinge zu beachten, wenn sich Ressourcen in verschiedenen Projekten befinden.
- Wenn sich Cloud Deploy und der Worker-Pool in separaten Projekten befinden
Der Dienst-Agent von Cloud Deploy benötigt ausreichende Berechtigungen für die Kommunikation mit diesem Projekt, um mit einem privaten Pool zu kommunizieren, der Zugriff auf eine VPC hat und sich in einem anderen Projekt als Ihrem Ziel befindet.
Das Dienstkonto für die Ausführung 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.
GKE Enterprise-Ziele verwenden und Gateway verbinden
Sie können ein Ziel für das Deployment in einem privaten GKE-Cluster mithilfe von Anthos-Zielen und einem Verbindungsgateway konfigurieren.
Bei diesem Ansatz müssen Sie keine Virtual Private Cloud oder virtuelle private Netzwerkverbindungen verwenden.
Nächste Schritte
Rufen Sie Ihre Bereitstellungspipeline auf, um einen Release zu erstellen.
Weitere Informationen zur Verwendung von Skaffold mit Cloud Deploy
Informationen zu Ausführungsumgebungen für Cloud Deploy