Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете расширение Dapr в кластере Kubernetes, поддерживаемом Arc или AKS. Вы развертываете hello world пример, состоящий из приложения Python, которое создает сообщения и приложение Node.js, которое использует и сохраняет сообщения.
Prerequisites
- Подписка Azure. Если у вас нет учетной записи, вы можете создать бесплатную учетную запись.
- установлен Azure CLI
- Кластер AKS с:
- Идентификация рабочей нагрузки включена
- Управляемое удостоверение , созданное в той же подписке
- Учетная запись службы Kubernetes
- Федеративные учетные данные
- Расширение Dapr , установленное в кластере AKS
- kubectl , установленный локально
Клонирование репозитория
Клонируйте репозиторий быстрого запуска Dapr с помощью
git cloneкоманды.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitПерейдите в каталог
dapr-aks-extension-quickstart.cd dapr-aks-extension-quickstart
Создание и настройка хранилища Redis
Откройте портал Azure , чтобы запустить поток создания кэша Azure для Redis.
Заполните рекомендуемые сведения в соответствии с кратким руководством по созданию кэша Azure для Redis .
Выберите "Создать", чтобы запустить развертывание экземпляра Redis.
Проверка сведений о ресурсе
После развертывания ресурса Redis перейдите на страницу обзора.
Запишите следующее:
- Имя узла, найденное в разделе Essentials страницы обзора кэша. Формат имени узла выглядит примерно так:
xxxxxx.redis.cache.windows.net - Порт SSL находится в параметрах>Дополнительные параметры. Значение по умолчанию —
6380.
- Имя узла, найденное в разделе Essentials страницы обзора кэша. Формат имени узла выглядит примерно так:
Перейдите к разделу Настройки>Аутентификация и убедитесь, что аутентификация Microsoft Entra включена в вашем ресурсе.
Добавление управляемого удостоверения
В разделе «Аутентификация» под флажком «Включить аутентификацию Microsoft Entra» введите имя управляемого удостоверения, которое вы создали как необходимое условие.
Убедитесь, что ваша управляемая идентичность добавлена как Пользователь Redis с назначенными разрешениями политики доступа владельца данных.
Включение доступа к общедоступной сети
В этом случае кэш Redis использует доступ к общедоступной сети. Не забудьте очистить ресурсы после завершения этого краткого руководства.
Перейдите кнастройкам>частной конечной точке.
Выберите "Включить доступ к общедоступной сети " в меню.
Настройка компонентов Dapr
В файле redis.yaml компонент настроен для использования аутентификации Entra ID с применением идентификации рабочей нагрузки, включенной для кластера AKS. Ключи доступа не требуются.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
В предпочтительном редакторе кода перейдите к каталогу развертывания в примере репозитория и откройте redis.yaml.
Для
, замените значение заполнителя именем узла кэша Redis и портом SSL, которые вы сохранили ранее на портале Azure . - name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Применение конфигурации
Примените файл redis.yaml с помощью kubectl apply команды.
kubectl apply -f ./deploy/redis.yaml
Ожидаемые выходные данные
component.dapr.io/statestore created
Разверните приложение Node.js с сайдкаром Dapr
Настройка приложения Node.js
В node.yaml в спецификации пода добавлена метка для использования идентичности рабочей нагрузки:
labels:
app: node
azure.workload.identity/use: "true"
Перейдите к каталогу
deployи откройте node.yaml.Замените значение заполнителя
<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.Замените значение заполнителя
<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 <your-resource-group>