Учебник. Локальный запуск и отладка с помощью Bridge to Kubernetes в Visual Studio

В этом учебнике вы узнаете, как перенаправлять трафик между кластером Kubernetes и компьютером разработчика. В этом учебнике для отладки службы используется Bridge to Kubernetes и Visual Studio. Сведения об использовании Visual Studio Code см. в статье Локальный запуск и отладка с помощью Bridge to Kubernetes в VS Code.

Дополнительные сведения о Bridge to Kubernetes см. в разделе Как работает Bridge to Kubernetes.

В этом руководстве описано следующее:

  • Подключение к кластеру с помощью Bridge to Kubernetes.
  • Маршрутизация запросов в локально запущенную службу для целей разработки.
  • Отладка запущенной службы на локальном компьютере.

Необходимые компоненты

Настройка службы

В рамках этого учебника используется Bridge to Kubernetes для работы с простым примером приложения TODO в любом кластере Kubernetes.

Этот пример приложения имеет внешний интерфейс для взаимодействия и серверную часть, которая предоставляет постоянное хранилище.

  1. Откройте окно Bash и убедитесь, что кластер доступен и готов. Затем задайте контекст для этого кластера.

    kubectl cluster-info
    kubectl config use-context <kubernetes-cluster>
    
  2. Клонируйте пример репозитория.

    git clone https://github.com/Azure/Bridge-To-Kubernetes
    
  3. Перейдите в каталог samples/todo-app, а затем создайте пространство имен для примера.

    kubectl create namespace todo-app
    
  4. Затем примените манифест развертывания:

    kubectl apply -n todo-app -f deployment.yaml
    

    Это простое развертывание, которое предоставляет внешний интерфейс с помощью службы типа LoadBalancer. Подождите, пока все модули pod будут запущены и внешний IP-адрес службы frontend станет доступным.

    При тестировании с помощью MiniKube используйте minikube tunnel для разрешения внешнего IP-адреса. Если вы используете AKS или другой облачный поставщик Kubernetes, внешний IP-адрес назначается автоматически.

  5. Используйте приведенную ниже команду, чтобы отследить службу frontend и дождаться, пока она запустится.

    kubectl get service -n todo-app frontend --watch
    
    NAME       TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
    frontend   LoadBalancer   10.0.245.78   10.73.226.228   80:31910/TCP   6m26s
    

Подключение к кластеру

  1. Откройте Visual Studio. В окне Начало работы выберите Продолжить без кода.

  2. Выберите Открыть>Проект/решение, найдите проект samples\todo-app\database-api\databaseApi.csproj и нажмите кнопку Открыть.

  3. В проекте в списке параметров запуска выберите Bridge to Kubernetes, как показано ниже.

    Screenshot shows debugging tools with Bridge to Kubernetes selected.

  4. Нажмите кнопку запуска рядом с пунктом Bridge to Kubernetes. В диалоговом окне Создание профиля для Bridge to Kubernetes введите следующие значения:

    • Выберите имя кластера.
    • Выберите todo-app для вашего пространства имен.
    • Выберите database-api для службы, которую необходимо перенаправить.
    • Выберите тот же URL-адрес, который использовался ранее для запуска браузера.

    Screenshot shows the Create profile for Bridge to Kubernetes dialog box with the values entered.

  5. Если вы хотите выполнить запуск в режиме изоляции, выберите Включить изоляцию маршрутизации. При включении изоляции маршрутизации ваши изменения не повлияют на других пользователей, использующих кластер. Режим изоляции направляет запросы к копии каждой затрагиваемой службы. Остальной трафик маршрутизируется в обычном режиме. Дополнительные сведения см. в разделе Как работает Bridge to Kubernetes.

  6. Выберите Сохранение и отладка, чтобы сохранить изменения.

    Screenshot shows the todo service displayed from your debugging, with an entry box for tasks.

    Примечание.

    EndpointManager предлагает разрешить повышенные привилегии для файла hosts.

    Компьютер разработчика подключается к кластеру. В строке состояния показано, что вы подключены к службе database-api.

    Screenshot shows the status bar that verifies that your development computer is connected.

  7. Попробуйте ввести задачи и пометить их как завершенные.

  8. Выберите Отладка>Отменить отладку, чтобы прервать отладку. Сочетание клавиш для этого действия:Shift+F5 или можно использовать кнопку Остановить отладку на панели инструментов.

Bridge to Kubernetes перенаправляет весь трафик для службы database-api. Он перенаправляется в версию вашего приложения на компьютере разработчика. Функция Bridge to Kubernetes также направляет весь исходящий трафик из приложения обратно в кластер Kubernetes.

Примечание.

По умолчанию при остановке задачи отладки компьютер разработки отключается от кластера Kubernetes. Чтобы изменить это поведение, выберите Сервис>Параметры, а затем — средства отладки Kubernetes. Задайте для параметра Отключить после отладки значение false.

Screenshot shows the Disconnect After Debugging value in the Kubernetes Debugging Tools.

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

Установка точки останова

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

  1. В Обозревателе решенийвыберите MongoHelper.cs, чтобы открыть файл в редакторе. Если вы не видите Обозреватель решений, выберите Просмотреть>Обозреватель решений.

  2. Установите курсор на первой строке в текстовой области метода CreateTask. Затем выберите Отладка>Переключение точки останова, чтобы задать точку останова.

    Screenshot shows the CreateTask method with a breakpoint set in the first line.

    Для этого действия используется клавиша F9.

  3. Нажмите кнопку «Пуск» рядом с параметром Bridge to Kubernetes, как показано в предыдущем разделе. Отладка начинается с введенных ранее значений.

  4. В открывшемся браузере введите значение в поле todos и нажмите клавишу Enter. Код достиг заданной точки останова. При выполнении реальных задач отладки можно использовать параметры отладки для пошагового выполнения кода.

  5. Выберите Отладка>Отменить отладку, чтобы прервать отладку.

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

Изменение профиля запуска

Если вам нужно изменить способ подключения Bridge to Kubernetes к кластеру, воспользуйтесь инструкциями по изменению параметров профиля запуска, приведенными в этом разделе.

  1. Щелкните стрелку рядом с кнопкой Bridge to Kubernetes, а затем откройте раздел свойств отладки API баз данных. Screenshot shows the Bridge to Kubernetes drop down menu.

  2. Щелкните ссылку Изменить профиль для Bridge to Kubernetes в диалоговом окне Профили запуска. Screenshot shows Launch Profiles dialog with a link to edit the Bridge to Kubernetes profile

Очистка ресурсов

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

Следующие шаги

Дополнительные сведения о Bridge to Kubernetes см. в разделе Как работает Bridge to Kubernetes.

Сведения о поддерживаемых функциях и стратегии для Bridge to Kubernetes см. в разделе Стратегия Bridge to Kubernetes.

Инструкции по подключению компьютера разработчика к кластеру с помощью Visual Studio Code см. в этой статье: