Краткое руководство. Развертывание приложения с помощью расширения кластера Dapr для Службы Azure Kubernetes (AKS) или Kubernetes с поддержкой Arc
В этом кратком руководстве вы используете расширение кластера Dapr в кластере Kubernetes с поддержкой Arc или AKS. Вы развертываете hello world
пример, состоящий из приложения Python, которое создает сообщения и приложение Node.js, которое использует и сохраняет сообщения.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
- Установленные Azure CLI или Azure PowerShell.
- Кластер AKS с:
- Удостоверение рабочей нагрузки включено
- Управляемое удостоверение , созданное в той же подписке
- Учетная запись службы Kubernetes
- Учетные данные федеративного удостоверения
- Расширение кластера Dapr, установленное в кластере AKS
- kubectl , установленный локально.
Клонирование репозитория
Клонируйте репозиторий кратких руководств Dapr с помощью
git clone
команды.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
Перейдите в каталог
dapr-aks-extension-quickstart
.
Создание и настройка хранилища Redis
Откройте портал Azure, чтобы запустить поток создания Кэш Azure для Redis.
- Заполните рекомендуемые сведения в соответствии с инструкциями по созданию кэша Redis с открытым исходным кодом.
- Выберите "Создать", чтобы запустить развертывание экземпляра Redis.
Проверка сведений о ресурсе
- После развертывания ресурса Redis перейдите на страницу обзора.
- Запишите следующее:
- Имя узла, найденное в разделе Essentials страницы обзора кэша. Формат имени узла выглядит примерно так:
xxxxxx.redis.cache.windows.net
- SSL-порт, найденный в колонке дополнительных параметров кэша. Значение по умолчанию —
6380
.
- Имя узла, найденное в разделе Essentials страницы обзора кэша. Формат имени узла выглядит примерно так:
- Перейдите в колонку проверки подлинности и убедитесь, что проверка подлинности Microsoft Entra включена в ресурсе.
Добавление управляемого удостоверения
В колонке проверки подлинности введите имя управляемого удостоверения, созданного в качестве обязательного условия в поле в разделе "Включить проверку подлинности Microsoft Entra Authentication".
Убедитесь, что управляемое удостоверение добавляется в качестве разрешений политики доступа владельца данных Redis, назначаемой пользователем.
Включение доступа к общедоступной сети
В этом случае кэш Redis использует доступ к общедоступной сети. Не забудьте очистить ресурсы после завершения работы с этим кратким руководством.
- Перейдите в колонку "Частная конечная точка ".
- Нажмите кнопку "Включить доступ к общедоступной сети" в верхнем меню.
Настройка компонентов Dapr
В redis.yaml
компоненте настроена проверка подлинности идентификатора записи с помощью удостоверения рабочей нагрузки, включенного для кластера AKS. Ключи доступа не требуются.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
В предпочитаемом редакторе кода перейдите к
deploy
каталогу в примере и откройтеredis.yaml
его.Для
redisHost
этого замените значение заполнителя<REDIS_HOST>:<REDIS_PORT>
именем узла кэша Redis и ПОРТОМ SSL, сохраненным ранее из портал Azure.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Применение конфигурации
redis.yaml
Примените файл с помощьюkubectl apply
команды.kubectl apply -f ./deploy/redis.yaml
Убедитесь, что хранилище состояний
kubectl get components.redis
успешно настроено с помощью команды.kubectl get components.redis -o yaml
Ожидаемые выходные данные
component.dapr.io/statestore created
Развертывание приложения Node.js с помощью расширения Dapr
Настройка приложения Node.js
В node.yaml
спецификации pod добавлена метка для использования удостоверения рабочей нагрузки:
labels:
app: node
azure.workload.identity/use: "true"
Перейдите к каталогу
deploy
и откройтеnode.yaml
его.Замените значение
serviceAccountName
заполнителя<SERVICE_ACCOUNT_NAME>
именем созданной учетной записи службы.- Это значение должно быть той же учетной записью службы, которую вы использовали для создания учетных данных федеративного удостоверения.
Применение конфигурации
Примените развертывание приложения Node.js к кластеру
kubectl apply
с помощью команды.kubectl apply -f ./deploy/node.yaml
Развертывания Kubernetes являются асинхронными, поэтому перед переходом к следующим шагам убедитесь, что развертывание завершено со следующей командой:
kubectl rollout status deploy/nodeapp
Доступ к службе с помощью
kubectl get svc
команды.kubectl get svc nodeapp
Запишите выходные
EXTERNAL-IP
данные.
Проверка службы Node.js
Использование
curl
, вызовите службу с помощью функцииEXTERNAL-IP
.curl $EXTERNAL_IP/ports
Пример результата
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Отправьте заказ в приложение.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
Подтвердите заказ.
curl $EXTERNAL_IP/order
Ожидаемые выходные данные
{ "orderId": "42" }
Развертывание приложения Python с помощью расширения Dapr
Настройка приложения Python
В python.yaml
спецификации pod добавлена метка для использования удостоверения рабочей нагрузки:
labels:
app: node
azure.workload.identity/use: "true"
Перейдите к каталогу
deploy
и откройтеpython.yaml
его.Замените значение
serviceAccountName
заполнителя<SERVICE_ACCOUNT_NAME>
именем созданной учетной записи службы.- Это значение должно быть той же учетной записью службы, которую вы использовали для создания учетных данных федеративного удостоверения.
Применение конфигурации
Разверните приложение Python в кластере Kubernetes с помощью
kubectl apply
команды.kubectl apply -f ./deploy/python.yaml
Развертывания Kubernetes являются асинхронными, поэтому перед переходом к следующим шагам убедитесь, что развертывание завершено со следующей командой:
kubectl rollout status deploy/pythonapp
Наблюдение за сообщениями и подтверждение сохраняемости
Теперь, когда развертываются Node.js и приложения Python, вы можете просматривать сообщения.
Получите журналы приложения Node.js с помощью
kubectl logs
команды.kubectl logs --selector=app=node -c node --tail=-1
Ожидаемые выходные данные
Got a new order! Order ID: 1 Successfully persisted state Got a new order! Order ID: 2 Successfully persisted state Got a new order! Order ID: 3 Successfully persisted state
Используя
curl
, вызовите конечную точку заказа приложения Node.js, чтобы получить последний заказ.curl $EXTERNAL_IP/order
В ответе должны отображаться последние выходные данные JSON.
Очистка ресурсов
Если вы больше не планируете использовать ресурсы из этого краткого руководства, можно удалить все связанные ресурсы, удалив группу ресурсов.
Удалите группу ресурсов, кластер, пространство имен и все связанные ресурсы с помощью команды az group delete .
az group delete --name MyResourceGroup
Следующие шаги
Azure Kubernetes Service