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
- Par le biais de l’interface CLI Dapr (recommandé)
Consultez le guide Root and issuer certificate upgrade using CLI. - Par le biais de commandes
kubectl
Consultez le guide Updating root or issuer certs using Kubectl.
Gérer vos propres certificats x.509 fournis par l’utilisateur
Vous pouvez également apporter vos propres certificats personnalisés.
- 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 utilisantkubectl
.
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
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 :
- Définissez les variables d’environnement proxy à l’aide d’
dapr.io/env
annotations :HTTP_PROXY
HTTPS_PROXY
NO_PROXY
- 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
- En savoir plus sur l’utilisation d’images Mariner avec Dapr.
- En savoir plus sur le déploiement d'Azure Linux sur AKS.
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 :
https://mcr.microsoft.com/daprio
URL pour extraire des artefacts Dapr.- Les URL sortantes requises pour AKS ou Arc pour Kubernetes.
Étapes suivantes
Azure Kubernetes Service