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.

Gérer les certificats mTLS

L’extension Dapr prend en charge le chiffrement en transit de la communication entre les instances Dapr à l’aide du plan de contrôle du service Dapr Sentry, qui est une autorité de certification centrale. Avec le service Sentry, vous pouvez chiffrer la communication à l’aide de certificats x.509 auto-signés ou fournis par l’utilisateur. Apprenez-en davantage sur la configuration des certificats mTLS dans la documentation Dapr open source.

Vous pouvez apporter vos propres certificats ou laisser Dapr créer et conserver automatiquement les certificats racines et d’émetteur auto-signés.

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 un 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érer les certificats auto-signés générés par Dapr

Si vous n’avez fourni aucun certificat personnalisé, Dapr crée et conserve automatiquement des certificats auto-signés, valides pendant un an. L’extension Dapr installe le secret dapr-trust-bundle, qui contient des informations de certificat sous l’espace de noms dapr-system par défaut.

Vérifier l’expiration des certificats auto-signés actuels générés par Dapr

Vous pouvez vérifier quand le certificat racine Dapr de votre cluster Kubernetes expire à l’aide de l’interface CLI Dapr.

dapr mtls expiry

Sortie attendue :

Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC

Vous pouvez également trouver la date d’expiration de votre certificat actuel dans les données du secret dapr-trust-bundle Kubernetes.

kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates

Sortie attendue :

notBefore=Dec  6 17:59:20 2024 GMT
notAfter=Dec  6 18:14:20 2025 GMT

Générer un nouveau certificat auto-signé généré par Dapr

Gérer vos propres certificats x.509 fournis par l’utilisateur

Vous pouvez également apporter vos propres certificats personnalisés.

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