Использование Bridge to Kubernetes с AKS
В этом руководстве вы используете конкретное веб-приложение микрослужб AKS, чтобы узнать, как использовать Bridge to Kubernetes для локальной отладки в одном модуле pod, который является частью кластера Служба Azure Kubernetes (AKS).
Подготовка к работе
Для демонстрации подключения компьютера разработки к кластеру Kubernetes, работающему в Службе Azure Kubernetes, в этом руководстве используется пример приложения Todo. Если у вас уже есть собственное приложение, работающее в кластере Kubernetes, см. раздел Разработка с Kubernetes. Если вы используете другой кластер, например MiniKube, работающий локально, см. раздел Использование Bridge to Kubernetes с примером.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
- Установленный Azure CLI.
- Visual Studio Code, работающий в macOS, Windows 10 или Linux.
- Расширение Bridge to Kubernetes, установленное в Visual Studio Code.
Создание кластера Kubernetes
Создайте кластер AKS в поддерживаемом регионе. Следующие команды создают группу MyResourceGroup
ресурсов и кластер MyAKS
AKS.
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\
Подключение к кластеру и развертывание приложения
На компьютере разработки скачайте и настройте интерфейс командной строки 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 на компьютере Mac) и введите Bridge to Kubernetes. Выберите параметр Bridge to Kubernetes: Настройка.
Вам будет предложено настроить службу, которую вы хотите заменить, порт для пересылки с компьютера разработки и задачу запуска для использования.
Выберите службу stats-api
.
Внимание
Перенаправление можно выполнять только для служб с одним модулем pod.
После выбора службы вам будет предложено ввести TCP-порт для локального приложения. В этом примере введите 3001.
Выберите Run Script: dev в качестве задачи запуска.
У вас есть возможность работать изолированно или неизолированно. Если вы работаете изолированно, в ваш локальный процесс направляются только ваши запросы; другие разработчики могут использовать кластер без каких-либо последствий. Если вы не работаете изолированно, весь трафик перенаправляется в ваш локальный процесс. Дополнительные сведения об этом параметре см. в разделе Использование возможностей маршрутизации для изолированной разработки. В этом примере мы продолжаем использовать неизолированные. Если вы выбрали изоляцию, task.json имеет префикс, который следует использовать для маршрутизации запроса на компьютер.
Примечание.
При последующих запусках вам следует всего лишь нажимать значок отладки. Нет необходимости выполнять настройку и заполнять запросы на имя службы, порт, задачу запуска или выбор между изолированной или неизолированной работой. Эти значения сохраняются в .vscode/tasks.json
. Чтобы изменить эти настройки позже, откройте палитру команд (CTRL+SHIFT+P или Cmd+Shift+P на Mac) и выполните команду Bridge to Kubernetes: Настройка.
Профиль отладки Bridge to Kubernetes настроен успешно.
Чтобы запустить отладку, нажмите значок "Отладка" слева и выберите команду Запустить сценарий: dev с Kubernetes. Нажмите кнопку "Пуск" рядом с пунктом Запуск сценария: dev с 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
.
Выполните запрос к stats-api, выбрав ссылку stats.
Обратите внимание, что трафик, изначально начатый в вашем кластере, был перенаправлен на вашу локально работающую версию (за пределами кластера), где была запущена точка останова.
Нажмите кнопку воспроизведения и позвольте запросу продолжить процедуру прозрачного выполнения.
Очистка
При остановке отладчика все изменения в кластере отменить изменения. Обратите внимание, что, если вы работали с изоляцией, pod диспетчера маршрутизации останется, чтобы в следующие разы отладчик можно было запустить быстрее.
Кластер AKS можно оставить в будущем для отладки или удалить его с помощью следующей команды.
az aks delete --name MyAKS --resource-group MyResourceGroup
Следующие шаги
Дополнительные сведения о Bridge to Kubernetes см. в разделе Как работает Bridge to Kubernetes.