Как удаленно отлаживать приложение, размещенное в Azure K8s Cluster - PullRequest
1 голос
/ 10 апреля 2020

Основа c фон

Мое приложение - приложение Java, Мое приложение развертывается в кластере Azure. все хорошо. Но я хочу знать, как подключить отладчик Eclipse к приложению, работающему в кластере Azure.

В сценарии запуска порт JPDA связан с 8000, а в dockerfile 8000 открыт порт .

Проблема заключается в том, как подключить отладчик eclipse к коду, работающему в кластере Azure.

Я пытался указать IP-адрес в Remote Java Application свойствах соединения Host:, но не удалось.

Необходима процедура для удаленной отладки.

1 Ответ

2 голосов
/ 10 апреля 2020

Так что после поиска в Google я нашел одну технику ниндзя ??. Техника, известная нам как port-forwarding.

Итак, основная идея c состоит в том, чтобы перенаправить порт работающего приложения на доступный порт нашей локальной системы.

Итак, я нашел одну команду для переадресации порта :

kubectl port-forward pods/<podName> 8000:8000 -n <namespace>

В этой команде нам нужно знать. Для этого нам нужно знать работающие модули в кластере Kubernetes на Azure. Это означает, что нам нужно подключить или аутентифицировать CLI вашего локального компьютера с помощью Azure.

Загрузите Azure CLI по этой ссылке и установите https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

  • Теперь откройте команду запуска PowerShell

    az login

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


C:\Users\MachineName> az login
You have logged in. Now let us find all the subscriptions to which you have access...

[
  {
    "cloudName": "",
    "id": "",
    "isDefault": true,
    "name": "",
    "state": "Enabled",
    "user": {
      "name": "",
      "type": ""
    }
  }
]
  • Теперь следующая команда для запуска is:

    az aks get-credentials --resource-group <ResourseGroupName> --name <Name of Kubernetes cluster>

  • Команда запуска для запуска модулей в определенном c пространстве имен, если оно определено как любое.

    kubectl get pods -n <namespace>

  • Теперь у вас будут запущенные модули в указанном c пространстве имен в кластере Kubernetes из облака Azure.


NAME                         READY STATUS  RESTARTS    AGE

application-8664866df5-x4zns 2/2           Running 0   21m
  • Время запуска нашей начальной команды.

    kubectl port-forward pods/<application-8664866df5-x4zns> 6000:8000 -n myNameSpace

  • В клике вы увидите


Forwarding from 127.0.0.1:6000 -> 8000
Forwarding from [::1]:6000 -> 8000

Might запутайтесь, почему я использую порт 6000, потому что мой порт 8000 уже используется.

Время соединения с eclipse: Project Right-click> debug> debug configuration> поиск Remote Java Application.

Задайте имя отладчика, как у меня: debugCluster Host: 127.0.0.1 Port: 6000

Применить и нажать кнопку Отладка через некоторое время, вы будете убедитесь, что ваш отладчик подключен к экземпляру, работающему в кластере Azure.

enter image description here

...