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


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

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

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

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

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

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

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

Внимание

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

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

Если вы не предоставили пользовательские сертификаты, Dapr автоматически создает и сохраняет самозаверяющий сертификат, действительный в течение 1 года. Расширение 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 с поддержкой высокого уровня доступности

Подготовка Dapr с поддержкой высокой доступности (HA), задав параметру global.ha.enabled trueзначение .

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--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 myAKSCluster \
--resource-group myResourceGroup \
--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 myAKSCluster \
--resource-group myResourceGroup \
--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 XXX  
--resource-group XXX  
--name XXX  
--extension-type Microsoft.Dapr  
--auto-upgrade-minor-version XXX  
--version XXX  
--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 dapr-aks \
--resource-group dapr-rg \
--name my-dapr-ext \
--extension-type microsoft.dapr \
--release-train stable \
--auto-upgrade false \
--version 1.9.2 \
--scope cluster \
--release-namespace dapr-custom

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

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

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

az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr

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

Внимание

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

  • global.ha.*
  • dapr_placement.*

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

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

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--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 myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"

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

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

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

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

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

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--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 можно использовать образы Linux Azure с расширением Dapr. Чтобы использовать их, задайте global.tag флаг:

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--set global.tag=1.10.0-mariner

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

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

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--configuration-settings "hooks.applyCrds=false"

Примечание.

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

Выполнение требований к сети

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

  1. https://mcr.microsoft.com/daprio URL-адрес для извлечения артефактов Dapr.
  2. Исходящие URL-адреса, необходимые для AKS или Arc для Kubernetes.

Next Steps