Ejecuta y desarrolla una aplicación

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.

Ejecuta tu aplicación

Para realizar una ejecución habitual, puedes usar el objetivo de ejecución de Kubernetes, “Run on Kubernetes” (Ejecutar en Kubernetes) ícono de acción de ejecutar, a fin de compilar la imagen y, luego, implementar el proyecto en tu clúster de Kubernetes. No se supervisan las fuentes ni las dependencias del proyecto, y el proceso de Skaffold finaliza una vez que se completan la imagen y la implementación.

Implementación habitual mediante la acción de ejecutar

Para obtener más información sobre cómo personalizar la implementación, consulta las opciones de configuración disponibles.

Trabaja con desarrollo continuo

Haz clic en la acción “Develop on Kubernetes” (Desarrollar en Kubernetes) ícono de acción de ejecutar para iniciar el ciclo de desarrollo en tu clúster de Kubernetes.

Iniciar el ciclo de desarrollo del clúster de Kubernetes

Para obtener más información sobre cómo personalizar la implementación, consulta las opciones de configuración disponibles.

Cuando se inicie el ciclo de desarrollo, se abrirá la ventana de la consola con los registros. El complemento compila una imagen para el proyecto mediante Skaffold y, luego, la etiqueta, la envía al repositorio configurado y usa kubectl a fin de implementar los manifiestos de Kubernetes del proyecto.

Compilar una imagen mediante Skaffold

Cuando finaliza la compilación, se envía la imagen y comienza la implementación. La consola comenzará a transmitir registros desde tu implementación de Kubernetes.

Registros transmitidos en la consola

Obtén una previa de la app implementada

Si estás probando paso a paso la aplicación de muestra del libro de visitas, verás que se inicializó y abrió en el servidor web integrado. Según la configuración predeterminada, el servidor web del libro de visitas usa el puerto 8080 para entregar contenido. No te preocupes por acceder a la implementación mediante una dirección remota; el complemento redirecciona de forma automática todos los puertos declarados del contenedor.

Redirección de puertos automática que traslada tu contenido al puerto 8080

Dirígete a localhost:<frontend-port> en tu navegador (o usa el comando curl) para acceder a la aplicación del libro de visitas que se ejecuta en tu clúster de Kubernetes. Asegúrate de reemplazar <frontend-port> por el puerto local al que el complemento redireccionó el servicio de frontend, tal como se muestra en tus registros (y se ejemplifica en la captura de pantalla anterior).

Ejecución de la app del libro de visitas en localhost:8080

Puedes verificar los detalles de la implementación y el servicio de Kubernetes mediante los comandos estándar de la CLI de Kubernetes (por ejemplo, kubectl get deploy) o mediante el panel de Kubernetes para tu clúster de Kubernetes. Los recursos de Kubernetes para el proyecto se encuentran en el directorio de k8s; allí debería haber un conjunto de archivos YAML de implementación y servicio para el frontend, el backend y la base de datos.

Agrega funciones nuevas

Si agregas más funciones al proyecto del libro de visitas, verás cómo se implementan en tu clúster de Kubernetes sin detener ni quitar la implementación, compilar ni etiquetar de forma manual la imagen, ni actualizar el clúster.

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);
}

Agrega las importaciones necesarias para las anotaciones nuevas, RequestMapping y ResponseBody.

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

Puedes mirar el progreso y los registros de la implementación en la ventana de la consola. Cuando 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

Cuando termines, haz clic en Detener para finalizar la sesión de desarrollo continuo. Con esto, el complemento borra todos los recursos de Kubernetes que se usaron para la sesión de implementación.

Visualiza los detalles de recursos

Para realizar un seguimiento del estado de los recursos de Kubernetes, puedes usar el explorador de Kubernetes, al que puedes acceder desde el panel lateral ubicado a la derecha. También puedes acceder a él mediante Tools (Herramientas) > Cloud Code (Cloud Code) > Kubernetes (Kubernetes) > View Cluster Explorer (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

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.

De forma conveniente, puedes ejecutar un kubectl describe en tus recursos implementados a fin de mostrar sus detalles. Para ello, haz clic con el botón derecho sobre su etiqueta dentro del explorador de Kubernetes y elige Describe (Describir).

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

Configuración

Cuando usas las opciones de configuración de ejecución “Run on Kubernetes” (Ejecutar en Kubernetes) y “Develop on Kubernetes” (Desarrollar en Kubernetes), puedes personalizar tu implementación mediante la configuración disponible. Para acceder a ellas, selecciona la configuración de ejecución del menú desplegable y elige “Edit Configurations” (Editar opciones de configuración).

  • Opciones de Skaffold
    • Skaffold configuration (Configuración de Skaffold): 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 (Perfil de implementación): 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 (Contexto de implementación): Representa el contexto de Kubernetes con el que se implementará tu aplicación. El comportamiento predeterminado es implementar en el contexto actual del sistema. De forma alternativa, puedes optar por implementar en un contexto fijo si seleccionas “Switch context and deploy to” (Cambiar contexto y, también, implementar en), que se encuentra en la sección “Deployment” (Implementación) de “Run/Debug settings” (Configuración de ejecución y depuración). Esta opción cambiará 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 ejecución de Cloud Code
    • 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 activar o desactivar esta configuración para evitar que se borren las implementaciones.
  • Opciones de imagen

Obtén asistencia

Para enviar comentarios, informar problemas en GitHub o hacer preguntas en Stack Overflow.