Configuración de la extensión Dapr para el proyecto de Kubernetes habilitado para Arc y Azure Kubernetes Service (AKS)

Una vez que haya creado la extensión Dapr, puede configurar la extensión Dapr a fin de que funcione mejor para usted y el proyecto con varias opciones de configuración, como las siguientes:

  • Limitación de los nodos que usan la extensión Dapr.
  • Establecimiento de las actualizaciones automáticas de 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.

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. Incluya --scope del clúster para redefinir el espacio de nombres.

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 si ya tiene Instalado 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, suponga que hemos 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 para AKS y Arc para Kubernetes requiere direcciones URL de salida en https://:443 para funcionar:

  1. https://mcr.microsoft.com/daprio Dirección URL para extraer artefactos de Dapr.
  2. https://linuxgeneva-microsoft.azurecr.io/ Dirección URL para extraer algunas dependencias de Dapr.
  3. Las direcciones URL de salida necesarias para AKS o Arc para Kubernetes.

Pasos siguientes

Una vez que haya aprovisionado correctamente Dapr en el clúster de AKS, intente implementar una aplicación de ejemplo.