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


Настройте расширение Dapr для вашего проекта на службе Azure Kubernetes (AKS) и Kubernetes с поддержкой Azure Arc.

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

  • Обновление сертификатов с истекающим сроком действия
  • Настройка Dapr с включенной поддержкой высокой доступности
  • Ограничение того, какие узлы используют расширение Dapr
  • Настройка автоматических обновлений настраиваемого определения ресурсов (CRD)
  • Настройка пространства имен релиза Dapr

Расширение позволяет задавать параметры конфигурации Dapr через параметр --configuration-settings в Azure CLI или через свойство configurationSettings в шаблоне Bicep.

Важно

Начиная с 30 ноября 2025 г. служба Azure Kubernetes (AKS) больше не поддерживает или предоставляет обновления безопасности для Azure Linux 2.0. Образ узла Linux 2.0 Azure заморожен в выпуске 202512.06.0. Начиная с 31 марта 2026 г. образы узлов будут удалены, и вы не сможете масштабировать пулы узлов. Выполните миграцию в поддерживаемую версию Linux Azure, обновив пулы узлов до поддерживаемой версии Kubernetes или переключив ее на osSku AzureLinux3. Дополнительные сведения см. в вопросе о прекращении поддержки на GitHub и объявлении об устаревании обновлений Azure. Чтобы оставаться в курсе объявлений и обновлений, следуйте заметкам о выпуске AKS.

Обновление параметров конфигурации

Важно

Некоторые параметры конфигурации нельзя изменить после создания. Корректировка этих опций требует удаления и воссоздания расширения, применимо к следующим настройкам:

  • global.ha.*
  • dapr_placement.*

HA включена по умолчанию. При отключении его требуется удаление и восстановление расширения.

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

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \  
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" 

Чтобы обновить dapr_operator.replicaCount с версии два до версии три, повторно создайте расширение с помощью следующей команды:

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"

Управление сертификатами mTLS

Расширение Dapr поддерживает транзитное шифрование связи между экземплярами Dapr с помощью контрольной плоскости службы Dapr Sentry, которая является центральным удостоверяющим центром (ЦУЦ). С помощью службы Sentry можно шифровать обмен данными с помощью самозаверяемых или пользовательских сертификатов x.509. Дополнительные сведения о настройке сертификатов mTLS см. в документации dapr с открытым исходным кодом.

Вы можете использовать собственные сертификаты или позволить Dapr автоматически создавать и сохранять самозаверяющие корневые и издательские сертификаты.

Важно

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

Управление самозаверяемыми сертификатами Dapr

Если вы не предоставляете пользовательские сертификаты, Dapr автоматически создает и сохраняет самозаверяющий сертификат, действительный в течение одного года. Расширение Dapr устанавливает секрет dapr-trust-bundle, содержащий сведения о сертификате в пространстве имен по умолчанию dapr-system.

Проверьте срок действия самозаверенных сертификатов, созданных Dapr.

Вы можете проверить, истекает ли корневой сертификат Dapr кластера Kubernetes с помощью интерфейса командной строки Dapr.

dapr mtls expiry

Ожидаемые выходные данные:

Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC

Вы также можете найти дату окончания срока действия текущего сертификата в секретных данных Kubernetes dapr-trust-bundle .

kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates

Ожидаемые выходные данные:

notBefore=Dec  6 17:59:20 2024 GMT
notAfter=Dec  6 18:14:20 2025 GMT

Сгенерировать новый самоподписанный сертификат Dapr

Управление собственными пользовательскими сертификатами x.509

Вы также можете принести собственные пользовательские сертификаты.

Настройка Dapr с включенной высокодоступностью (HA)

Настройка Dapr с включенной поддержкой высокой доступности (HA) путем установки параметра global.ha.enabled в true.

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"

Примечание

Если параметры конфигурации чувствительны и должны быть защищены (например, сведения, связанные с сертификатом), передайте --configuration-protected-settings параметр для защиты значения от чтения.

Если параметры конфигурации не передаются, конфигурация Dapr по умолчанию используется следующим образом:

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

Список доступных параметров см. в разделе "Конфигурация Dapr".

Ограничение расширения определенным узлам

В некоторых конфигурациях может потребоваться запустить dapr только на определенных узлах. Вы можете ограничить расширение, передав параметр nodeSelector в конфигурацию расширения. Если нужное nodeSelector содержит ., нужно экранировать их в оболочке и расширении. Например, следующая конфигурация устанавливает Dapr только на узлы с topology.kubernetes.io/zone: "us-east-1c":

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/zone=us-east-1c"

Для управления ОС и архитектурой используйте поддерживаемые версии конфигурации global.daprControlPlaneOs и global.daprControlPlaneArch.

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.daprControlPlaneOs=linux" \
--configuration-settings "global.daprControlPlaneArch=amd64"

Установите Dapr в нескольких зонах доступности в режиме высокой доступности

По умолчанию служба размещения использует класс хранилища типа standard_LRS. Рекомендуется создать класс избыточного хранилища между зонами при установке Dapr в режиме высокой доступности в нескольких зонах доступности. Например, чтобы создать zrs класс хранилища типов, добавьте storageaccounttype параметр:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: custom-zone-redundant-storage
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
  storageaccounttype: Premium_ZRS

При установке Dapr используйте класс хранилища, используемый в YAML-файле:

az k8s-extension create --cluster-type managedClusters  
--cluster-name <your-AKS-cluster>
--resource-group <your-resource-group>
--name dapr
--extension-type Microsoft.Dapr
--auto-upgrade-minor-version true
--configuration-settings "dapr_placement.volumeclaims.storageClassName=custom-zone-redundant-storage"

Настройка пространства имен версии Dapr

Настройка пространства имен выпуска возможна.

Расширение Dapr устанавливается в dapr-system пространстве имен по умолчанию. Чтобы переопределить его, используйте --release-namespace. Чтобы переопределить пространство имен, включите кластер --scope.

az k8s-extension create \
--cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type microsoft.dapr \
--release-train stable \
--auto-upgrade false \
--version 1.9.2 \
--scope cluster \
--release-namespace dapr-custom

Узнайте, как настроить пространство имен релиза при миграции с Dapr с открытым исходным кодом на расширение Dapr.

Отображение текущих параметров конфигурации

az k8s-extension show Используйте команду для отображения текущих параметров конфигурации Dapr:

az k8s-extension show --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr

Настройка уровней журнала мониторинга Dapr

Параметры компонента мониторинга Dapr можно настроить с помощью расширения кластера AKS. Например, чтобы обновить dapr_monitoring уровни журналов до уровня 'предупреждение' (только при получении предупреждения или ошибки), задайте следующее configuration-settings:

az k8s-extension create --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_monitoring.logLevel=warn"

Настройка исходящего прокси-сервера для расширения Dapr для локальной среды Azure Arc

Если вы хотите использовать исходящий прокси-сервер с расширением Dapr для AKS, это можно сделать следующим образом:

  1. Настройка переменных среды прокси с помощью dapr.io/env заметок:
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. Установка сертификата прокси в контейнер sidecar.

Обновление версии установки Dapr

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

az k8s-extension update --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--version 1.12.0 # Version to upgrade or downgrade to

Команда, приведённая выше, обновляет только плоскость управления Dapr. Чтобы обновить сайдкары Dapr, перезапустите развертывания приложений:

kubectl rollout restart deploy/<deployment-name>

Использование образов на основе Linux в Azure

В Dapr версии 1.8.0 можно использовать образы Azure Linux с расширением Dapr. Чтобы использовать их, задайте global.tag флаг:

az k8s-extension update --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--set global.tag=1.10.0-mariner

Отключение автоматических обновлений CRD

Начиная с версии Dapr 1.9.2, CRD автоматически обновляются при обновлении расширения. Чтобы отключить этот параметр, можно задать значение hooks.applyCrdsfalse.

az k8s-extension update --cluster-type managedClusters \
--cluster-name <your-AKS-cluster> \
--resource-group <your-resource-group> \
--name dapr \
--configuration-settings "hooks.applyCrds=false"

Примечание

CRD применяются только в случае обновления и пропускаются во время понижения.

Соответствие требованиям к сети

Для расширения Dapr требуются следующие исходящие URL-адреса https://:443 для работы в AKS и Arc для Kubernetes:

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