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


Установите расширение Dapr для Azure Kubernetes Service (AKS) и Kubernetes с функциями Arc.

Dapr упрощает создание устойчивых, безсостояничных и состояничных приложений, работающих в облаке и на периферии, и поддерживает разнообразие языков и фреймворков разработчиков. С архитектурой сайдкара Dapr вы можете сохранить независимость вашего кода от платформы, решая задачи, связанные с созданием микросервисов, такие как:

  • надежный и безопасный вызов других служб;
  • Создание приложений на основе событий с помощью pub/sub
  • Создание приложений, переносимых между несколькими облачными службами и узлами (например, Kubernetes и виртуальной машиной).

Примечание.

Если вы хотите установить Dapr в рабочей среде Kubernetes, см. страницу документации с рекомендациями по использованию Dapr в рабочей среде.

Принцип работы

Расширение Dapr использует Azure CLI или шаблон Bicep для предоставления плоскости управления Dapr в кластере Kubernetes с поддержкой AKS или Arc, создавая следующие службы Dapr:

Служба Dapr Описание
dapr-operator Управляет обновлениями компонентов и конечными точками служб Kubernetes для Dapr (хранилища состояний, публикация/подписка и т. д.)
dapr-sidecar-injector Внедряет Dapr в аннотированные pods развертывания и добавляет переменные среды DAPR_HTTP_PORT и DAPR_GRPC_PORT, что позволяет пользовательским приложениям легко взаимодействовать с Dapr без жесткого написания значений порта Dapr.
dapr-placement Используется только для актеров. Создает карты, которые сопоставляют экземпляры акторов с подами.
dapr-sentry Управляет mTLS между службами и выступает в качестве центра сертификации. Дополнительные сведения см. в обзоре безопасности.

После установки Dapr в кластере можно начать разработку с использованием API строительных блоков Dapr, добавив несколько аннотаций к развертываниям. Подробные сведения об API стандартных блоков и их оптимальном использовании см. в обзоре стандартных блоков Dapr.

Предупреждение

Если вы устанавливаете Dapr с помощью расширения AKS или Kubernetes с поддержкой Arc, мы рекомендуем продолжить использовать расширение (вместо интерфейса командной строки Dapr) для будущего управления Dapr. Параллельное использование этих двух инструментов может вызвать конфликты и привести к нежелательному поведению.

Предварительные условия

Выберите способ установки, развертывания и настройки расширения Dapr.

Прежде чем начать

Добавление расширения Azure CLI для расширений кластера

k8s-extension Установите расширение Azure CLI, выполнив следующие команды:

az extension add --name k8s-extension

Если расширение k8s-extension уже установлено, его можно обновить до последней версии, выполнив следующую команду:

az extension update --name k8s-extension

KubernetesConfiguration Регистрация поставщика ресурсов

Если вы еще не используете расширения кластера, вам может потребоваться зарегистрировать поставщика ресурсов с вашей подпиской. Вы можете проверить состояние регистрации поставщика с помощью команды az provider list , как показано в следующем примере:

az provider list --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table

Поставщик Microsoft.KubernetesConfiguration должен иметь состояние Registered, как показано в следующем примере выходных данных:

Namespace                          RegistrationState    RegistrationPolicy
---------------------------------  -------------------  --------------------
Microsoft.KubernetesConfiguration  Registered           RegistrationRequired

Если поставщик имеет состояние NotRegistered, зарегистрируйте этот поставщик с помощью команды az provider register, как показано в следующем примере.

az provider register --namespace Microsoft.KubernetesConfiguration

Зарегистрируйте функцию ExtensionTypes в подписке Azure

Эта ExtensionTypes функция должна быть зарегистрирована в подписке Azure. В терминале убедитесь, что вы находитесь в правильной подписке:

az account set --subscription <YOUR-AZURE-SUBSCRIPTION-ID>

Зарегистрируйте функцию ExtensionTypes .

az feature registration create --namespace Microsoft.KubernetesConfiguration --name ExtensionTypes

Регистрация функции может занять некоторое время. Через несколько минут проверьте состояние регистрации с помощью следующей команды:

az feature show --namespace Microsoft.KubernetesConfiguration --name ExtensionTypes

Создание расширения и установка Dapr в кластере AKS или Kubernetes с поддержкой Arc

При установке расширения Dapr используйте значение флага, соответствующее типу кластера.

  • Кластер AKS: --cluster-type managedClusters.
  • Кластер Kubernetes с поддержкой Arc: --cluster-type connectedClusters.

Примечание.

Если вы используете DAPR OSS в кластере AKS и хотите установить расширение Dapr для AKS, ознакомьтесь с дополнительными сведениями о том, как успешно выполнить миграцию в расширение Dapr.

Создайте расширение Dapr, которое устанавливает Dapr в кластере AKS или Kubernetes с поддержкой Arc.

Например, установите последнюю версию Dapr через расширение Dapr в кластере AKS:

az k8s-extension create --cluster-type managedClusters \
--cluster-name <myAKSCluster> \
--resource-group <myResourceGroup> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false

Обновление управляемого кластера AKS до последней версии

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

Выбор поезда выпуска

При настройке расширения можно установить Dapr из определенной ветки выпуска. Укажите одно из двух значений релизного потока:

значение Описание
stable По умолчанию.
dev Ранние релизы, которые могут содержать экспериментальные функции. Не подходит для производственной среды.

Например:

--release-train stable

Настройка автоматических обновлений в управляющей плоскости Dapr

Предупреждение

Автоматическое обновление не подходит для рабочих сред. Разрешайте автоматическое обновление контрольной плоскости Dapr только в средах разработки или тестирования. Узнайте, как вручную обновить до последней версии Dapr для рабочих сред.

При установке Dapr без указания версии --auto-upgrade-minor-versionавтоматически включается, и плоскость управления Dapr настраивается для автоматического обновления минорной версии при выходе новых выпусков.

Вы можете отключить автоматическое обновление, указав --auto-upgrade-minor-version параметр и задав значение false.

Управление версиями Dapr имеет MAJOR.MINOR.PATCH формат, что означает, что переход 1.11.0 к 1.12.0 является незначительным обновлением версии.

--auto-upgrade-minor-version true

Просмотр доступных последних стабильных версий Dapr.

Чтобы обновить последнюю версию Dapr в рабочей среде, необходимо вручную обновить. Начните с просмотра списка стабильных версий Dapr, доступных для управляемого кластера AKS. Выполните следующую команду:

az k8s-extension extension-types list-versions-by-cluster --resource-group <myResourceGroup> --cluster-name <myCluster> --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable

Чтобы просмотреть последнюю стабильную версию Dapr, доступную для управляемого кластера AKS, выполните следующую команду:

az k8s-extension extension-types list-versions-by-cluster --resource-group <myResourceGroup> --cluster-name <myCluster> --cluster-type managedClusters --extension-type microsoft.dapr  --release-train stable --show-latest

Чтобы просмотреть список стабильных версий Dapr, доступных по расположению:

  1. Убедитесь, что вы зарегистрировали функцию в подписке ExtensionTypes Azure.
  2. Выполните следующую команду.
az k8s-extension extension-types list-versions-by-location --location westus --extension-type microsoft.dapr

Затем вручную обновите Dapr до последней стабильной версии.

Ориентация на определенную версию Dapr

Примечание.

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

Для установки определенной версии Dapr или отката к предыдущей версии используется один аргумент командной строки. Установите --auto-upgrade-minor-version на false, а --version — на версию Dapr, которую вы хотите установить. version Если параметр опущен, расширение устанавливает последнюю версию Dapr. В следующем примере команда устанавливает версию 1.14.4-msft.10 Dapr в кластере AKS:

az k8s-extension create --cluster-type managedClusters \
--cluster-name <myAKSCluster> \
--resource-group <myResourceGroup> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false \
--version 1.14.4-msft.10

Устранение неполадок

Устранение ошибок управления расширениями

Если не удается создать или обновить расширение, попробуйте следовать предложениям и решениям в руководстве по устранению неполадок расширения Dapr.

Устранение неполадок с функциональными ошибками Dapr

Устранение ошибок с открытым исходным кодом Dapr, не связанных с расширением, с помощью руководства по общим проблемам и решениям Dapr.

Поддержка

Если при использовании расширения вы сталкиваетесь с рисками безопасности и регрессиями в среде выполнения Dapr, создайте задачу в проекте Dapr с открытым исходным кодом.

Вы также можете начать обсуждение в проекте Dapr Discord:

Удалите расширение Dapr из кластера

Процесс удаления расширения Dapr из AKS не удаляет CRD, созданные во время установки. Эти CRD остаются в кластере как резидные компоненты, необходимые для механизма согласования процессов установки и удаления расширения.

Чтобы очистить кластер этих CRD, их можно удалить вручную после полного удаления расширения Dapr из AKS.

Удаление расширения

Удалите расширение из кластера AKS с помощью следующей команды:

az k8s-extension delete --resource-group <myResourceGroup> --cluster-name <myAKSCluster> --cluster-type managedClusters --name dapr

Или, если используется шаблон Bicep, можно удалить шаблон.

Перечисление ваших CRD в кластере

Чтобы найти CRDs, которые вы хотите удалить, выполните следующую команду:

kubectl get crds | findstr dapr.io

Следующие шаги