Condividi tramite


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

È possibile installare, distribuire e configurare l’estensione Dapr nel cluster usando l’interfaccia della riga di comando di Azure o un modello Bicep.

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.

Informazioni su come visualizzare e usare come destinazione le versioni di Dapr stabili più recenti disponibili per il cluster del servizio Azure Kubernetes gestito.

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.

Altre informazioni sulla migrazione da Dapr open source all’estensione Dapr per il servizio Azure Kubernetes.

Come è possibile autenticare i componenti Dapr con l'ID Microsoft Entra usando identità gestite?

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