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

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

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

Расширение позволяет задавать параметры конфигурации Dapr с помощью параметра --configuration-settings. Например, чтобы подготовить Dapr с включенным высоким уровнем доступности, задайте для параметра 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. Рекомендуется создать zone redundant storage class во время установки Dapr в режиме высокой доступности в нескольких зонах доступности. Например, чтобы создать zrs класс хранилища типов:

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 используйте указанный выше класс хранилища:

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.

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

Команда 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

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

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

Примечание.

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

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

Расширение Dapr для AKS и Arc для Kubernetes требует исходящих URL-адресов https://:443 для работы. https://mcr.microsoft.com/daprio Помимо URL-адреса для извлечения артефактов Dapr, убедитесь, что вы включили исходящие URL-адреса, необходимые для AKS или Arc для Kubernetes.

Дальнейшие действия

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