Контейнер удаленной отладки в kubernetes с использованием intellij - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь выполнить удаленную отладку приложения в подключенном режиме с хостом: 192.168.99.100 и портом 5005, но он говорит мне, что это unable to open the debugger port.IP-адрес 192.268.99.100 (кластер размещается локально через мини-куб).

Вывод kubectl describe service catalogservice

Name:                     catalogservice
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=catalogservice
Type:                     NodePort
IP:                       10.98.238.198
Port:                     web  31003/TCP
TargetPort:               8080/TCP
NodePort:                 web  31003/TCP
Endpoints:                172.17.0.6:8080
Port:                     debug  5005/TCP
TargetPort:               5005/TCP
NodePort:                 debug  32003/TCP
Endpoints:                172.17.0.6:5005
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Это сервис pods.yml:

apiVersion: v1
kind: Service
metadata:
  name: catalogservice
spec:
  type: NodePort
  selector:
    app: catalogservice
  ports:
  - name: web
    protocol: TCP
    port: 31003
    nodePort: 31003
    targetPort: 8080
  - name: debug
    protocol: TCP 
    port: 5005
    nodePort: 32003
    targetPort: 5005

И здесь я открываю порт контейнеров

spec:
  containers:
  - name: catalogservice
    image: elps/myimage
    ports:
    - containerPort: 8080
      name: app
    - containerPort: 5005
      name: debug

Способ создания образа:

FROM openjdk:11
VOLUME /tmp
EXPOSE 8082
ADD /target/catalogservice-0.0.1-SNAPSHOT.jar catalogservice-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n", "-jar", "catalogservice-0.0.1-SNAPSHOT.jar"]

Когда я выполняю nmap -p 5005 192.168.99.100, я получаю

PORT     STATE  SERVICE
5005/tcp closed avt-profile-2

Когда я выполняю nmap -p 32003 192.168.99.100 Я получаю

PORT     STATE  SERVICE
32003/tcp closed unknown

Когда я выполняю nmap -p 31003 192.168.99.100 Я получаю

PORT     STATE  SERVICE
31003/tcp open unknown

Когда я выполняю kubectl get services Я получаю

NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                          AGE
catalogservice    NodePort    10.108.195.102   <none>        31003:31003/TCP,5005:32003/TCP   14m

minikube service customerservice --url возвращает

http://192.168.99.100:32004

1 Ответ

0 голосов
/ 18 декабря 2018

В сообщении, которое вы впервые опубликовали как:

    - containerPort: 5050
      name: debug

, было указано:

    - containerPort: 5005
      name: debug

При настройке также необходимо использовать внешний порт 32003отладчик IntelliJ.С этими изменениями все должно работать.

Вы также можете подумать о том, как сделать его более гибким.В прошлом , когда я делал это , я использовал другую форму для команды запуска докера , которая позволяет включать и выключать удаленную отладку с помощью переменной окружения REMOTE_DEBUG, который для вас будет:

CMD if [ "x$REMOTE_DEBUG" = "xfalse" ] ; then java $JAVA_OPTS -jar catalogservice-0.0.1-SNAPSHOT.jar ; else java $JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n -jar catalogservice-0.0.1-SNAPSHOT.jar ; fi

Вы, вероятно, обнаружите, что хотите установить env var $JAVA_OPTS для ограничения использования памяти jvm доизбегайте проблем в k8s .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...