Рубрики
Без рубрики

Kubernetes для разработчиков Java – Отладочное приложение

Kubernetes для разработчиков Java – Отладочное приложение. Помечен java, docker, kubernetes, контейнерами.

Отлаживать приложение

На этом этапе мы развернули наше приложение в локальном кластере. Но теперь у нас есть проблема. Как отладить мое приложение, которое находится внутри докера, который находится внутри kubernetes, который находится внутри виртуальной машины?

Подготовка к отладке

В этом случае мы будем использовать удаленную отладку Java.

Первый шаг:

Подготовьте свой файл Dockerfile:

FROM openjdk:11.0.3-jdk-slim
RUN mkdir /usr/myapp
COPY target/java-kubernetes.jar /usr/myapp/app.jar
WORKDIR /usr/myapp
EXPOSE 8080
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar app.jar" ]

Эта ТОЧКА ВХОДА позволяет передавать параметры java через переменную среды $JAVA_OPTS.

Второй шаг:

Изменение app-config app.yaml файла для заполнения $JAVA_OPTS .

JAVA_OPTS: "-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n -Xms256m -Xmx512m -XX:MaxMetaspaceSize=128m"

Третий шаг:

Создание и развертывание приложения:

mvn clean install
eval $(minikube -p dev.to docker-env) && docker build --force-rm -t java-k8s .
kubectl apply -f kubernetes/app/

Четвертый шаг:

Предоставление порта отладки локальному хосту:

Получить капсулы:

kubectl get pods -n dev-to

NAME                     READY   STATUS    RESTARTS   AGE
myapp-7796bc89bf-h2f82   1/1     Running   0          3h3m

Открыть порт pod 5005:

kubectl port-forward -n dev-to myapp-7796bc89bf-h2f82 5005:5005
Forwarding from 127.0.0.1:5005 -> 5005
Forwarding from [::1]:5005 -> 5005

Измените имя своего модуля по мере необходимости .

Создайте удаленную отладку на своей СТОРОНЕ:

В IntelliJ перейдите в раздел Запуск/Отладка конфигураций .

  • Добавьте новую удаленную конфигурацию следующим образом:

После этого запустите настройку. Вы должны увидеть сообщение ниже:

Connected to the target VM, address: 'localhost:5005', transport: 'socket'

Проверьте, работает ли:

Теперь вы можете установить точку останова в HelloController .

minikube -p dev.to service -n dev-to myapp --url
http://192.168.99.100:32301
curl http://192.168.99.100:32301/hello

Вывод

В этой части мы узнали о том, как отлаживать приложения внутри локального кластера kubernetes.

В следующей части мы рассмотрим некоторые рекомендации и способы доступа к приложению с удобным URL-адресом с помощью Ingress.

До скорой встречи!

Оригинал: “https://dev.to/sandrogiacom/kubernetes-for-java-developers-debug-application-4l1a”