Habilitar la depuración remota para la aplicación Java implementada en el entorno de Kubernetes

Durante el desarrollo, los desarrolladores tienen que depurar sus aplicaciones para resolver problemas de código. Para depurar una aplicación Java que se implementa en una máquina remota en un clúster de Kubernetes, primero el desarrollador debe realizar algunos pasos para habilitar su aplicación lista para la depuración. A continuación se muestran los pasos manuales para habilitar la depuración remota para cualquier aplicación Java que se ejecute como contenedor en el entorno de Kubernetes .

Implementación paso a paso

Paso 1: edite la implementación. Digamos que el nombre de la implementación es «my-app».

kubectl editar implementación mi-aplicación

Paso 2: agregue las opciones de Java (JAVA_OPTS) y su valor para habilitar la depuración como una variable en la sección «env» en la implementación de la siguiente manera:

– nombre: JAVA_OPTS

valor: “-agentlib:jdwp=transporte=dt_socket,servidor=y,suspender=n,dirección=9991”

Después de guardar los cambios en la implementación, Kubernetes volverá a implementar automáticamente todos los pods con los nuevos cambios.

Paso 3: Cree un servicio de depuración para su aplicación. Supongamos que lo ha nombrado como «my-app-debug-svc.yaml» o cambia el archivo yaml del servicio existente si está presente. Consulte a continuación el archivo yaml de servicio de muestra, realice los cambios resaltados en su archivo yaml de servicio. Agregar nodePort permite que la aplicación externa (aquí su IDE) acceda a los contenedores implementados en Kubernetes Cluster.

apiVersión: v1

tipo: Servicio

metadatos:

 nombre: mi-aplicación-depuración-svc

 espacio de nombres: <espacio de nombres>

 etiquetas:

   servicio: mi-aplicación-depuración

   versión: “1.0”

Especificaciones:

 tipo: puerto de Node

 puertos:

   – puerto: 9991

    NodePuerto: 9991

     protocolo: TCP

     nombre: puerto de depuración

 selector:

   aplicación: mi-aplicación

   servicio: mi-aplicación-depuración

   versión: “1.0”

Paso 4: Inicie el servicio de depuración usando el siguiente comando. 

Kubectl create -f my-app-debug-svc.yaml

Paso 5: edite la configuración en su IDE para realizar la depuración remota. Estos son los pasos para editar la configuración en IntelliJ IDE:

  • Abra su base de código en InteliiJ IDE.
  • Vaya a Editar configuración:
  • Haga clic en el signo + y seleccione Remoto. Proporcione cualquier nombre para su configuración de depuración remota. Por ejemplo, my-debug. Proporcione el nombre de host y el puerto de la máquina del servidor donde se ejecuta la aplicación que desea depurar. El valor del campo «Command line arg for remote jvm» se completará automáticamente. Haga clic en Aplicar y luego en Aceptar.

Configuración de edición de duplicados remotos de IntelliJ

  • Establecer los puntos de interrupción.
  • Haga clic en el icono de depuración.
  • Revisa la consola. Debería decir «Conectado a la máquina virtual de destino, dirección: ‘<nombre de host>:<número de puerto>’, transporte: ‘socket'».

Consola IntelliJ: Conectada a VM: Listo para la depuración.

¡Eso es todo lo que está listo para depurar su aplicación Java de forma remota!

Publicación traducida automáticamente

Artículo escrito por harshitaagrawal2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *