Extension Dapr pour Azure Kubernetes Service (AKS) et Kubernetes avec Arc
Distributed Application Runtime (Dapr) propose des API qui vous aident à écrire et à implémenter des microservices simples, portables, résilients et sécurisés. L’exécution des API Dapr en tant que processus secondaires avec vos applications et font abstraction des complexités courantes que vous pouvez rencontrer lorsque vous créez des applications distribuées, dont :
- Détection du service
- Intégration du répartiteur de messages
- Chiffrement
- Observabilité
- Gestion des secrets
Dapr est adoptable en incréments. Vous pouvez utiliser n’importe quel bloc de construction d’API, le cas échéant. Découvrez les offres Microsoft au niveau de support pour chaque API et composant Dapr.
Capacités et fonctionnalités
L’utilisation de l’extension Dapr pour approvisionner Dapr sur votre cluster Kubernetes AKS ou Arc élimine la surcharge de :
- Téléchargement de l’outil Dapr
- Installation et gestion manuelles du runtime Dapr sur votre cluster AKS
En outre, l’extension assure la prise en charge de toutes les fonctionnalités de configuration Dapr natives à l’aide d’arguments de ligne de commande simples.
Dapr offre l’ensemble des capacités suivantes pour faciliter le développement de vos microservices sur AKS :
- Approvisionnement facile de Dapr sur AKS grâce à des extensions de cluster
- Portabilité assurée par les API HTTP et gRPC qui font abstraction des choix technologiques sous-jacents
- Appels de service à service fiables, sécurisés et résilients via les API HTTP et gRPC
- Messagerie publication-abonnement facilitée par la prise en charge du filtrage CloudEvent et de la sémantique « au moins une fois » pour la livraison des messages
- Observabilité et surveillance enfichables grâce au collecteur de l’API Open Telemetry
- Indépendamment du langage, tout en offrant également des kits de développement logiciel spécifiques au langage (SDK)
- Intégration à Visual Studio Code via l’extension Dapr
- Plus d’API pour la résolution des problèmes liés aux applications distribuées
Actuellement pris en charge
L’extension Dapr est la seule option prise en charge par Microsoft pour Dapr dans AKS.
Gestion des problèmes
Microsoft classe les problèmes soulevés par rapport à l’extension Dapr en deux parties :
- Opérations d’extension
- Runtime Dapr (y compris les API et les composants)
Le tableau suivant décompose les niveaux de priorité de prise en charge pour chacune de ces catégories.
Description | Risques/régressions de sécurité | Problèmes fonctionnels | |
---|---|---|---|
Opérations d’extension | Problèmes rencontrés pendant les opérations d’extension, tels que l’installation/la désinstallation ou la mise à niveau de l’extension Dapr. | Microsoft hiérarchise pour la résolution immédiate. | Microsoft examine et traite les adresses en fonction des besoins. |
Runtime Dapr | Problèmes rencontrés lors de l’utilisation du runtime Dapr, des API et des composants via l’extension. | Microsoft travaille avec la communauté open source pour examiner les problèmes de haute priorité. En fonction de la priorité, de la gravité et de la taille du problème, Microsoft les résout directement dans l’extension, ou fonctionne avec le projet open source Dapr pour résoudre dans un correctif logiciel ou une version ultérieure d’open source Dapr. Une fois les correctifs publiés dans Dapr open source, ils sont ensuite mis à disposition dans l’extension Dapr. | Microsoft examine de nouveaux problèmes fonctionnels en même temps que le projet open source Dapr et collabore avec eux pour résoudre un correctif logiciel ou une prochaine version open source Dapr. Les problèmes fonctionnels open source connus ne seront pas examinés par Microsoft pour l’instant. |
Versions de Dapr
Microsoft offre une prise en charge optimale pour la dernière version de Dapr et deux versions précédentes (N-2). La dernière version de correctif est la seule version prise en charge de chaque version mineure. Actuellement, l’extension Dapr pour AKS ou Kubernetes avec Arc prend en charge les versions Dapr suivantes :
- 1.14.x
- 1.13.x
- 1.12.x
Vous pouvez exécuter des commandes Azure CLI pour récupérer une liste des versions disponibles dans un cluster ou un emplacement.
Prise en charge du runtime
La prise en charge de l’extension Dapr varie en fonction de la façon dont vous gérez le runtime.
Autogérée
Le runtime autogéré doit être mis à niveau manuellement pour rester dans la fenêtre de support. Pour procéder à la mise à niveau de Dapr par l’extension, suivez les instructions de mise à jour de l’instance d’extension.
Une fois qu’une version du runtime Dapr a atteint la fin de la prise en charge de Microsoft, vos applications continuent à s’exécuter sans modification. Toutefois, Microsoft ne peut plus fournir de correctifs de sécurité ni de support client associé pour cette version du runtime. Si votre application rencontre des problèmes au-delà de la date de fin de prise en charge de cette version, nous recommandons la mise à niveau à une version prise en charge pour recevoir les derniers correctifs de sécurité et les dernières fonctionnalités.
Mise à niveau automatique
L’activation de la mise à niveau automatique nécessite une attention particulière. Bien que la mise à niveau automatique conserve votre extension Dapr mise à jour vers la dernière version mineure, vous pouvez rencontrer des changements cassants entre les mises à jour. Microsoft n’est responsable d’aucun temps d’arrêt dû à des changements cassants entre les mises à jour automatiques.
Composants et API
Vous pouvez utiliser tous les composants et API Dapr via l’extension Dapr, y compris celles de l’état alpha et bêta. Toutefois, Microsoft fournit uniquement la prise en charge d’un sous-ensemble d’API et de composants, en suivant les stratégies de gestion des problèmes définies.
API Dapr stables
L’extension Dapr prend en charge les versions stables des API Dapr (blocs de construction).
API Dapr | Statut | Description |
---|---|---|
Appel de service à service | Stable | Découvrez les services et effectuez des appels fiables et directs de service à service avec authentification et chiffrement automatiques mTLS.(#limitations) |
Gestion de l’état | Stable | Fournit des capacités de gestion d'état pour les transactions et les opérations CRUD. |
Publication/abonnement | Stable | Permet aux applications de l'éditeur et de l'abonné de communiquer entre elles via un courtier de messages intermédiaire. Vous pouvez également créer des abonnements déclaratifs à une rubrique à l’aide d’un fichier JSON de composant externe. |
Liaisons | Stable | Déclenchez vos applications en fonction des événements. |
Acteurs | Stable | Les intervenants Dapr sont pilotés par des messages, monothreads, unités de travail conçus pour effectuer une mise à l’échelle rapide. Par exemple, dans des situations de charge de travail volumineuses en rafale. |
Observabilité | Stable | Envoyez des informations de suivi à un backend Application Insights. |
Secrets | Stable | Accédez aux secrets de votre code d’application ou référencez des valeurs sécurisées dans vos composants Dapr. |
Configuration | Stable | Récupérez et abonnez-vous aux éléments de configuration d’application pour la configuration pris en charge. de données. |
Composants Dapr
Composants de niveau 1 et de niveau 2
Un sous-ensemble de composants Dapr est pris en charge. Dans ce sous-ensemble, les composants Dapr sont divisés en deux catégories de prise en charge : niveau 1 ou niveau 2.
- Composants de niveau 1 : composants stables qui reçoivent une investigation immédiate dans les scénarios critiques (de sécurité ou de régression grave). Dans le cas contraire, Microsoft collabore avec open source pour s’adresser à un correctif logiciel ou à la prochaine version régulière.
- Composants de niveau 2 : composants examinés sur une priorité moindre, car ils ne sont pas dans un état stable ou sont avec un fournisseur tiers.
Composants de niveau 1
API | Composant | Type |
---|---|---|
Gestion de l’état | Azure Cosmos DB Stockage Blob Azure v1 Azure Table Storage Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publication et abonnement | files d’attente Azure Service Bus Rubriques Azure Service Bus Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Liaison | files d’attente de stockage Azure files d’attente Azure Service Bus Stockage Blob Azure Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Gestion des secrets | Azure Key Vault | secretstores.azure.keyvault |
Composants de niveau 2
API | Composant | Type |
---|---|---|
Gestion de l’état | PostgreSQL MySQL et MariaDB Redis |
state.postgresql state.mysql state.redis |
Publication et abonnement | Apache Kafka Flux Redis |
pubsub.kafka pubsub.redis |
Liaison | Azure Event Grid Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Configuration | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Clouds/régions
Le nuage global Azure est pris en charge par Arc et AKS sur les régions suivantes :
Région | Prise en charge d’AKS | Prise en charge d’Arc pour Kubernetes |
---|---|---|
australiaeast |
✔️ | ✔️ |
australiasoutheast |
✔️ | ❌ |
brazilsouth |
✔️ | ❌ |
canadacentral |
✔️ | ✔️ |
canadaeast |
✔️ | ✔️ |
centralindia |
✔️ | ✔️ |
centralus |
✔️ | ✔️ |
eastasia |
✔️ | ✔️ |
eastus |
✔️ | ✔️ |
eastus2 |
✔️ | ✔️ |
eastus2euap |
❌ | ✔️ |
francecentral |
✔️ | ✔️ |
francesouth |
✔️ | ❌ |
germanywestcentral |
✔️ | ✔️ |
japaneast |
✔️ | ✔️ |
japanwest |
✔️ | ❌ |
koreacentral |
✔️ | ✔️ |
koreasouth |
✔️ | ❌ |
northcentralus |
✔️ | ✔️ |
northeurope |
✔️ | ✔️ |
norwayeast |
✔️ | ❌ |
southafricanorth |
✔️ | ❌ |
southcentralus |
✔️ | ✔️ |
southeastasia |
✔️ | ✔️ |
southindia |
✔️ | ❌ |
swedencentral |
✔️ | ✔️ |
switzerlandnorth |
✔️ | ✔️ |
uaenorth |
✔️ | ❌ |
uksouth |
✔️ | ✔️ |
ukwest |
✔️ | ❌ |
westcentralus |
✔️ | ✔️ |
westeurope |
✔️ | ✔️ |
westus |
✔️ | ✔️ |
westus2 |
✔️ | ✔️ |
westus3 |
✔️ | ✔️ |
Forum aux questions
Quelles sont les différences entre Dapr et les maillages de services ?
Bien que Dapr et les maillages de services offrent certaines capacités qui se chevauchent, un maillage de services est axé sur les préoccupations de mise en réseau, tandis que Dapr vise à fournir des modules qui permettent aux développeurs de créer plus facilement des applications sous forme de microservices. Dapr est centré sur le développeur, tandis que les maillages de services sont centrés sur l’infrastructure.
Voici quelques capacités communes à Dapr et aux maillages de services :
- Communication sécurisée de service à service avec chiffrement mTLS
- Collecte de métriques de service à service
- Suivi distribué de service à service
- Résilience grâce aux nouvelles tentatives
Dapr fournit d’autres modules au niveau de l’application pour la gestion de l’état, la messagerie publication-abonnement, les intervenants, etc. Toutefois, Dapr ne fournit pas de capacités pour le comportement du trafic, comme le routage ou la répartition du trafic. Si votre solution peut bénéficier de la répartition du trafic offerte par un maillage de services, envisagez d’utiliser Open Service Mesh.
Pour plus d’informations sur Dapr et les maillages de services, et sur la façon dont ils peuvent être utilisés ensemble, consultez la documentation de Dapr.
Quelles sont les différences entre l’API Dapr secrets et le pilote Secrets Store CSI ?
L’API Dapr secrets et le pilote Secrets Store CSI managé permettent tous deux d’intégrer des secrets détenus dans un magasin externe, en faisant abstraction de la technologie de magasin de secrets du code d’application.
Le pilote Secrets Store CSI monte les secrets détenus dans Azure Key Vault sous la forme d’un volume CSI destiné à être consommé par une application.
Dapr expose les secrets via une API RESTful qui peut être :
- Appelé par code d’application
- Configuré avec des magasins de secrets assortis
Le tableau suivant présente les capacités de chaque offre :
API Dapr secrets | Pilote CSI du magasin de secrets | |
---|---|---|
Magasins de secrets pris en charge | Variables d’environnement locales (pour le développement) ; fichier local (pour le développement) ; secrets Kubernetes ; gestionnaire de secrets AWS ; magasin de secrets Azure Key Vault ; Azure Key Vault avec identités managées sur Kubernetes ; gestionnaire de secrets GCP ; coffre HashiCorp | Magasin de secrets Azure Key Vault |
Accès aux secrets dans le code d’application | Appeler l’API Dapr secrets | Accéder au volume monté ou au contenu monté synchronisé en tant que secret Kubernetes et définir une variable d’environnement |
Rotation des secrets | De nouveaux appels d’API permettent d’obtenir les secrets mis à jour | Interroge les secrets et met à jour le montage à un intervalle configurable |
Journalisation et métriques | Le side-car Dapr génère des journaux, qui peuvent être configurés avec des collecteurs tels qu’Azure Monitor, émet des métriques via Prometheus et expose un point de terminaison HTTP pour les contrôles d’intégrité | Émet des métriques du pilote et du fournisseur Azure Key Vault via Prometheus |
Pour plus d’informations sur la gestion des secrets dans Dapr, consultez la vue d’ensemble de la gestion des secrets.
Pour plus d’informations sur le pilote Secrets Store CSI et le fournisseur Azure Key Vault, consultez la présentation du pilote Secrets Store CSI.
Quelles sont les différences entre l’extension de cluster Dapr managée et l’offre Dapr open source ?
L’extension de cluster Dapr managée est la méthode la plus simple pour approvisionner Dapr sur un cluster AKS. Grâce à cette extension, vous pouvez vous décharger de la gestion de la version du runtime Dapr en choisissant des mises à jour automatiques. De plus, l’extension installe Dapr avec des valeurs par défaut intelligentes (par exemple, l’approvisionnement du plan de contrôle de Dapr en mode haute disponibilité).
Lors de l’installation de Dapr open source via helm ou l’interface CLI Dapr, les développeurs et les responsables de la maintenance de cluster sont également responsables des versions du runtime et des options de configuration.
Enfin, l’extension Dapr est une extension d’AKS, vous pouvez donc vous attendre à la même stratégie de support que les autres fonctionnalités d’AKS.
En savoir plus sur la migration de Dapr open source vers l’extension Dapr pour AKS.
Comment puis-je authentifier des composants Dapr auprès de Microsoft Entra ID à l’aide d’identités managées ?
- Découvrez comment les composants Dapr s’authentifient auprès de Microsoft Entra ID.
- Apprenez-en davantage sur l’utilisation d’identités managées avec AKS.
Comment passer à l’utilisation de l’extension Dapr si j’ai déjà installé Dapr à l’aide d’une méthode, par exemple Helm ?
Il est recommandé de désinstaller complètement Dapr du cluster AKS et de le réinstaller via l’extension du cluster. Vous pouvez également vérifier l’installation de Dapr existante et la migrer vers AKS.
Si vous installez Dapr par le biais de l’extension AKS, nous vous recommandons de continuer à utiliser l’extension pour la gestion future de Dapr au lieu de l’interface CLI Dapr. La combinaison des deux outils peut entraîner des conflits et un comportement indésirable.
Étapes suivantes
Azure Kubernetes Service