Configurer l’extension Dapr spécifiquement pour votre projet AKS (Azure Kubernetes Service) et Kubernetes avec Arc

Quand vous avez créé l’extension Dapr, vous pouvez configurer l’extension Dapr pour qu’elle fonctionne le mieux possible pour vous et votre projet à l’aide de différentes options de configuration, par exemple :

  • Limitation des nœuds qui utilisent l’extension Dapr
  • Définition de mises à jour CRD automatiques
  • Configuration de l’espace de noms de version Dapr

L’extension vous permet de définir des options de configuration Dapr à l’aide du paramètre --configuration-settings dans Azure CLI ou configurationSettings propriété dans un modèle Bicep.

Provisionner Dapr avec la haute disponibilité (HA) activée

Provisionnez Dapr avec la haute disponibilité (HA) activée en définissant le paramètre global.ha.enabled sur 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"

Remarque

Si les paramètres de configuration sont sensibles et doivent être protégés (par exemple, les informations relatives au certificat), transmettez le paramètre --configuration-protected-settings et la valeur sera protégée contre la lecture.

Si aucun paramètre de configuration n’est transmis, la configuration Dapr par défaut est :

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

Pour obtenir la liste des options disponibles, consultez Configuration Dapr.

Limitation de l’extension à certains nœuds

Dans certaines configurations, vous pouvez vouloir exécuter Dapr sur certains nœuds seulement. Vous pouvez limiter l’extension en transmettant un nodeSelector dans la configuration de l’extension. Si la valeur nodeSelector souhaitée contient le caractère ., vous devez le placer dans une séquence d’échappement dans l’interpréteur de commandes et l’extension. Par exemple, la configuration suivante installe Dapr uniquement sur les nœuds avec 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"

Pour gérer le système d’exploitation et l’architecture, utilisez les versions prises en charge de la configuration global.daprControlPlaneOs et 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”

Installer Dapr dans plusieurs zones de disponibilité en mode haute disponibilité

Par défaut, le service de placement utilise une classe de stockage de type standard_LRS. Il est recommandé de créer une classe de stockage redondante de zone lors de l'installation de Dapr en mode HA sur plusieurs zones de disponibilité. Par exemple, pour créer une classe de stockage de type zrs , ajoutez le paramètre 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

Lors de l’installation de Dapr, utilisez la classe de stockage que vous avez utilisée dans le fichier 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"

Configurer l’espace de noms de version Dapr

Vous pouvez configurer l’espace de noms de la mise en production.

L’extension Dapr est installée dans l’espace de noms dapr-system par défaut. Pour le remplacer, utilisez --release-namespace. Incluez le cluster --scope pour redéfinir l’espace de noms.

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

Découvrez comment configurer l’espace de noms de version Dapr si Dapr est déjà installé.

Afficher les paramètres de configuration actuels

Utilisez la commande az k8s-extension show pour afficher les paramètres de configuration Dapr actuels :

az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr

Mettre à jour les paramètres de configuration du système

Important

Certaines options de configuration ne peuvent pas être modifiées après la création. Les ajustements apportés à ces options nécessitent la suppression et la recréation de l’extension, applicables aux paramètres suivants :

  • global.ha.*
  • dapr_placement.*

La haute disponibilité est activée par défaut. Sa désactivation nécessite la suppression et la recréation de l’extension.

Pour mettre à jour vos paramètres de configuration Dapr, il vous suffit de recréer l’extension avec l’état souhaité. Par exemple, supposons que nous avons déjà créé et installé l’extension à l’aide de la configuration suivante :

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" 

Pour mettre à jour les dapr_operator.replicaCount de deux à trois, utilisez la commande suivante :

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"

Définir le proxy sortant pour l’extension Dapr pour Azure Arc local

Si vous souhaitez utiliser un proxy sortant avec l’extension Dapr pour AKS, vous pouvez le faire en procédant comme suit :

  1. Définissez les variables d’environnement proxy à l’aide d’dapr.io/envannotations :
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. Installez le certificat proxy dans le side-car.

Mise à jour de votre version d’installation de Dapr

Si vous utilisez une version Dapr spécifique et que vous n’avez pas --auto-upgrade-minor-version disponible, vous pouvez utiliser la commande suivante pour mettre à niveau ou rétrograder 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

La commande précédente met à jour uniquement le plan de contrôle Dapr. Pour mettre à jour les compléments de Dapr, redémarrez vos déploiements d’applications :

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

Utilisation d’images basées sur Azure Linux

À partir de la version 1.8.0 de Dapr, vous pouvez utiliser des images Azure Linux avec l’extension Dapr. Pour les utiliser, définissez l’indicateur global.tag :

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--set global.tag=1.10.0-mariner

Désactiver les mises à jour CRD automatiques

À partir de Dapr version 1.9.2, les CRD sont automatiquement mis à niveau lorsque l’extension est mise à niveau. Pour désactiver ce paramètre, vous pouvez définir hooks.applyCrds sur false.

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

Remarque

Les CRD sont appliqués uniquement en cas de mise à niveau et sont ignorés pendant les rétrogradations.

Répondre à la configuration réseau nécessaire

L’extension Dapr pour AKS et Arc pour Kubernetes nécessite les URL sortantes suivantes sur https://:443 fonctionner :

  1. https://mcr.microsoft.com/daprio URL pour extraire des artefacts Dapr.
  2. https://linuxgeneva-microsoft.azurecr.io/ URL pour extraire certaines dépendances Dapr.
  3. Les URL sortantes requises pour AKS ou Arc pour Kubernetes.

Étapes suivantes

Une fois que vous avez provisionné Dapr dans votre cluster AKS, essayez de déployer un exemple d’application.