Поделиться через


Используйте Bridge to Kubernetes с AKS

Заметка

Мост к Kubernetes будет выведен из эксплуатации 30 апреля 2025 года. Дополнительные сведения о выводе из эксплуатации и вариантах с открытыми исходными кодами см. в GitHub issue .

В этом руководстве вы используете примерное веб-приложение микроcлужб AKS, чтобы узнать, как использовать Bridge to Kubernetes для локальной отладки в одном pod, который является частью кластера Службы Azure Kubernetes (AKS).

Перед началом работы

В этом руководстве используется пример приложения Todo для демонстрации подключения компьютера разработки к кластеру Kubernetes, работающему в AKS. Если у вас уже есть собственное приложение, работающее в кластере Kubernetes, см. статью Разработка с помощьюKubernetes. Если вы используете другой кластер, например MiniKube, запущенный локально, см. раздел Использование моста к Kubernetes с примером.

Необходимые условия

Создание кластера Kubernetes

Создайте кластер AKS в поддерживаемом регионе. Следующие команды создают группу ресурсов с именем MyResourceGroup и кластер AKS с именем MyAKS.

az group create \
    --name MyResourceGroup \
        --location eastus
az aks create \
    --resource-group MyResourceGroup \
    --name MyAKS \
    --location eastus \
    --node-count 3 \
    --generate-ssh-keys

Установка примера приложения

Скачивание кода и установка зависимостей

git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\

Подключение к кластеру и развертывание приложения

На вашем рабочем компьютере скачайте и настройте CLI Kubernetes, чтобы подключиться к вашему кластеру Kubernetes с помощью az aks get-credentials.

az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app

Попробуйте использовать приложение

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

kubectl get services

Чтобы попробовать приложение, откройте URL-адрес: {your external IP from above command goes here}.nip.io

Отладка службы stats-api

В том же терминале, который вы использовали ранее, введите следующую команду, чтобы открыть api статистики в VS Code.

code ./stats-api

Сначала установите точку останова в строке 17 server.js.

Затем убедитесь, что пространство имен todo-app в кластере MyAKS задано как по умолчанию (если рядом с ним есть *). Если оно не задано по умолчанию, щелкните правой кнопкой мыши узел todo-app и выберите использовать пространство имен.

снимок экрана: пространство имен Bridge to Kubernetes.

Затем настройте мост: откройте палитру команд (CTRL+SHIFT+P или Cmd+Shift+P P на Компьютере Mac) и введите Bridge to Kubernetes. Выберите Bridge to Kubernetes: Настройка параметра.

Скриншот, показывающий окно команд Bridge to Kubernetes Configure.

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

Выберите службу stats-api.

снимок экрана: выбор службы для подключения к окну.

Важный

Вы можете перенаправить только сервисы, которые имеют один pod.

После выбора службы вам будет предложено ввести TCP-порт для локального приложения. В этом примере введите 3001.

снимок экрана, показывающий окно ввода номера порта.

Выберите Задача запуска: dev для выполнения скрипта.

снимок экрана: окно выбора задачи запуска отладчика.

У вас есть возможность запускать в изолированном режиме или в не изолированном режиме. Если вы выполняете код в изолированном режиме, только ваши запросы направляются в локальный процесс; другие разработчики могут при этом использовать кластер, не нарушая его работы. Если вы не запускаете изолированный процесс, весь трафик перенаправляется в локальный процесс. Дополнительные сведения об этом параметре см. в разделе Использование возможностей маршрутизации для разработки в изоляции. В этом примере мы продолжаем использовать неизолированные. Если вы выбрали изоляцию, task.json имеет префикс, который следует использовать для маршрутизации запроса на компьютер.

снимок экрана с окном выбора параметра изоляции.

Заметка

При последующих запусках вам нужно будет просто щелкнуть значок отладки без выполнения настройки и без запроса имени службы, порта, задачи запуска или изолированного режима. Эти значения сохраняются в .vscode/tasks.json. Чтобы изменить эти параметры позже, откройте палитру команд (CTRL+SHIFT+P или cmd+SHIFT+P на компьютере Mac) и выполните команду Bridge to Kubernetes: Настройка.

Профиль отладки Bridge to Kubernetes успешно настроен.

Чтобы начать отладку, щелкните значок отладки слева и выберите запустить скрипт: dev с помощью Kubernetes. Нажмите кнопку запуска рядом с Запустить скрипт: разработка в среде Kubernetes.

снимок экрана, показывающий окно выбора выбора профиля запуска отладки.

Заметка

Вам будет предложено разрешить EndpointManager запускаться с повышенными правами и изменять файл hosts.

Компьютер разработки подключен, когда строка состояния VS Code становится оранжевым, а расширение Kubernetes показывает, что вы подключены. После подключения компьютера разработки трафик начинает перенаправляться на ваш компьютер разработки для stats-api, который вы заменяете.

снимок экрана: выбор отладки с помощью окна Bridge to Kubernetes.

Перейдите к точке входа внешнего интерфейса приложения через внешний IP-адрес, который вы нашли ранее, {your external IP from get services command}.nip.io. Обратите внимание, что при выборе режима изоляции необходимо использовать {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io.

Отправьте запрос к API статистики, выбрав ссылку статистики.

снимок экрана: выберите работающий веб-сайт — выберите ссылку состояния.

Обратите внимание, что трафик, который изначально был запущен в кластере, был перенаправлен на локальную запущенную версию (за пределами кластера), где была активирована точка останова.

Нажмите клавишу PLAY и разрешите запросу продолжать работу прозрачно.

Убирать

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

Кластер AKS можно оставить в будущем для отладки или удалить его с помощью следующей команды.

az aks delete --name MyAKS --resource-group MyResourceGroup

Дальнейшие действия

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