Отладка 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
переменная окружения.