Compartir a través de


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

Administrar sus propios certificados x.509 proporcionados por el usuario

También puede traer sus propios certificados personalizados.

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-systemde 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

Obtenga información sobre cómo configurar el espacio de nombres de la versión de Dapr al migrar desde el código abierto de Dapr a la extensión de Dapr.

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:

  1. Establecer las variables de entorno de proxy mediante las anotaciones dapr.io/env:
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. 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

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:

  1. https://mcr.microsoft.com/daprio Dirección URL para extraer artefactos de Dapr.
  2. Las direcciones URL de salida necesarias para AKS o Arc para Kubernetes.

Pasos siguientes