Cómo ejecutar aplicaciones de App Engine en GKE

Esta guía muestra cómo ejecutar una aplicación en el entorno de App Engine Flexible en GKE. Para ejecutar tu aplicación en GKE, necesitas crear un Dockerfile y construir un contenedor con ese Dockerfile y, luego, ejecutarlo en GKE. No se requieren cambios en el código.

Antes de comenzar

Antes de seguir las instrucciones de esta página, haz lo siguiente:

  1. Verifica que tu aplicación se implemente y ejecute con éxito en el entorno flexible de App Engine.

  2. En estas instrucciones, emplearás el mismo proyecto que usaste para tu aplicación de App Engine. Siempre puedes crear y usar un nuevo proyecto, si lo deseas.

  3. Habilita las GKE, Cloud Build API necesarias.

    Habilita las API

  4. Descarga y, luego, instala el SDK de Google Cloud y después inicializa la herramienta gcloud:
    Descargar el SDK

  5. Descarga y, luego, instala la herramienta kubectl de Kubernetes.

  6. Descargar y también instalar Git.

    Cómo crear un Dockerfile de tu aplicación de App Engine

    Para crear un Dockerfile de tu aplicación, haz lo siguiente:

    1. Asegúrate de que compilaste y terminaste tu aplicación por completo, por ejemplo, si usas Maven, ejecuta el comando mvn appengine:stage.
    2. Ve al directorio donde se encuentra la aplicación terminada, por lo general, ./target/appengine-staging.
    3. Ejecuta el siguiente comando para compilar un Dockerfile de tu aplicación:
      gcloud beta app gen-config --custom
      Cuando se te solicite cambiar el campo del entorno de ejecución en app.yaml a personalizado, selecciona Y para confirmar.

    Cómo compilar un contenedor desde el Dockerfile

    Para compilar un contenedor, haz lo siguiente:

    1. Asegúrate de estar en el directorio de la aplicación de App Engine que contiene el Dockerfile.

    2. Cambia el proyecto predeterminado que usa la herramienta gcloud por el proyecto que estás usando para ejecutar tu aplicación en GKE:

      gcloud config set project [YOUR-PROJECT-ID]
      

      Reemplaza [YOUR-PROJECT-ID] con el ID de tu proyecto de GKE.

    3. Compila el contenedor con el siguiente comando:

      gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
      

      Reemplaza [YOUR-PROJECT-ID] con el ID del proyecto de tu proyecto de GKE y reemplaza [YOUR-CONTAINER-NAME] con el nombre del contenedor que deseas usar para tu aplicación.

    4. Espera a que el contenedor se compile: puede tardar un poco. Cuando el proceso termina con éxito, muestra un mensaje como este:

      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<
      

      Recuerda el nombre del contenedor: deberás especificarlo cuando lo ejecutes en GKE.

    Cómo ejecutar tu aplicación en GKE

    Para ejecutar el contenedor que contiene tu aplicación, haz lo siguiente:

    1. Crea el clúster (esto puede tardar unos minutos):

      gcloud container clusters create [YOUR-CLUSTER-NAME]
      

      Reemplaza [YOUR-CLUSTER-NAME] con el nombre que deseas darle al clúster.

    2. Desde la línea de comandos, establece tu zona de Cloud Compute:

      gcloud config set compute/zone us-central1-b
      
    3. Asegúrate de que la herramienta kubectl de GKE esté autorizada:

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

      Sigue las indicaciones para autorizar la herramienta.

    4. Ejecuta el contenedor que contiene tu aplicación:

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

      Reemplaza [YOUR-DEPLOYMENT-NAME] con el nombre que deseas usar para la implementación, [YOUR-PROJECT-ID] con el ID de proyecto de GKE y [YOUR-CONTAINER-NAME] con el nombre del contenedor que creaste para tu aplicación.

    5. Haz que el contenedor sea de acceso público:

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

      Reemplaza [YOUR-DEPLOYMENT-NAME] con el nombre que usaste en los pasos anteriores. Es posible que debas esperar varios minutos para poder ver la IP externa.

    6. Obtén la dirección IP externa para tu aplicación:

      kubectl get service [YOUR-DEPLOYMENT-NAME]
      

      Reemplaza [YOUR-DEPLOYMENT-NAME] con el nombre que usaste en los pasos anteriores. Si el campo EXTERNAL IP se encuentra vacío, espera un momento y vuelve a invocar el comando.

    7. Verifica que la aplicación se ejecuta en GKE:

      http://EXTERNAL-IP:8080
      

      Reemplaza EXTERNAL-IP con la dirección IP externa que obtuviste en el paso anterior.

    Ya implementaste y ejecutaste con éxito tu aplicación Java de App Engine en GKE.

    Próximos pasos

    Puede que quieras obtener más información sobre Kubernetes y el comando kubectl. Google Kubernetes Engine usa Kubernetes para la administración, la implementación y el escalamiento de contenedores. Hay más información disponible sobre Kubernetes en el Sitio de Kubernetes externo.

    Esta guía usa kubectl, la interfaz de línea de comandos para administrar clústeres de Kubernetes. Encontrarás más información disponible sobre kubectl en kubectl reference.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno flexible de App Engine para documentos de Java