Ejecuta y desarrolla una aplicación en Cloud Code para IntelliJ

Ahora que ya está todo configurado, puedes optar por la ejecución habitual de la aplicación o iniciar un ciclo de iteración de desarrollo en tu IDE para propagar cualquier cambio realizado en la fuente y las dependencias de tu aplicación activa. En esta página, se usa la app de muestra del libro de visitas para ilustrar la experiencia de ejecución y desarrollo de Kubernetes.

Selecciona una acción de ejecución

Antes de ejecutar

Antes de ejecutar la aplicación, asegúrate de realizar la configuración a fin de implementar tu app en el contexto de Kubernetes que prefieras. Puedes especificarlo en tu configuración, en la pestaña Ejecutar y en la sección Preferencias de implementación.

Si deseas cambiar tu contexto actual, puedes hacerlo con Kubernetes Explorer, al que se puede acceder desde el panel de la barra lateral a la derecha o mediante Herramientas >Cloud Code >Kubernetes >Ver el Explorador de clústeres.

Para optimizar el bucle de desarrollo mediante la obtención rápida de cambios de archivos de un determinado tipo sin tener que realizar una recompilación de imágenes, puedes habilitar la sincronización de archivos y la carga en caliente.

Desarrollo continuo en Kubernetes

El objetivo de ejecución Develop on Kubernetes inicia el ciclo de desarrollo en tu clúster de Kubernetes. Después de iniciar el ciclo de desarrollo, Cloud Code, mediante Skaffold, compila una imagen para el proyecto y, luego, la etiqueta, la envía al repositorio configurado y usa kubectl a fin de implementar los manifiestos de Kubernetes del proyecto.

  1. Haz clic en ícono de acción de ejecutar Develop on Kubernetes (Desarrollar en Kubernetes) y, luego, en Edit Configurations para abrir el diálogo Run/Debug Configurations.
  2. Personaliza la implementación mediante las opciones de configuración disponibles.
  3. Si quieres que Cloud Code vuelva a implementar la aplicación automáticamente después de que se guarden los cambios, en Modo de supervisión: volver a compilar e implementar, selecciona Guardar archivo guardado. Las aplicaciones nuevas de Kubernetes tienen seleccionada la configuración A pedido de forma predeterminada. Para obtener más información sobre los modos de reproducción, consulta Modos de reloj.
  4. Si tu aplicación está configurada para usar módulos de Skaffold, puedes seleccionar solo para compilar o implementar módulos específicos.
  5. Cuando estés satisfecho con la configuración, haz clic en OK y, luego, en ícono de acción de ejecutar Run.

Iniciar el ciclo de desarrollo del clúster de Kubernetes

Selecciona módulos de Skaffold

En esta sección, se describe cómo dividir tu proyecto de Skaffold en módulos para que puedas desarrollar y depurar partes de tu aplicación de forma independiente.

Para seleccionar Módulos de Skaffold en IntelliJ, sigue estos pasos:

  1. Instala las últimas compilaciones de usuarios con información privilegiada.
  2. Ve a Run > Edit configurations y abre la pestaña Build/Deploy.
  3. Selecciona skaffold.yaml.
  4. Elige una de las siguientes opciones:
    • Build and deploy with all dependencies, o
    • Build and deploy with (si los módulos están disponibles) y selecciona los módulos.
Pestaña Build/Deploy que muestra la lista de módulos.

Tu selección se conservará para implementaciones posteriores. Si seleccionas un subconjunto de módulos, Cloud Code muestra una advertencia sobre la implementación de un subconjunto de módulos y no todo el sistema.

Vista previa de la app implementada

  1. Haz clic en el botón Run en tu acción de ejecución preferida. Entonces, puedes ver los registros de aplicaciones entrantes en la ventana de salida en la pestaña Registros.

    Cuando se inicie la implementación, verás la lista de puertos reenviados para tu aplicación implementada.

  2. Una vez que la implementación se complete de forma correcta, se te notificará que las URL de servicio nuevas están disponibles. Haz clic en la pestaña Service URLs para ver las URL y, luego, haz clic en el vínculo de la URL a fin de abrir tu navegador con la aplicación en ejecución.

    Visualiza los servicios con redirección de puertos en la pestaña URL de servicio

    Como alternativa, puedes abrir el registro de eventos y, luego, hacer clic en el vínculo para abrir el navegador con la aplicación en ejecución.

Visualiza los registros

Además de ver los registros de los Pods en ejecución como una transmisión en vivo en el resultado de la terminal mientras desarrollas y ejecutas la aplicación, puedes ver los registros de un Pod específico si navegas hacia el explorador de Kubernetes.

Para ver los registros de un pod específico, sigue estos pasos:

  1. Navega a Kubernetes Explorer. Se puede acceder desde el panel lateral ubicado a la derecha o mediante Herramientas > Cloud Code > Kubernetes > Ver explorador de clústeres.

    Panel de Kubernetes Explorer abierto mediante la pestaña que se encuentra en la barra de tareas del lado derecho

  2. Selecciona el pod del que deseas ver los registros.

  3. Haz clic con el botón derecho en el Pod y, luego, en Transmitir registros (Stream Logs). Como alternativa, puedes transmitir registros para contenedores individuales que se ejecutan en Pods.

    La consola de Kubernetes Explorer muestra los registros.

    Transmite registros desde un pod mediante el menú que aparece cuando se hace clic con el botón derecho para generar registros en la consola de Kubernetes Explorer

Agrega funciones nuevas durante el desarrollo en Kubernetes

Si iniciaste un ciclo de iteraciones de desarrollo con Desarrollar en Kubernetes y agregaste más funciones a tu proyecto, verás cómo se implementan estos cambios en tu clúster de Kubernetes sin detener ni quitar la implementación, compilar ni etiquetar manualmente la imagen, ni actualizar el clúster.

Si estás siguiendo la app del libro de visitas, haz lo siguiente:

  1. Abre el archivo “FrontendController.java” de src/main/java/cloudcode/guestbook/frontend y agrega este extremo nuevo a la clase FrontendController:

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. Agrega las importaciones necesarias para las anotaciones nuevas, RequestMapping y ResponseBody.

  3. Guarda los cambios (Ctrl/Cmd+S) o compila el proyecto (usa el menú Build > Build Project).

    Puedes mirar el progreso y los registros de la implementación en la ventana de la consola. Después de que se propaguen los cambios, visita la nueva URL del extremo a fin de confirmar las actualizaciones: localhost:8080/greeting.

    Visualiza el extremo recién creado en un navegador

  4. Para finalizar la sesión de desarrollo continuo, haz clic en el botón Detener.

    El complemento borra todos los recursos de Kubernetes que se usaron para la sesión de desarrollo.

Almacenar secretos

Si el código incluye datos potencialmente sensibles, como claves de API, contraseñas y certificados, se recomienda almacenarlos como secretos. Con Cloud Code, puedes almacenar estos secretos de forma segura en Secret Manager y recuperarlos de manera programática cuando los necesites. Si deseas obtener información detallada para crear y administrar secretos con Cloud Code, consulta la guía de Secret Manager.

Visualiza los detalles de recursos

Para realizar un seguimiento del estado de los recursos de Kubernetes, puedes usar Kubernetes Explorer, al que puedes acceder desde el panel lateral ubicado a la derecha. También puedes acceder a Kubernetes Explorer mediante Herramientas > Cloud Code > Kubernetes > Ver explorador de clústeres.

Panel de Kubernetes Explorer abierto con la pestaña que se encuentra en la barra de tareas del lado derecho

Con Kubernetes Explorer, puede acceder a la información sobre los clústeres, nodos, cargas de trabajo y mucho más, así como establecer un contexto activo, transmitir y ver registros, y buscar descripciones de recursos.

Para mostrar los detalles de los recursos implementados, haz clic con el botón derecho en una etiqueta de recurso en Kubernetes Explorer y, luego, en Describe.

Opción Describe disponible cuando se hace clic con el botón derecho en un recurso determinado dentro del panel de Kubernetes Explorer y se selecciona Describe

Configuración

Cuando usas la configuración de ejecución Desarrollo en Kubernetes, puedes personalizar tu implementación mediante la configuración disponible. Para acceder a las opciones de configuración, selecciona la configuración de ejecución del menú desplegable y, luego, elige Edit Configurations.

Opciones de Skaffold

  • Skaffold configuration: Te permite seleccionar un archivo de configuración llamado skaffold.yaml. Si tu proyecto ya tiene uno, se detectará de forma automática.
  • Deployment profile: Te permite seleccionar un perfil de las opciones disponibles configuradas en el archivo skaffold.yaml.
  • Environment variables (Variables de entorno): Te permite configurar variables del entorno adicionales que se pasarán al proceso de implementación de Skaffold. Las marcas de Skaffold también se pueden configurar como variables de entorno a fin de usarlas en este campo. Consulta la documentación de referencia de la CLI de Skaffold para obtener una lista completa de las variables de entorno de Skaffold disponibles.
  • Verbosity (Verbosidad): Te permite configurar el nivel de verbosidad de salida en trace, debug, info, warn, error o fatal. El nivel de verbosidad predeterminado es warn.

Opciones de Kubernetes

  • Development Context: Representa el contexto de Kubernetes con el que se implementa tu aplicación. El comportamiento predeterminado, si no se especifica un contexto de implementación, es implementar en el contexto del sistema actual, si existe uno.

    Si prefieres no implementar en el contexto actual, en la sección Deployment de la configuración de ejecución y depuración, puedes optar por lo siguiente:

    • Deploy locally to a minikube cluster: inicia un clúster de Minikube administrado por Cloud Code para ejecutar la app y detiene el clúster después de que se detiene la implementación. Si un clúster de Minikube ya se encuentra en ejecución, Cloud Code usa el clúster de Minikube existente para la implementación.
    • Cambiar contexto e implementar en: Cambia el contexto actual en tu sistema al contexto que se especifica en la implementación.

      Selecciona el contexto de implementación de Kubernetes en una configuración de Cloud Code Kubernetes

  • Delete deployments when finished (Borrar las implementaciones cuando se terminen): Borra las implementaciones de Kubernetes cuando finaliza el proceso. Este es el comportamiento predeterminado. Como alternativa, puedes desactivar esta configuración para evitar que se borren las implementaciones.

Opciones de almacenamiento de imágenes de contenedor

Consulta la guía sobre el almacenamiento de tu imagen de contenedor para obtener más detalles.

Parámetros de configuración de compilación

Cloud Code es compatible con los tipos de artefactos Docker, Jib y Buildpacks. Consulta la guía de configuración de las preferencias de compilación de la imagen del contenedor para obtener información sobre cómo establecer tu compilador preferido y su configuración relevante.

Obtén asistencia

Para enviar comentarios o informar un problema en tu IDE de IntelliJ, ve aTools >Cloud Code >Help / About >Envía comentarios o informa un problema para informar un problema en GitHub o hacer una pregunta en Stack Overflow.

También puedes unirte al canal #cloud-code, que forma parte de la comunidad de Slack en Google Cloud.