Ce document explique comment déployer vos applications sur des clusters Google Kubernetes Engine.
Cloud Deploy vous permet de déployer vos charges de travail basées sur des conteneurs sur n'importe quel cluster Google Kubernetes Engine. Toutes les fonctionnalités de Cloud Deploy sont compatibles lorsque vous effectuez un déploiement sur des cibles GKE.
Avant de commencer
Disposez d'un ou de plusieurs clusters GKE sur lesquels effectuer le déploiement.
Si vous ne disposez d'aucun cluster GKE sur lequel effectuer le déploiement, vous pouvez en créer.
Assurez-vous que votre compte de service d'exécution dispose des rôles et autorisations dont il a besoin.
Dans ce fichier skaffold.yaml, la section deploy inclut kubectl, ce qui indique que Skaffold effectue le rendu pour Kubernetes (GKE) et le déploiement sur celui-ci. Les fichiers manifestes que vous utilisez pour cette application sont listés sous cette section.
Créer votre configuration cible
Chaque cible peut être configurée dans votre fichier YAML de pipeline de livraison ou dans un fichier distinct. Vous pouvez également configurer plusieurs cibles dans le même fichier, mais elles doivent se trouver dans des sections kind: Target différentes.
Les cibles doivent être définies dans le même projet et la même région que le pipeline de livraison. Toutefois, les clusters sur lesquels les cibles sont déployées peuvent se trouver dans des projets et des régions différents, à condition que le compte de service ait accès à ces projets.
Dans la définition de la cible, créez une section gke pour pointer vers le cluster GKE :
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
Cet identifiant de ressource GKE utilise les éléments suivants :
[
project_name] correspond au nom du Google Cloud projet dans lequel vous exécutez ce cluster.Le cluster sur lequel vous effectuez le déploiement n'a pas besoin de se trouver dans le même projet que votre pipeline de livraison.
[
location] correspond à la région dans laquelle le cluster a été créé.[
cluster_name] correspond au nom attribué au cluster lors de sa création.Vous trouverez ce nom dans la liste des clusters de votre projet, dans la Google Cloud console.

Voici un exemple de configuration cible pointant vers un cluster GKE :
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
Créer la configuration Skaffold
Cette section fournit et explique un exemple de configuration Skaffold simple à utiliser lors du déploiement sur un cluster GKE.
Voici un exemple de fichier skaffold.yaml pour le déploiement sur un cluster GKE :
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
La page Utiliser Skaffold avec Cloud Deploy décrit plus en détail comment utiliser Skaffold avec votre pipeline de livraison.
Préparer les fichiers manifestes Kubernetes
Pour déployer votre application sur GKE, vous fournissez à Cloud Deploy un ou plusieurs fichiers manifestes Kubernetes, qui sont rendus et ensuite appliqués au cluster ou aux clusters cibles pour déployer votre application.
Si vous ne disposez pas de ces fichiers manifestes, créez-les avant d'essayer d'effectuer un déploiement à l'aide d'un pipeline de livraison Cloud Deploy.
Vous pouvez utiliser Kustomize ou Helm pour vous aider à créer des fichiers manifestes. Vous pouvez également utiliser Kustomize ou Helm si vos fichiers manifestes sont basés sur des modèles et doivent être rendus.
Synthèse
Maintenant que vous disposez de vos fichiers manifestes Kubernetes, de votre skaffold.yaml configuration,
et de vos définitions de cibles Cloud Deploy, et que vous avez
enregistré vos cibles
en tant que ressources Cloud Deploy, vous pouvez maintenant
appeler votre pipeline de livraison
pour créer une version et la faire progresser dans la progression des cibles définies
dans le pipeline.
Déployer à l'aide d'un proxy
Vous pouvez spécifier un proxy pour votre cluster GKE cible. Cette option est destinée aux organisations configurées pour accéder à leurs clusters uniquement via un proxy HTTP.
Pour ce faire, ajoutez une propriété proxyUrl à la section gke dans la configuration cible :
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
proxyUrl: [URL]
Où URL correspond à l'URL du proxy.
Déployer sur un cluster privé
Vous pouvez déployer votre application sur un cluster GKE privé à l'aide de l'une des trois options suivantes :
Utiliser un point de terminaison DNS
Il s'agit du moyen le plus simple de se connecter à un cluster privé.
Activez le point de terminaison basé sur DNS sur votre cluster.
Définissez
dnsEndpointsurtruesousgkedans la configuration cible.Si aucun point de terminaison basé sur une adresse IP n'est configuré pour votre cluster, vous pouvez ignorer cette étape. Cloud Deploy se connectera au point de terminaison DNS par défaut, car il s'agit du seul point de terminaison du plan de contrôle.
Utiliser un réseau cloud privé virtuel
Vous pouvez configurer une cible pour effectuer un déploiement sur un cluster GKE privé connecté à un réseau cloud privé virtuel :
-
Un cluster privé est un cluster de VPC natif dont les nœuds et les pods sont isolés par défaut de l'Internet public.
Si vous prévoyez d'utiliser l'adresse IP interne de la cible du cluster privé, définissez
internalIpsurtruesousgkedans la configuration cible. Dans Cloud Build, créez un pool de nœuds de calcul privé que vous pourrez utiliser pour effectuer un déploiement sur ce cluster privé.
Configurez l'environnement d'exécution pour qu'il utilise ce pool privé.
Vous devez utiliser ce pool pour
RENDER. Vous pouvez également l'utiliser pourDEPLOYetVERIFY. Voici un exemple qui utiliseRENDERetDEPLOY:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Pour en savoir plus, consultez la page Accéder aux clusters GKE privés avec les pools privés Cloud Build.
Considérations concernant les projets et les autorisations
Vous pouvez configurer une cible pour qu'elle utilise un pool de nœuds de calcul privé pouvant effectuer un déploiement sur un cluster privé. Toutefois, vous devez tenir compte de certains points si les ressources se trouvent dans des projets différents.
- Lorsque Cloud Deploy et le pool de nœuds de calcul se trouvent dans des projets distincts
Pour communiquer avec un pool privé qui a accès à un VPC et qui se trouve dans un projet différent de votre cible, l'agent de service Cloud Deploy Cloud Deploy doit disposer d'autorisations suffisantes pour communiquer avec ce projet.
Le compte de service d'exécution doit également disposer des autorisations nécessaires pour accéder au bucket Cloud Storage.
- Lorsque le pool de nœuds de calcul et le cluster se trouvent dans des projets distincts
Si le cluster GKE privé se trouve dans un projet différent de celui du pool de nœuds de calcul privé, le compte de service d'exécution doit disposer d'autorisations suffisantes pour communiquer avec le projet dans lequel se trouve le cluster.
Utiliser des cibles de clusters associés GKE et une passerelle Connect
Vous pouvez configurer une cible pour effectuer un déploiement sur un cluster GKE privé avec des cibles qui utilisent des clusters associés GKE et une passerelle Connect.
Cette approche ne nécessite pas l'utilisation d'un cloud privé virtuel ni de connexions de réseau privé virtuel.
Étape suivante
Suivez le guide de démarrage rapide : Déployer une application sur GKE.
Appelez votre pipeline de livraison pour créer une version.
Découvrez comment configurer des cibles Cloud Deploy.
Découvrez comment utiliser Skaffold avec Cloud Deploy.
En savoir plus sur GKE