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


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

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

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

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

Подготовка 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