Déployer une application dans un cluster GKE
Dans ce guide de démarrage rapide, vous allez déployer un exemple d'application conteneurisée de serveur Web sur un cluster Google Kubernetes Engine (GKE). Vous apprendrez à créer un cluster sur lequel déployer l'application pour qu'elle soit accessible aux utilisateurs.
Cette page est destinée aux opérateurs et aux développeurs qui provisionnent et configurent des ressources cloud, et déploient des applications et des services. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud, consultez la section Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.
Avant de lire cette page, assurez-vous de maîtriser Kubernetes.
Avant de commencer
Pour activer l'API Kubernetes Engine, procédez comme suit :- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Google Kubernetes Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Google Kubernetes Engine APIs.
Lancer Cloud Shell
Dans ce tutoriel, vous allez utiliser Cloud Shell, un environnement shell permettant de gérer les ressources hébergées surGoogle Cloud.
Cloud Shell est préinstallé avec Google Cloud CLI et l'outil de ligne de commande kubectl. Gcloud CLI est l'interface de ligne de commande principale utilisée pour Google Cloud, et kubectl
fournit l'interface de ligne de commande principale permettant d'exécuter des commandes sur les clusters Kubernetes.
Lancez Cloud Shell :
Accédez à la console Google Cloud .
Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :
Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console.
Ce shell vous permet d'exécuter les commandes gcloud
et kubectl
.
Avant d'exécuter des commandes, définissez votre projet par défaut dans Google Cloud CLI à l'aide de la commande suivante :
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID
par votre ID du projet
Créer un cluster GKE
Un cluster contient au moins un système de plan de contrôle de cluster machine et plusieurs systèmes de calcul appelés nœuds. Les nœuds sont des instances de machines virtuelles (VM) Compute Engine qui exécutent les processus Kubernetes nécessaires pour faire partie du cluster. Vous déployez les applications sur des clusters, et ces applications s'exécutent sur les nœuds.
Cette section explique comment créer un cluster en mode Autopilot, qui est le mode de cluster recommandé pour la plupart des cas d'utilisation en production. Vous pouvez également utiliser un cluster en mode GKE Standard pour effectuer ces étapes.
Créez un cluster Autopilot nommé hello-cluster
:
gcloud container clusters create-auto hello-cluster \
--location=us-central1
La création du cluster peut prendre plusieurs minutes.
Obtenir des informations d'authentification pour le cluster
Après avoir créé votre cluster, vous devez obtenir des informations d'authentification pour interagir avec lui :
gcloud container clusters get-credentials hello-cluster \
--location us-central1
Cette commande configure kubectl
pour l'utilisation du cluster que vous avez créé.
Déployer une application sur le cluster
Maintenant que vous avez créé un cluster, vous pouvez y déployer une application conteneurisée. Pour ce guide de démarrage rapide, vous pouvez déployer notre exemple d'application Web hello-app
.
GKE utilise des objets Kubernetes pour créer et gérer les ressources de votre cluster. Kubernetes fournit l'objet Déploiement pour le déploiement d'applications sans état comme les serveurs Web. Les objets Service définissent des règles et l'équilibrage de charge pour accéder à votre application via Internet.
Créer le déploiement
Pour exécuter hello-app
dans votre cluster, vous devez déployer l'application en exécutant la commande suivante :
kubectl create deployment hello-server \
--image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Cette commande Kubernetes, kubectl create deployment
, crée un déploiement nommé hello-server
. Le pod de ce déploiement exécute l'image de conteneur hello-app
.
Dans cette commande :
--image
désigne une image de conteneur à déployer. Dans cet exemple, la commande extrait l'exemple d'image d'un dépôt Artifact Registry,us-docker.pkg.dev/google-samples/containers/gke/hello-app
.:1.0
indique la version de l'image à extraire. Si vous ne spécifiez pas de version, l'image avec le tag par défautlatest
est utilisée.
Exposer le déploiement
Après avoir déployé l'application, vous devez l'exposer sur Internet afin que les utilisateurs puissent y accéder. Vous pouvez exposer cette application en créant un objet Service, c'est-à-dire une ressource Kubernetes permettant d'exposer votre application au trafic externe.
Pour exposer votre application, exécutez la commande kubectl expose
suivante :
kubectl expose deployment hello-server \
--type LoadBalancer \
--port 80 \
--target-port 8080
L'option --type LoadBalancer
permet de créer un équilibreur de charge Compute Engine pour votre conteneur. L'option --port
initialise le port public 80 sur Internet et l'option --target-port
achemine le trafic vers le port 8080 de l'application.
Les équilibreurs de charge sont facturés selon la tarification des équilibreurs de charge de Compute Engine.
Inspecter et afficher l'application
Inspectez les pods en cours d'exécution à l'aide de la commande
kubectl get pods
:kubectl get pods
Vous devriez voir un pod
hello-server
s'exécuter sur votre cluster.Inspectez le service
hello-server
à l'aide de la commandekubectl get service
:kubectl get service hello-server
À partir du résultat de cette commande, copiez l'adresse IP externe du service depuis la colonne
EXTERNAL-IP
.Consultez l'application dans votre navigateur Web à l'aide de l'adresse IP externe avec le port exposé :
http://EXTERNAL_IP
Vous venez de déployer une application Web conteneurisée sur GKE !
Pour suivre et organiser vos ressources GKE de manière centrée sur l'application, vous pouvez les ajouter en tant que services et charges de travail aux applications App Hub.
Pour en savoir plus sur les ressources compatibles avec App Hub, consultez la section Ressources compatibles.
Pour découvrir comment configurer App Hub dans votre projet, consultez Configurer App Hub.
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud , procédez comme suit :
Supprimez l'objet Service de l'application en exécutant la commande
kubectl delete
:kubectl delete service hello-server
Cette commande supprime l'équilibreur de charge Compute Engine que vous avez créé lorsque vous avez exposé le déploiement.
Supprimez votre cluster en exécutant la commande
gcloud container clusters delete
:gcloud container clusters delete hello-cluster \ --location us-central1
Facultatif : examen du code de l'application hello-app
hello-app
est une application de serveur Web composée de deux fichiers : main.go
et Dockerfile
.
hello-app
est packagée comme une image de conteneur Docker. Les images de conteneur peuvent être stockées dans n'importe quel registre d'images Docker, tel qu'Artifact Registry. Nous hébergeons hello-app
dans un dépôt Artifact Registry à l'adresse us-docker.pkg.dev/google-samples/containers/gke/hello-app
.
main.go
main.go
correspond à une mise en œuvre de serveur Web écrite dans le langage de programmation Go.
Le serveur répond à toutes les requêtes HTTP avec le message "Hello, world!"
Dockerfile
Dockerfile
décrit l'image que Docker doit générer, y compris toutes ses ressources et dépendances, et spécifie le port réseau que l'application doit exposer. Pour plus d'informations sur le fonctionnement de ce fichier, consultez le document de référence Dockerfile dans la documentation de Docker.
Étapes suivantes
- Apprenez-en plus sur la création de clusters.
- Apprenez-en plus sur Kubernetes.
- Apprenez à packager, héberger et déployer une application de serveur Web simple.
- Déployez une application Kubernetes avec Cloud Code for VS Code ou Cloud Code for IntelliJ.
- Apprenez à changer la plate-forme d'applications Linux vers des conteneurs.
Faites l'essai
Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de GKE en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
Profiter d'un essai gratuit de GKE