Configuración de la extensión Dapr para el proyecto de Kubernetes habilitado para Arc y Azure Kubernetes Service (AKS)
Después de completar los requisitos previos para instalar la extensión Dapr, puede configurar la extensión Dapr para que funcione mejor para usted y el proyecto con varias opciones de configuración, como:
- Rotación de certificados que expiran
- Aprovisionamiento de Dapr con alta disponibilidad (HA) habilitada
- Limitación de los nodos que usan la extensión Dapr.
- Establecimiento de actualizaciones automáticas de definición de recursos personalizados (CRD)
- Configuración del espacio de nombres de la versión de Dapr.
La extensión le permite establecer opciones de configuración de Dapr mediante el --configuration-settings
parámetro de la CLI de Azure o configurationSettings
la propiedad en una plantilla de Bicep.
Administrar certificados mTLS
La extensión Dapr admite el cifrado en tránsito de la comunicación entre instancias de Dapr mediante el plano de control del servicio Sentry de Dapr, que es una entidad de certificación central (CA). Con el servicio Sentry, puede cifrar la comunicación mediante certificados x.509 autofirmados o proporcionados por el usuario. Obtenga más información sobre cómo configurar certificados mTLS en la documentación de Dapr de código abierto.
Puede traer sus propios certificados, o permitir que Dapr cree y conserve automáticamente los certificados raíz y emisor autofirmados.
Importante
Si no configura explícitamente certificados, Dapr genera certificados autofirmados, que generalmente son válidos durante 1 año. Actualmente, no se recomienda usar certificados autofirmados generados por Dapr. El procedimiento recomendado es generar certificados personalizados y actualizarlos manualmente.
Administrar certificados autofirmados generados por Dapr
Si no ha proporcionado ningún certificado personalizado, Dapr crea y conserva automáticamente los certificados autofirmados, válidos durante 1 año. La extensión Dapr instala el secreto de dapr-trust-bundle
, que contiene información de certificado en el espacio de nombres dapr-system
predeterminado.
Comprobación de la expiración de los certificados autofirmados generados por Dapr actuales
Puede comprobar cuándo expira el certificado raíz de Dapr del clúster de Kubernetes mediante la CLI de Dapr.
dapr mtls expiry
Salida prevista:
Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC
También puede encontrar la fecha de expiración del certificado actual en los datos secretos de Kubernetes dapr-trust-bundle
.
kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates
Salida prevista:
notBefore=Dec 6 17:59:20 2024 GMT
notAfter=Dec 6 18:14:20 2025 GMT
Generar un nuevo certificado autofirmado generado por Dapr
- A través de la CLI de Dapr (recomendado)
Consulte la guía de actualización de certificados raíz y de emisor de Dapr mediante CLI. - A través
kubectl
de comandos Consulte la guía Actualización de certificados raíz o de emisor de Dapr mediante Kubectl.
Administrar sus propios certificados x.509 proporcionados por el usuario
También puede traer sus propios certificados personalizados.
- Generar certificados personalizados
Cree su propio certificado personalizado; por ejemplo, un certificado de Azure Key Vault. - Actualizar manualmente el certificado personalizado
Siga las instrucciones proporcionadas en la documentación de código abierto de Dapr para actualizar los certificados personalizados manualmente mediantekubectl
.
Aprovisionamiento de Dapr con alta disponibilidad (HA) habilitada
Aprovisione Dapr con alta disponibilidad (HA) habilitada estableciendo el global.ha.enabled
parámetro en 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"
Nota:
Si los valores de configuración son confidenciales y deben protegerse, como, por ejemplo, la información relacionada con certificados, pase el parámetro --configuration-protected-settings
y el valor se protegerá para que no se lea.
Si no se pasa ninguna configuración, los valores predeterminados de la configuración de Dapr son los siguientes:
ha:
enabled: true
replicaCount: 3
disruption:
minimumAvailable: ""
maximumUnavailable: "25%"
prometheus:
enabled: true
port: 9090
mtls:
enabled: true
workloadCertTTL: 24h
allowedClockSkew: 15m
Para obtener una lista de las opciones disponibles, consulte Configuración de Dapr.
Limitar la extensión a determinados nodos
En algunas configuraciones, es posible que solo quiera ejecutar Dapr en determinados nodos. Puede limitar la extensión pasando un nodeSelector
en la configuración de la extensión. Si el elemento nodeSelector
deseado contiene .
, debe retirarlos del shell y la extensión. Por ejemplo, la siguiente configuración instala Dapr solo en nodos con 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"
Para administrar el sistema operativo y la arquitectura, use las versiones admitidas de global.daprControlPlaneOs
y la configuración 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”
Instalación de Dapr en varias zonas de disponibilidad mientras está en modo de alta disponibilidad
De forma predeterminada, el servicio de selección de ubicación usa una clase de almacenamiento de tipo standard_LRS
. Se recomienda crear una clase de almacenamiento con redundancia de zona al instalar Dapr en modo de alta disponibilidad en varias zonas de disponibilidad. Por ejemplo, para crear una zrs
clase de almacenamiento de tipo, agregue el storageaccounttype
parámetro:
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
Al instalar Dapr, use la clase de almacenamiento que usó en el archivo 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"
Configuración del espacio de nombres de la versión de Dapr
Puede configurar el espacio de nombres de las versiones.
La extensión de Dapr se instala en el espacio de nombres dapr-system
de forma predeterminada. Para invalidarlo, use --release-namespace
. Para volver a definir el espacio de nombres, incluya el clúster --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
Visualización de las opciones de configuración actuales
Use el comando az k8s-extension show
para mostrar los valores de configuración actuales de Dapr:
az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr
Actualizar valores de configuración
Importante
Algunas opciones de configuración no se pueden modificar después de la creación. Los ajustes de estas opciones requieren la eliminación y la nueva creación de la extensión, que se aplica a las siguientes configuraciones:
global.ha.*
dapr_placement.*
La alta disponibilidad está habilitada de manera predeterminada. Para deshabilitarla, es necesario eliminar la extensión y volver a crearla.
Para actualizar los valores de configuración de Dapr, vuelva a crear la extensión con el estado deseado. Por ejemplo, supongamos que ha creado e instalado previamente la extensión con la siguiente configuración:
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"
Para actualizar el dapr_operator.replicaCount
de dos a tres, use el siguiente comando:
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"
Establecimiento del proxy de salida para la extensión de Dapr para Azure Arc local
Para usar un proxy de salida con la extensión Dapr para AKS, es necesario:
- Establecer las variables de entorno de proxy mediante las anotaciones
dapr.io/env
:HTTP_PROXY
HTTPS_PROXY
NO_PROXY
- Instalar el certificado de proxy en sidecar.
Actualización de la versión de instalación de Dapr
Si está en una versión específica de Dapr y no tiene --auto-upgrade-minor-version
disponible, puede usar el siguiente comando para actualizar Dapr o cambiarlo a una versión anterior:
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
El comando anterior actualiza solo el plano de control de Dapr. Para actualizar los complementos de Dapr, reinicie las implementaciones de su aplicación:
kubectl rollout restart deploy/<DEPLOYMENT-NAME>
Uso de imágenes basadas en Linux de Azure
En la versión 1.8.0 de Dapr puede usar imágenes de Linux de Azure con la extensión Dapr. Para usarlas, establezca la marca global.tag
:
az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--set global.tag=1.10.0-mariner
- Obtenga más información sobre el uso de imágenes basadas en Mariner con Dapr.
- Obtenga más información sobre la implementación de Linux de Azure en AKS.
Deshabilitación de las actualizaciones automáticas de CRD
En la versión 1.9.2 de Dapr, los CRD se actualizan automáticamente cuando se actualiza la extensión. Para deshabilitar esta configuración, puede establecer hooks.applyCrds
en false
.
az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--configuration-settings "hooks.applyCrds=false"
Nota:
Las CRD solo se aplican en caso de actualizaciones y se omiten cuando se cambia a una versión anterior.
Cumplimiento de los requisitos de red
La extensión Dapr requiere direcciones URL de salida en https://:443
para funcionar en AKS y Arc para Kubernetes:
https://mcr.microsoft.com/daprio
Dirección URL para extraer artefactos de Dapr.- Las direcciones URL de salida necesarias para AKS o Arc para Kubernetes.
Pasos siguientes
Azure Kubernetes Service