Отладка Java-приложения в модуле K8S с использованием телеприсутствия

Я пытаюсь отладить приложение Java, развернутое в кластере K8S в Kyma.

Я пытаюсь использовать телеприсутствие для этого

Я установил телеприсутствие и поменял развертывание.

Ниже логи при подключении

          T: Forwarding remote port 8080 to local port 8080.

T: Connected. Flushing DNS cache.
T: Setup complete. Launching your command.

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
@cba47a8.kyma-stage.shoot.live.k8s-hana.ondemand.com|bash-3.2$

Теперь, когда я пытаюсь создать конфигурацию удаленной отладки в Eclipse, указав localhost: 8080, я получаю сообщение об ошибке отказа в соединении.

Из приведенных выше журналов я понял, что переадресация портов произошла и доступна как локальный порт.

С уважением,

Саурав

1 ответ

Я думаюconnection refusedошибка не связана с конфигурацией Telepresence. Когда вы запускаете приложение Java, вам необходимо включить удаленную отладку, предоставив параметр JVM.-agentlib:jdwp:

      java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar app.jar

Подробнее здесь

После этого вы можете установить конфигурацию Eclipse с помощьюlocalhost:5005.

Кроме того, я думаю, стоит упомянуть, что если вам не нужна двусторонняя связь, вы можете просто выполнить переадресацию портов с помощьюkubectlкоманда:

      kubectl port-forward <pod_name> 8080:8080

но не забудьте включить удаленную отладку в развернутом приложении.
Для образа Docker вы можете определитьENTRYPOINTкак

      ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]

и включить или отключить отладку, установивJAVA_OPTSпеременная окружения.

Другие вопросы по тегам