Используйте 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 с примером.
Необходимые условия
- Подписка Azure. Если у вас нет подписки Azure, можно создать бесплатную учетную запись.
- УстановленAzure CLI.
- Visual Studio Code работает в macOS, Windows 10 или Linux.
- Расширение Bridge to Kubernetes, установленное в Visual Studio Code.
Создание кластера 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 и выберите использовать пространство имен.
Затем настройте мост: откройте палитру команд (CTRL+SHIFT+P или Cmd+Shift+P P на Компьютере Mac) и введите Bridge to Kubernetes. Выберите Bridge to Kubernetes: Настройка параметра.
Вам будет предложено настроить службу, которую вы хотите заменить, порт для пересылки с компьютера разработки и задачу запуска для использования.
Выберите службу 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, который вы заменяете.
Перейдите к точке входа внешнего интерфейса приложения через внешний 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.