Ce guide explique comment exécuter une application d'environnement flexible App Engine sur GKE. Pour exécuter votre application sur GKE, vous devez créer un Dockerfile pour celle-ci, créer un conteneur avec Cloud Build, puis exécuter ce conteneur dans GKE. Aucune modification de code n'est requise.
Avant de commencer
Avant de suivre les instructions de cette page, procédez comme suit :
Vérifiez que votre application se déploie et s'exécute correctement dans l'environnement flexible App Engine.
Dans ces instructions, vous utiliserez le même projet que pour votre application App Engine. Vous pouvez toujours créer et utiliser un nouveau projet, si vous le souhaitez.
Enable the GKE, Cloud Build APIs.
Téléchargez et installez Google Cloud CLI, puis initialisez l'outil gcloud : Télécharger le SDK Google Cloud.
Vous pouvez également utiliser Cloud Shell, qui comprend la CLI gcloud,
git
et d'autres fonctionnalités préinstallées comme les langages acceptés, les outils et les éditeurs.Installer l'outil de ligne de commande
kubectl
:gcloud components install kubectl
Créer un Dockerfile pour une application App Engine
Créez un fichier Dockerfile pour votre application, comme décrit dans la section Créer un fichier Dockerfile.
Compiler un conteneur à partir du fichier Dockerfile
Pour compiler un conteneur :
Vérifiez que vous êtes bien dans le répertoire de l'application App Engine contenant le fichier Dockerfile.
Modifiez le projet par défaut utilisé par l'outil
gcloud
de sorte qu'il pointe vers le projet que vous utilisez pour exécuter votre application dans GKE :gcloud config set project [YOUR-PROJECT-ID]
Remplacez
[YOUR-PROJECT-ID]
par l'ID de votre projet GKE.Compilez le conteneur en utilisant la commande suivante :
gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
Remplacez
[YOUR-PROJECT-ID]
par l'ID du projet GKE et remplacez[YOUR-CONTAINER-NAME]
par le nom du conteneur que vous souhaitez utiliser pour votre conteneur d'applications.Attendez la fin de la compilation du conteneur : cela peut prendre un certain temps. Une fois la compilation terminée avec succès, un message semblable à celui-ci s'affiche :
Created [https://cloudbuild.googleapis.com/v1/projects/YOUR-PROJECT-ID/builds/xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx]. Logs are permanently available at [https://console.developers.google.com/logs/viewer?resource=build&project=YOUR-PROJECT-ID&filters=text:xxxx-xxx-xxx-xxxxxxxxxxxx]]. ID CREATE_TIME DURATION SOURCE IMAGES STATUS xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx 2017-03-04T00:42:10+00:00 1M32S gs://YOUR-PROJECT-ID_cloudbuild/source/xxxxxxx.08.tgz gcr.io/YOUR-PROJECT-ID/YOUR-CONTAINER-NAME SUCCESS<
Notez le nom du conteneur : vous devez le spécifier lorsque vous l'exécutez dans GKE.
Exécuter votre application dans GKE
Pour exécuter le conteneur qui contient votre application :
Créez le cluster (cela peut prendre quelques minutes) :
gcloud container clusters create [YOUR-CLUSTER-NAME]
Remplacez
[YOUR-CLUSTER-NAME]
par le nom que vous souhaitez attribuer au cluster.À partir de la ligne de commande, définissez votre zone de calcul :
gcloud config set compute/zone us-central1-b
Assurez-vous que l'outil GKE
kubectl
est autorisé :gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
Suivez les instructions pour autoriser l'outil.
Exécutez le conteneur qui contient votre application :
kubectl create deployment [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME]
Remplacez
[YOUR-DEPLOYMENT-NAME]
par le nom que vous souhaitez utiliser pour votre déploiement, remplacez[YOUR-PROJECT-ID]
par votre ID de projet GKE, et remplacez[YOUR-CONTAINER-NAME]
par le nom du conteneur que vous avez créé pour votre application.Exposez le conteneur pour le rendre accessible au public :
kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080
Remplacez
[YOUR-DEPLOYMENT-NAME]
par le nom que vous avez utilisé lors des étapes précédentes. Vous devrez peut-être attendre plusieurs minutes avant que l'adresse IP externe ne soit visible.Affichez l'adresse IP externe de votre application :
kubectl get service [YOUR-DEPLOYMENT-NAME]
Remplacez
[YOUR-DEPLOYMENT-NAME]
par le nom que vous avez utilisé lors des étapes précédentes. Si le champEXTERNAL IP
est vide, attendez un instant, puis appelez de nouveau la commande.Regardez l'application s'exécuter dans GKE :
http://EXTERNAL-IP:8080
Remplacez
EXTERNAL-IP
par l'adresse IP externe obtenue à l'étape précédente.
Vous venez de déployer et d'exécuter votre application App Engine sur GKE.
Étapes suivantes
Vous souhaitez peut-être en savoir plus sur Kubernetes et la commande kubectl
.
Google Kubernetes Engine utilise Kubernetes pour la gestion, le déploiement et le scaling des conteneurs. De plus amples informations sur Kubernetes sont disponibles sur le site externe de Kubernetes.
Ce guide utilise kubectl
, l'interface de ligne de commande pour la gestion des clusters Kubernetes. Des informations complémentaires sur kubectl
sont disponibles dans la référence kubectl.