Exécution d'applications App Engine sur GKE

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 fichier Docker pour celle-ci, créer un conteneur à l'aide de ce fichier Dockerfile, puis exécuter le conteneur dans GKE. Aucun changement de code n'est requis.

Avant de commencer

Avant de suivre les instructions de cette page, procédez comme suit :

  1. Vérifiez que votre application se déploie et s'exécute correctement dans l'environnement flexible App Engine.

  2. Dans ces instructions, vous utiliserez le même projet que celui utilisé pour votre application App Engine. Vous pouvez tout de même créer et utiliser un nouveau projet, si vous le souhaitez.

  3. Activez GKE, Cloud Buildles API requises.

    Activer les API.

  4. Téléchargez et installez le SDK Google Cloud, puis initialisez l'outil gcloud :
    Télécharger le SDK

  5. Téléchargez et installez l'outil Kubernetes kubectl.

  6. Vous pouvez également utiliser Google Cloud Shell, qui comprend git, le SDK Cloud et de nombreuses autres fonctionnalités, telles que des éditeurs de code et la compatibilité avec plusieurs langages.

  7. Téléchargez et installez git.

    Créer un fichier Dockerfile pour votre application App Engine

    Pour créer un Dockerfile pour votre application, procédez comme suit :

    1. Accédez au répertoire principal de l'application.
    2. Créez un Dockerfile pour votre application en exécutant la commande suivante :
      gcloud beta app gen-config --custom
      Lorsqu'il vous est demandé de modifier le champ de l'environnement d'exécution dans le fichier app.yaml pour le personnaliser, sélectionnez Y pour confirmer.

    Compiler un conteneur à partir du fichier Dockerfile

    Pour compiler un conteneur :

    1. Assurez-vous que vous vous trouvez dans le répertoire de l'application App Engine contenant le fichier Dockerfile.

    2. Modifiez le projet par défaut utilisé par l'outil gcloud afin 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 votre ID de projet GKE.

    3. 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 votre ID de projet GKE et [YOUR-CONTAINER-NAME] par le nom du conteneur que vous voulez utiliser pour le conteneur de votre application.

    4. 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 :

    1. 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 donner au cluster.

    2. À partir de la ligne de commande, définissez votre zone de calcul :

      gcloud config set compute/zone us-central1-b
      
    3. Assurez-vous que l'outil GKE kubectl est autorisé :

      gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
      

      Suivez les instructions pour autoriser l'outil.

    4. Exécutez le conteneur qui contient votre application :

      kubectl run [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] --port=8080
      

      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.

    5. Exposez le conteneur pour le rendre accessible au public :

      kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer"
      

      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'IP externe ne soit visible.

    6. 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 champ EXTERNAL IP est vide, attendez un moment, puis appelez de nouveau la commande.

    7. 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 avez correctement déployé et exécuté votre application Ruby App Engine sur GKE !

    Étape suivante

    Vous voudrez 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 destinée à la gestion des clusters Kubernetes. Pour en savoir plus sur kubectl, consultez la documentation de référence sur kubectl.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement flexible App Engine pour les documents Ruby