Teilen über


Dapr

Distributed Application Runtime (Dapr) bietet APIs, mit denen Sie einfache, portable, resiliente und gesicherte Microservices schreiben und implementieren können. Dapr-APIs (Distributed Apps Runtime) werden als Sidecarprozess zusammen mit Ihren Anwendungen ausgeführt und abstrahieren allgemeine komplexe Prozesse beim Erstellen verteilter Anwendungen, z. B.:

  • Dienstermittlung
  • Nachrichtenbrokerintegration
  • Verschlüsselung
  • Einblick
  • Verwaltung von Geheimnissen

Dapr kann inkrementell übernommen werden. Sie können alle API-Bausteine nach Bedarf verwenden. Erfahren Sie mehr über die Supportebenen, die Microsoft für die einzelnen Dapr-APIs und -Komponenten bietet.

Funktionen und Features

Wenn Sie die Dapr-Erweiterung verwenden, um Dapr in Ihrem AKS-Cluster oder Kubernetes-Cluster mit Arc-Unterstützung bereitzustellen, entfällt der Mehraufwand für:

  • Herunterladen von Dapr-Tools
  • Manuelles Installieren und Verwalten der Dapr-Runtime in Ihrem AKS-Cluster

Sie können die Dapr-Erweiterung auf Ihrem Cluster entweder mithilfe der Azure CLI oder einer Bicep-Vorlage installieren, bereitstellen und konfigurieren.

Darüber hinaus bietet die Erweiterung Unterstützung für alle nativen Dapr-Konfigurationsfunktionen über einfache Befehlszeilenargumente.

Dapr bietet die folgenden Funktionen, die Sie bei der Entwicklung von Microservices in AKS unterstützen:

  • Einfache Bereitstellung von Dapr in AKS über Clustererweiterungen
  • Portabilität über HTTP- und gRPC-APIs, die die zugrunde liegenden Technologien abstrahieren
  • Zuverlässige, sichere und resiliente Dienst-zu-Dienst-Aufrufe über HTTP- und gRPC-APIs
  • Pub/Sub-Messaging (Veröffentlichen und Abonnieren) mit Unterstützung für CloudEvent-Filterung und „At-Least-Once“-Semantik für die Nachrichtenübermittlung
  • Anwendbare Einblicke und Überwachung über den Open Telemetry-API-Collector
  • Unabhängigkeit von der Programmiersprache und Verfügbarkeit sprachspezifischer Software Development Kits (SDKs)
  • Integration in Visual Studio Code über die Dapr-Erweiterung
  • Weitere APIs zum Lösen verteilter Anwendungsherausforderungen

Derzeit unterstützt

Die Dapr-Erweiterung ist die einzige von Microsoft unterstützte Option für Dapr in Azure Kubernetes Service (AKS).

Problembehandlung

Microsoft unterteilt Probleme, die für die Dapr-Erweiterung ausgelöst werden, in zwei Kategorien:

  • Erweiterungsvorgänge
  • Dapr-Runtime (einschließlich APIs und Komponenten)

In der folgenden Tabelle sind die Prioritätsebenen für den Support für jede dieser Kategorien aufgeschlüsselt.

Beschreibung Sicherheitsrisiken/Regressionen Funktionsprobleme
Erweiterungsvorgänge Probleme, die bei Erweiterungsvorgängen auftreten, z. B. beim Installieren/Deinstallieren oder Aktualisieren der Dapr-Erweiterung Microsoft priorisiert diese Probleme für die sofortige Lösung. Microsoft untersucht und behebt diese Probleme nach Bedarf.
Dapr-Runtime Probleme, die bei der Verwendung der Dapr-Runtime, -APIs und -Komponenten über die Erweiterung auftreten Microsoft arbeitet mit der Open Source-Community zusammen, um Probleme mit hoher Priorität zu untersuchen. Microsoft behebt Probleme je nach Priorität, Schweregrad und Ausmaß entweder direkt in der Erweiterung oder in Zusammenarbeit mit dem Dapr-Open Source-Projekt in einem Hotfix oder einem zukünftigen Open Source-Release von Dapr. Nachdem Fixes in der Open Source-Version von Dapr veröffentlicht wurden, werden sie in der Dapr-Erweiterung verfügbar gemacht. Microsoft und das Dapr-Open Source-Projekt untersuchen neue Funktionsprobleme und arbeiten zusammen, um sie in einem Hotfix oder einem zukünftigen Open Source-Release von Dapr zu beheben. Bekannte Open Source-Funktionsprobleme werden derzeit nicht von Microsoft untersucht.

Dapr-Versionen

Microsoft bietet bestmöglichen Support für die aktuelle Version von Dapr und zwei Vorgängerversionen (N-2). Die aktuelle Patchversion ist die einzige unterstützte Version jedes Nebenversionsrelease. Derzeit unterstützt die Dapr-Erweiterung für AKS oder Kubernetes mit Arc-Unterstützung die folgenden Dapr-Versionen:

  • 1.13.x
  • 1.12.x
  • 1.11.x

Sie können Azure CLI-Befehle ausführen, um eine Liste der verfügbaren Versionen in einem Cluster oder einem Speicherort erneut auszuführen.

Führen Sie den folgenden Befehl aus, um eine Liste der stabilen Dapr-Versionen anzuzeigen, die für Ihren verwalteten AKS-Cluster verfügbar sind:

az k8s-extension extension-types list-versions-by-cluster --resource-group myResourceGroup --cluster-name myCluster --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable

Führen Sie die folgenden Schritte aus, um die neueste stabile Dapr-Version anzuzeigen, die für Ihren verwalteten AKS-Cluster verfügbar ist:

az k8s-extension extension-types list-versions-by-cluster --resource-group myResourceGroup --cluster-name myCluster --cluster-type managedClusters --extension-type microsoft.dapr  --release-train stable --show-latest

So zeigen Sie eine Liste der verfügbaren stabilen Dapr-Versionen nach Speicherort an:

  1. Stellen Sie sicher, dass Sie das Feature ExtenstionTypes für Ihr Azure-Abonnement registriert haben.
  2. Führen Sie den folgenden Befehl aus.
az k8s-extension extension-types list-versions-by-location --location westus --extension-type microsoft.dapr

Laufzeitunterstützung

Die Unterstützung der Dapr-Erweiterung hängt davon ab, wie Sie die Runtime verwalten.

Selbst verwaltet

Für die selbstverwaltete Runtime muss manuell ein Upgrade durchgeführt werden, damit sie im Supportfenster bleibt. Wenn Sie Dapr über die Erweiterung upgraden möchten, befolgen Sie die Anweisungen zum Aktualisieren der Erweiterungsinstanz.

Nachdem eine Dapr-Runtimeversion das Ende des Microsoft-Supports erreicht hat, werden Ihre Anwendungen weiterhin unverändert ausgeführt. Microsoft kann jedoch keine Sicherheitspatches oder Kundensupport für diese Runtimeversion mehr bereitstellen. Wenn nach dem Datum des Supportendes für die Version Probleme in Ihrer Anwendung auftreten, sollten Sie auf eine unterstützte Version aktualisieren, um die aktuellen Sicherheitspatches und -features zu erhalten.

Automatisches Upgrade

Das Aktivieren von automatischen Upgrades muss sorgfältig überdacht werden. Durch automatische Upgrades wird Ihre Dapr-Erweiterung immer auf die aktuelle Nebenversion aktualisiert, zwischen Updates sind jedoch Breaking Changes möglich. Microsoft ist nicht für Downtimes verantwortlich, die durch Breaking Changes zwischen automatischen Updates verursacht werden.

Komponenten und APIs

Sie können alle Dapr-Komponenten und -APIs über die Dapr-Erweiterung verwenden, auch diejenigen im Alpha- und Betastatus. Microsoft bietet jedoch gemäß den Richtlinien für die Problembehandlung nur Support für eine Teilmenge von APIs und Komponenten.

Stabile Dapr-APIs

Die Dapr-Erweiterung unterstützt stabile Versionen von Dapr-APIs (Bausteine).

Dapr-API Status Beschreibung
Dienst-zu-Dienst-Aufruf Stable Ermittelt Dienste und führt zuverlässige, direkte Dienst-zu-Dienst-Aufrufe mit automatischer mTLS-Authentifizierung und Verschlüsselung durch.(#limitations)
Zustandsverwaltung Stable Bietet Zustandsverwaltungsfunktionen für Transaktionen und CRUD-Vorgänge.
Pub/Sub Stable Ermöglicht die Kommunikation zwischen Herausgeber- und Abonnenten-Apps über einen zwischengeschalteten Nachrichtenbroker. Sie können auch deklarative Abonnements für ein Thema erstellen, indem Sie eine JSON-Datei für externe Komponenten verwenden.
Bindungen Stable Lösen Sie Ihre Anwendungen basierend auf Ereignissen aus.
Akteure Stable Dapr-Akteure sind meldungsgesteuerte, Einzelthread-Arbeitseinheiten, die auf schnelle Skalierung ausgelegt sind. Zum Beispiel in Workloadsituationen mit häufigen Bursts.
Einblick Stable Senden Sie Ablaufverfolgungsinformationen an ein Application Insights-Back-End.
Geheimnisse Stable Sie können auf Geheimnisse aus Ihrem Anwendungscode heraus zugreifen oder in Ihren Dapr-Komponenten auf sichere Werte verweisen.
Configuration Stable Rufen Sie Anwendungskonfigurationselemente für eine unterstützte Konfiguration ab, und abonnieren Sie sie. sollen.

Komponenten der Ebene 1 und Ebene 2 im Vergleich

Ein Teil der Dapr-Komponenten wird unterstützt. Innerhalb dieser Teilmenge sind Dapr-Komponenten in zwei Supportkategorien unterteilt: Ebene 1 oder Ebene 2.

  • Komponenten der Ebene 1: Stabile Komponenten, die in kritischen Szenarien (Sicherheitsproblem oder schwerwiegende Regression) sofort untersucht werden. Andernfalls arbeitet Microsoft mit dem Open Source-Projekt zusammen, um Probleme in einem Hotfix oder im nächsten regulären Release zu beheben.
  • Komponenten der Ebene 2: Komponenten, die mit niedrigerer Priorität untersucht werden, da sie nicht stabil sind oder von einem Drittanbieter bereitgestellt werden.
Komponenten der Ebene 1
API Komponente type
Zustandsverwaltung Azure Blob Storage v1
Azure Table Storage
Microsoft SQL Server
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
Veröffentlichen und Abonnieren Azure Service Bus-Warteschlangen
Azure Service Bus-Themen
Azure Event Hubs
pubsub.azure.servicebus.queues
pubsub.azure.servicebus.topics
pubsub.azure.eventhubs
Binding Azure Storage-Warteschlangen
Azure Service Bus-Warteschlangen
Azure Blob Storage
Azure Event Hubs
bindings.azure.storagequeues
bindings.azure.servicebusqueues
bindings.azure.blobstorage
bindings.azure.eventhubs
Geheimnisverwaltung Azure Key Vault secrets.azure.keyvault
Komponenten der Ebene 2
API Komponente type
Zustandsverwaltung Azure Cosmos DB
PostgreSQL
MySQL und MariaDB
Redis
state.azure.cosmosdb
state.postgresql
state.mysql
state.redis
Veröffentlichen und Abonnieren Apache Kafka
Streams in 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
Konfiguration PostgreSQL
Redis
configuration.postgresql
configuration.redis

Clouds bzw. Regionen

Die globale Azure-Cloud wird mit AKS- und Arc-Unterstützung in den folgenden Regionen unterstützt:

Region AKS-Unterstützung Arc für Kubernetes-Unterstützung
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 ✔️ ✔️

Häufig gestellte Fragen

In welchem Verhältnis stehen Dapr- und Dienstnetze zueinander?

A: Während ein Dienstnetz als Netzwerkdienstnetz definiert ist, ist Dapr kein Dienstnetz. Dapr- und Dienstnetze bieten zwar einige identische Funktionen, aber ein Dienstnetz dient dem Netzwerkbetrieb, während Dapr Bausteine bereitstellt, die es Entwickler*innen vereinfachen, Anwendungen als Microservices zu erstellen. Dapr ist entwicklungsorientiert, während Dienstnetze auf die Infrastruktur ausgerichtet sind.

Die folgenden Funktionen bieten sowohl Dapr- als auch Dienstnetze:

  • Schutz der Dienst-zu-Dienst-Kommunikation mit mTLS-Verschlüsselung
  • Sammlung von Dienst-zu-Dienst-Metriken
  • Verteilte Ablaufverfolgung zwischen Diensten
  • Resilienz durch Wiederholungen

Darüber hinaus bietet Dapr weitere Bausteine auf Anwendungsebene für die Zustandsverwaltung, Pub/Sub-Messaging, Akteure und mehr. Dapr bietet jedoch keine Funktionen zum Steuern des Datenverkehrsverhaltens wie Routing oder Datenverkehrsaufteilung. Wenn Ihre Lösung von der Datenverkehrsaufteilung profitieren würde, die ein Dienstnetz bietet, erwägen Sie die Verwendung von Open Service Mesh.

Weitere Informationen zu Dapr- und Dienstnetzen und zu Möglichkeiten ihrer gemeinsamen Verwendung finden Sie in der Dapr-Dokumentation.

In welchem Verhältnis steht die Dapr-Geheimnis-API zum Secrets Store CSI-Treiber?

Sowohl die Dapr-Geheimnis-API als auch der verwaltete Secrets Store CSI-Treiber ermöglichen die Integration von Geheimnissen, die in einem externen Speicher gespeichert sind, und damit die Trennung der Geheimnisspeichertechnologie vom Anwendungscode. Der Secrets Store CSI-Treiber bindet Geheimnisse ein, die in Azure Key Vault als CSI-Volume für die Verwendung durch eine Anwendung gespeichert sind. Dapr macht Geheimnisse über eine RESTful-API verfügbar, die:

  • Vom Anwendungscode aufgerufen werden kann
  • Mit verschiedenen Geheimnisspeichern konfiguriert werden kann

In der folgenden Tabelle sind die Funktionen der Angebote aufgeführt:

Dapr-Geheimnis-API Secrets Store CSI-Treiber
Unterstützte Geheimnisspeicher Lokale Umgebungsvariablen (für Entwicklung); lokale Datei (für Entwicklung); Kubernetes-Geheimnisse; AWS Secrets Manager; Azure Key Vault-Geheimnisspeicher; Azure Key Vault mit verwalteten Identitäten in Kubernetes; GCP Secret Manager; HashiCorp Vault Azure Key Vault-Geheimnisspeicher
Zugreifen auf Geheimnisse im Anwendungscode Aufrufen der Dapr-Geheimnis-API Zugreifen auf das eingebundene Volume oder Synchronisieren von bereitgestelltem Inhalt als Kubernetes-Geheimnis und Festlegen einer Umgebungsvariablen
Rotation von Geheimnissen Neue API-Aufrufe zum Abrufen der aktualisierten Geheimnisse Abrufe von Geheimnissen und Aktualisierung der Bereitstellung in einem konfigurierbaren Intervall
Protokollierung und Metriken Der Dapr-Sidecarprozess generiert Protokolle, die mit Collectors wie Azure Monitor konfiguriert werden können. Er gibt Metriken über Prometheus aus und macht einen HTTP-Endpunkt für Integritätsprüfungen verfügbar. Ausgeben von Treiber- und Azure Key Vault-Anbietermetriken über Prometheus

Weitere Informationen zur Geheimnisverwaltung in Dapr finden Sie unter Secrets management overview (Übersicht über die Geheimnisverwaltung).

Weitere Informationen zum Secrets Store CSI-Treiber und zum Azure Key Vault-Anbieter finden Sie unter der Übersicht über den Secrets Store CSI-Treiber.

In welchem Verhältnis steht die verwaltete Dapr-Clustererweiterung zum Open-Source-Angebot für Dapr?

Die verwaltete Dapr-Clustererweiterung stellt die einfachste Methode dar, um Dapr in einem AKS-Cluster bereitzustellen. Mit der Erweiterung können Sie die Verwaltung der Dapr-Runtimeversion auslagern, indem Sie automatische Upgrades abonnieren. Darüber hinaus installiert die Erweiterung Dapr mit intelligenten Standardwerten (z. B. Bereitstellung der Dapr-Steuerungsebene im Hochverfügbarkeitsmodus).

Bei der Installation der Open Source-Version von Dapr über Helm oder die Dapr-CLI sind Entwickler und Clusterverwalter auch für Runtimeversionen und Konfigurationsoptionen verantwortlich.

Schließlich ist die Dapr-Erweiterung eine Erweiterung von AKS, weshalb die gleichen Supportrichtlinien wie bei anderen AKS-Features gelten.

Erfahren Sie mehr über die Migration von der Open Source-Version von Dapr zur Dapr-Erweiterung für AKS.

Wie kann ich Dapr-Komponenten mit Microsoft Entra ID mithilfe verwalteter Identitäten authentifizieren?

Wie kann ich zur Verwendung der Dapr-Erweiterung wechseln, wenn ich Dapr bereits über eine Methode wie Helm installiert habe?

Es wird empfohlen, Dapr vollständig aus dem AKS-Cluster zu deinstallieren und über die Clustererweiterung neu zu installieren.

Wenn Sie Dapr über die AKS-Erweiterung installieren, wird empfohlen, die Erweiterung weiterhin für die zukünftige Verwaltung von Dapr anstelle der Dapr-CLI zu verwenden. Das Kombinieren der beiden Tools kann Konflikte verursachen und zu unerwünschtem Verhalten führen.

Nächste Schritte

Nachdem Sie etwas über Dapr und einige der damit verbundenen Herausforderungen erfahren haben, versuchen Sie, eine Anwendung mit der Dapr-Clustererweiterung bereitzustellen.