Настройка расширения 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
- С помощью интерфейса командной строки Dapr (рекомендуется)
См. руководство по обновлению корневого и издателя сертификатов Dapr с помощью руководства по CLI . - С помощью
kubectl
команд см. корневой сертификат или сертификат издателя Dapr с помощью руководства Kubectl .
Управление собственными пользовательскими сертификатами x.509
Вы также можете принести собственные пользовательские сертификаты.
- Создание пользовательских сертификатов
Создание собственного пользовательского сертификата; Например, сертификат Azure Key Vault. - Обновление пользовательского сертификата вручную
Следуйте инструкциям, приведенным в документации по Dapr открытый код, чтобы обновить пользовательские сертификаты вручную.kubectl
Подготовка 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, это можно сделать следующим образом:
- Настройка переменных среды прокси с помощью
dapr.io/env
заметок:HTTP_PROXY
HTTPS_PROXY
NO_PROXY
- Установка сертификата прокси-сервера в боковой плате.
Обновление версии установки 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
- Узнайте больше об использовании образов на основе Маринера с Dapr.
- Дополнительные сведения о развертывании Azure Linux в AKS.
Отключение автоматических обновлений 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:
https://mcr.microsoft.com/daprio
URL-адрес для извлечения артефактов Dapr.- Исходящие URL-адреса, необходимые для AKS или Arc для Kubernetes.
Next Steps
Azure Kubernetes Service