Estensione Dapr per il servizio Azure Kubernetes e Kubernetes abilitato per Arc
Distributed Application Runtime (Dapr) offre API che consentono di scrivere e implementare microservizi semplici, portabili, resilienti e protetti. Le API Dapr vengono eseguite come processo collaterale in combinazione con le applicazioni e astraggono le complessità comuni che possono verificarsi durante la compilazione di applicazioni distribuite, ad esempio:
- Individuazione dei servizi
- Integrazione di Message Broker
- Crittografia
- Osservabilità
- Gestione dei segreti
Dapr è adottabile in modo incrementale. È possibile usare uno dei blocchi predefiniti dell'API in base alle esigenze. Informazioni sul livello di supporto offerto da Microsoft per ogni API e componente Dapr.
Funzionalità e caratteristiche
L'uso dell'estensione Dapr per effettuare il provisioning di Dapr nel cluster Kubernetes abilitato per Arc o del servizio Azure Kubernetes elimina il sovraccarico di:
- Download degli strumenti dapr
- Installazione e gestione manuale del runtime Dapr nel cluster del servizio Azure Kubernetes
Inoltre, l'estensione offre supporto per tutte le funzionalità di configurazione dapr native tramite semplici argomenti della riga di comando.
Dapr offre il set di funzionalità seguente per facilitare lo sviluppo di microservizi nel servizio Azure Kubernetes:
- Provisioning semplice di Dapr nel servizio Azure Kubernetes tramite le estensioni del cluster
- Portabilità abilitata tramite LE API HTTP e gRPC che astraggono le scelte delle tecnologie sottostanti
- Chiamate da servizio a servizio affidabili, sicure e resilienti tramite API HTTP e gRPC
- Pubblicare e sottoscrivere la messaggistica semplificata con il supporto per il filtro CloudEvent e la semantica "at-least-once" per il recapito dei messaggi
- Osservabilità e monitoraggio collegabili tramite l'agente di raccolta API Open Telemetry
- Indipendentemente dal linguaggio, offrendo anche sdk (Software Development Kit) specifici del linguaggio
- Integrazione con Visual Studio Code tramite l’estensione Dapr
- Altre API per risolvere i problemi delle applicazioni distribuite
Attualmente supportato
L’estensione Dapr è l’unica opzione supportata da Microsoft per Dapr nel servizio Azure Kubernetes.
Gestione dei problemi
Microsoft classifica i problemi emersi rispetto all’estensione Dapr in due parti:
- Operazioni di estensione
- Runtime Dapr (inclusi API e componenti)
La tabella seguente suddivide i livelli di priorità del supporto per ognuna di queste categorie.
Descrizione | Rischi per la sicurezza/Regressioni | Problemi funzionali | |
---|---|---|---|
Operazioni di estensione | Problemi riscontrati durante le operazioni di estensione, ad esempio l’installazione/disinstallazione o l’aggiornamento dell’estensione Dapr. | Microsoft assegna priorità per una risoluzione immediata. | Microsoft analizza e affronta i problemi in base alle esigenze. |
Runtime Dapr | Problemi riscontrati quando si usa il runtime Dapr, le API e i componenti tramite l’estensione. | Microsoft collabora con la community open source per analizzare i problemi con priorità elevata. A seconda della priorità, della gravità e delle dimensioni del problema, Microsoft li risolve direttamente nell’estensione oppure funziona con il progetto open source Dapr per risolvere il problema con un hotfix o una versione open source futura di Dapr. Una volta rilasciate le correzioni in Dapr open source, queste vengono poi rese disponibili nell’estensione Dapr. | Microsoft analizza i nuovi problemi funzionali insieme al progetto open source Dapr e collabora con i membri del progetto per risolverli con un hotfix o una versione open source rapida futura di Dapr. I problemi funzionali open source noti non verranno esaminati da Microsoft in questo momento. |
Versioni di Dapr
Microsoft offre il migliore supporto per la versione più recente di Dapr e le due versioni precedenti (N-2). La versione più recente della patch è l’unica versione supportata di ogni versione secondaria. Attualmente, l’estensione Dapr per il servizio Azure Kubernetes o Kubernetes abilitato per Arc supporta le versioni Dapr seguenti:
- 1.14.x
- 1.13.x
- 1.12.x
È possibile eseguire i comandi dell’interfaccia della riga di comando di Azure per recuperare un elenco delle versioni disponibili in un cluster o una posizione.
Supporto di runtime
Il supporto dell'estensione Dapr varia a seconda della modalità di gestione del runtime.
Modalità autogestita
Il runtime autogestito richiede l'aggiornamento manuale per rimanere nella finestra di supporto. Per aggiornare Dapr tramite l'estensione, seguire le istruzioni per Aggiornare l'istanza di estensione.
Dopo che una versione del runtime Dapr raggiunge la fine del supporto Microsoft, le applicazioni continueranno a essere eseguite senza modifiche. Tuttavia, Microsoft non può più fornire patch di sicurezza o assistenza clienti correlata per tale versione di runtime. Se l’applicazione riscontra problemi oltre la data di fine del supporto per tale versione, è consigliabile eseguire l’aggiornamento a una versione supportata per ricevere le patch e le funzionalità di sicurezza più recenti.
Aggiornamento automatico
L'abilitazione dell'aggiornamento automatico richiede un'attenta considerazione. Anche se l’aggiornamento automatico mantiene aggiornata l’estensione Dapr alla versione secondaria più recente, è possibile che si verifichino modifiche di rilievo tra gli aggiornamenti. Microsoft non è responsabile di alcun tempo di inattività causato da modifiche di rilievo tra gli aggiornamenti automatici.
Componenti e API
È possibile usare tutti i componenti e le API Dapr tramite l’estensione Dapr, inclusi quelli in stato alfa e beta. Tuttavia, Microsoft fornisce supporto solo a un sottoinsieme di API e componenti, seguendo i criteri di gestione dei problemi definiti.
API Dapr stabili
L’estensione Dapr supporta versioni stabili delle API Dapr (blocchi predefiniti).
API di Dapr | Stato | Descrizione |
---|---|---|
Chiamata da servizio a servizio | Stable | Individuare servizi ed eseguire chiamate affidabili e dirette da servizio a servizio con autenticazione e crittografia mTLS automatica. (#limitations) |
Gestione dello stato | Stable | Fornisce funzionalità di gestione dello stato per le transazioni e le operazioni CRUD. |
Pubblicazione-sottoscrizione | Stable | Consente alle app di pubblicazione e sottoscrizione di comunicare tra di loro tramite un broker di messaggi intermediario. È anche possibile creare sottoscrizioni dichiarative a un argomento usando un file JSON del componente esterno. |
Bindings | Stable | Attivare le applicazioni in base agli eventi. |
Attori | Stable | Gli attori Distributed Apps Runtime sono unità di lavoro basate su messaggi, a thread singolo progettate per ridimensionare rapidamente. Ad esempio, in situazioni di carico di lavoro con picchi elevati. |
Osservabilità | Stable | Inviare informazioni di traccia a un back-end di Application Insights. |
Segreti | Stable | Accedere ai segreti dal codice dell'applicazione o fare riferimento a valori sicuri nei componenti Distributed Apps Runtime. |
Configurazione | Stable | Recuperare e sottoscrivere elementi di configurazione dell’applicazione per gli archivi di configurazione supportati. |
Componenti di livello 1 e livello 2
È supportato un sottoinsieme di componenti Dapr. All'interno di tale sottoinsieme, i componenti Dapr sono suddivisi in due categorie di supporto: il livello 1 o il livello 2.
- Componenti di livello 1: componenti stabili che ricevono un'analisi immediata in scenari critici (di sicurezza o regressione grave). In caso contrario, Microsoft collabora con open source per risolvere un hotfix o la versione regolare successiva.
- Componenti di livello 2: componenti a cui viene esaminata una priorità minore, perché non sono in uno stato stabile o si trovano con un provider di terze parti.
Componenti di livello 1
API | Componente | Type |
---|---|---|
Gestione dello stato | Azure Cosmos DB Archiviazione BLOB di Azure v1 Archiviazione tabelle di Azure Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Pubblicazione e sottoscrizione | Code del bus di servizio di Azure Argomenti del bus di servizio di Azure Hub eventi di Azure |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Binding | Code di Archiviazione di Azure Code del bus di servizio di Azure Archiviazione BLOB di Azure Hub eventi di Azure |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Gestione dei segreti | Azure Key Vault | secretstores.azure.keyvault |
Componenti di livello 2
API | Componente | Type |
---|---|---|
Gestione dello stato | PostgreSQL MySQL & MariaDB Redis |
state.postgresql state.mysql state.redis |
Pubblicazione e sottoscrizione | Apache Kafka Flussi Redis |
pubsub.kafka pubsub.redis |
Binding | 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 |
Impostazione | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Cloud/aree
Il cloud di Azure globale è supportato con il supporto del servizio Azure Kubernetes e Arc nelle aree seguenti:
Paese | Supporto del servizio Azure Kubernetes | Supporto di Arc per 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 |
✔️ | ✔️ |
Domande frequenti
Com'è possibile confrontare le mesh Dapr e di servizio?
Anche se le mesh dapr e dei servizi offrono alcune funzionalità sovrapposte, una mesh di servizi è incentrata sulle problematiche di rete, mentre Dapr si concentra sulla fornitura di blocchi predefiniti che semplificano la creazione di applicazioni come microservizi. Dapr è incentrato sugli sviluppatori, mentre le mesh di servizi sono incentrate sulle infrastrutture.
Alcune funzionalità comuni condivise da Dapr con mesh di servizi includono:
- Proteggere la comunicazione da servizio a servizio con la crittografia mTLS
- Raccolta di metriche da servizio a servizio
- Traccia distribuita da servizio a servizio
- Resilienza tramite tentativi
Dapr offre altri blocchi predefiniti a livello di applicazione per la gestione dello stato, la messaggistica pub/sub, gli attori e altro ancora. Tuttavia, Dapr non offre funzionalità per il comportamento del traffico, ad esempio il routing o la suddivisione del traffico. Se la soluzione trae vantaggio dalla suddivisione del traffico fornita da una mesh di servizi, è consigliabile usare Open Service Mesh.
Per altre informazioni sulle mesh di dapr e di servizio e su come possono essere usate insieme, vedere la documentazione di Dapr.
In che modo l'API dei segreti Dapr viene confrontata con il driver CSI dell'archivio segreti?
Sia l'API dei segreti Dapr che il driver CSI dell'archivio segreti gestiti consentono l'integrazione dei segreti contenuti in un archivio esterno, astraendo la tecnologia dell'archivio segreti dal codice dell'applicazione.
Il driver CSI dell'archivio segreti monta i segreti contenuti in Azure Key Vault come volume CSI per l'utilizzo da parte di un'applicazione.
Dapr espone i segreti tramite un’API RESTful che può essere:
- Chiamata dal codice dell’applicazione
- Configurata con archivi dei segreti vari
La tabella seguente elenca le funzionalità di ogni offerta:
API dei segreti dapr | Driver CSI dell'archivio segreti | |
---|---|---|
Archivi segreti supportati | Variabili di ambiente locali (per Sviluppo); File locale (per sviluppo); Segreti kubernetes; AWS Secrets Manager; Archivio segreti di Azure Key Vault; Azure Key Vault con identità gestite in Kubernetes; GCP Secret Manager; HashiCorp Vault | Archivio segreto di Azure Key Vault |
Accesso ai segreti nel codice dell'applicazione | Chiamare l'API dei segreti Dapr | Accedere al volume montato o sincronizzare il contenuto montato come segreto Kubernetes e impostare una variabile di ambiente |
Rotazione dei segreti | Le nuove chiamate API ottengono i segreti aggiornati | Esegue il polling dei segreti e aggiorna il montaggio a un intervallo configurabile |
Registrazione e metriche | Il sidecar Dapr genera i log, che possono essere configurati con agenti di raccolta, ad esempio Monitoraggio di Azure, genera metriche tramite Prometheus ed espone un endpoint HTTP per i controlli di integrità | Genera metriche del driver e del provider di Azure Key Vault tramite Prometheus |
Per altre informazioni sulla gestione dei segreti in Dapr, vedere panoramica della gestione dei segreti.
Per altre informazioni sul driver CSI dell'archivio segreti e sul provider di Azure Key Vault, vedere la panoramica del driver CSI dell'archivio dei segreti.
In che modo l'estensione del cluster Dapr gestito viene confrontata con l'offerta dapr open source?
L'estensione del cluster Dapr gestita è il metodo più semplice per effettuare il provisioning di Dapr in un cluster del servizio Azure Kubernetes. Con l'estensione, è possibile eseguire l'offload della gestione della versione del runtime Dapr optando per gli aggiornamenti automatici. Inoltre, l'estensione installa Dapr con impostazioni predefinite intelligenti, ad esempio il provisioning del piano di controllo Dapr in modalità a disponibilità elevata.
Quando si installa Dapr open source tramite helm o l’interfaccia della riga di comando di Dapr, gli sviluppatori e i gestori del cluster sono anche responsabili delle versioni di runtime e delle opzioni di configurazione.
Infine, l'estensione Dapr è un'estensione del servizio Azure Kubernetes, pertanto è possibile prevedere gli stessi criteri di supporto di altre funzionalità del servizio Azure Kubernetes.
Come è possibile autenticare i componenti Dapr con l'ID Microsoft Entra usando identità gestite?
- Informazioni su come i componenti Dapr eseguono l'autenticazione con Microsoft Entra ID.
- Informazioni sull'uso delle identità gestite con il servizio Azure Kubernetes.
Come è possibile passare all'uso dell'estensione Dapr se è già stato installato Dapr tramite un metodo, ad esempio Helm?
Le indicazioni consigliate sono la disinstallazione completa di Dapr dal cluster del servizio Azure Kubernetes e la reinstallazione tramite l'estensione del cluster. È anche possibile verificare la presenza dell'installazione dapr esistente ed eseguirne la migrazione al servizio Azure Kubernetes.
Se si installa Dapr tramite l'estensione del servizio Azure Kubernetes, è consigliabile continuare a usare l'estensione per la gestione futura di Dapr anziché l'interfaccia della riga di comando di Dapr. La combinazione dei due strumenti può causare conflitti e comportare comportamenti indesiderati.
Passaggi successivi
Azure Kubernetes Service