Partager via


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

Après avoir rempli les conditions préalables à l’installation de 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 :

  • Rotation des certificats arrivant à expiration
  • Approvisionnement de Dapr avec la haute disponibilité (HA) activée
  • Limitation des nœuds qui utilisent l’extension Dapr
  • Paramètres des mises à jour automatiques de définition de ressource personnalisée (CRD)
  • 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.

Effectuer la rotation des certificats personnalisés expirés

Vous pouvez mettre à jour les certificats arrivant à expiration et redémarrer vos services système.

Important

Si vous ne configurez pas explicitement les certificats, Dapr génère par défaut des certificats auto-signés, qui sont en général valides pendant 1 an. Actuellement, l’utilisation de certificats auto-signés générés par Dapr n’est pas recommandée. La meilleure pratique consiste à générer des certificats personnalisés et à les mettre à jour manuellement.

Générer des certificats personnalisés

Créez votre propre certificat personnalisé, par exemple un certificat Azure Key Vault.

Mettre à jour votre certificat personnalisé manuellement

Suivez les instructions fournies dans la documentation open source Dapr pour mettre à jour vos certificats personnalisés manuellement en utilisant Helm et kubectl.

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 redondant dans une 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. Pour redéfinir l’espace de noms, incluez le cluster --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

Découvrez comment configurer l’espace de noms de version Dapr lors de la migration de Dapr open source vers l’extension Dapr.

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, disons 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 nécessite les URL sortantes suivantes sur https://:443 fonctionner sur pour AKS et Arc pour Kubernetes :

  1. https://mcr.microsoft.com/daprio URL pour extraire des artefacts Dapr.
  2. Les URL sortantes requises pour AKS ou Arc pour Kubernetes.

Étapes suivantes