In diesem Dokument wird beschrieben, wie Sie Ihre Anwendungen in Google Kubernetes Engine bereitstellen Cluster.
Mit Cloud Deploy können Sie Ihre containerbasierten Arbeitslasten auf beliebigen Google Kubernetes Engine Cluster. Alle Cloud Deploy-Features werden unterstützt, wenn Sie die Bereitstellung in GKE-Ziele
Hinweise
Mindestens einen GKE-Cluster für das Deployment haben.
Wenn Sie keine GKE-Cluster für die Bereitstellung haben, können Sie erstellen Sie sie.
Prüfen Sie, ob Ihr Ausführungsdienstkonto verfügt über die erforderlichen Rollen und Berechtigungen.
In dieser skaffold.yaml
-Datei enthält die deploy
-Stanza kubectl
, was
gibt an, dass Skaffold für Kubernetes gerendert und dort bereitgestellt wird
(GKE) Die Manifeste, die Sie für diese Anwendung verwenden,
aufgeführt sind.
Zielkonfiguration erstellen
Jedes Ziel kann in der YAML-Datei für die Bereitstellungspipeline konfiguriert oder in einem
in einer separaten Datei. Außerdem können Sie in einer Datei
mehrere Ziele konfigurieren.
aber sie müssen sich in verschiedenen kind: Target
-Stanzas befinden.
Erstellen Sie in der Zieldefinition eine gke
-Stanza, die auf die
GKE-Cluster:
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 führen diesen Cluster aus.Der Cluster, für den Sie die Bereitstellung vornehmen, muss sich nicht im selben Projekt wie Ihrer Bereitstellungspipeline.
[
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 Console
Das folgende Beispiel zeigt eine Zielkonfiguration, die auf eine GKE Cluster:
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 wird ein Beispiel für eine einfache Skaffold-Konfiguration erläutert. für die Bereitstellung in einem GKE-Cluster.
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: {}
Skaffold mit Cloud Deploy verwenden beschreibt, 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, die gerendert und dann auf das Ziel angewendet Cluster oder Cluster zum Bereitstellen Ihrer Anwendung.
Wenn Sie diese Manifeste nicht haben, erstellen Sie sie vor der Bereitstellung mit einer Cloud Deploy-Bereitstellungspipeline.
Sie können Kustomize oder Helm verwenden. um Manifeste zu erstellen. Sie können auch Kustomize oder Helm verwenden, Manifeste werden aus Vorlagen erstellt und müssen gerendert werden.
Zusammenfassung
Nachdem Sie nun Ihre Kubernetes-Manifeste haben, Ihre skaffold.yaml
-Konfiguration,
und Ihre Cloud Deploy-Zieldefinitionen.
Ihre Ziele registriert
Cloud Deploy-Ressourcen können Sie jetzt
Bereitstellungspipeline aufrufen
um einen Release zu erstellen und den Fortschritt der definierten Ziele voranzutreiben
in der Pipeline.
Über einen Proxy bereitstellen
Sie können einen Proxy für den GKE-Zielcluster angeben. Dieses ist für Organisationen gedacht, die für den Zugriff auf ihre Cluster über einen Proxy eingerichtet sind .
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 können Ihre Anwendung in einem privaten GKE-Cluster bereitstellen, mit einer der beiden folgenden Optionen:
Virtual Private Cloud-Netzwerk verwenden
Sie können ein Ziel für die Bereitstellung privater GKE-Cluster die mit einem Virtual Private Cloud-Netzwerk verbunden sind:
-
Ein privater Cluster ist ein VPC-nativer Cluster, dessen Knoten und Pods isoliert sind. aus dem öffentlichen Internet stammen.
Wenn Sie die interne IP-Adresse des privaten Clusterziels verwenden möchten, legen Sie
internalIp
bistrue
untergke
in der Zielkonfiguration. In Cloud Build Privaten Worker-Pool erstellen mit dem Sie die Bereitstellung in diesem privaten Cluster durchführen 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
und fürVERIFY
. 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 über private Cloud Build-Pools auf private GKE-Cluster 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, der in einem privaten Cluster. Es gibt jedoch einige Dinge zu beachten, wenn sich Ressourcen in unterschiedlichen Projekten.
- Wenn sich Cloud Deploy und der Worker-Pool in separaten Projekten befinden
Zur Kommunikation mit einem privaten Pool, der Zugriff auf eine VPC hat und sich in einem sich von Ihrem Ziel unterscheidet, Dienst-Agent benötigt für die Kommunikation mit diesem Projekt benötigt.
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 die Bereitstellung privater GKE-Cluster mit Anthos-Zielen und Verbindungsgateway.
Bei diesem Ansatz müssen Sie keine Virtual Private Cloud oder Virtual Private Cloud verwenden Netzwerkverbindungen.
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