Dapr-Erweiterung für Azure Kubernetes Service (AKS) und Kubernetes mit Azure Arc-Unterstützung
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
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.14.x
- 1.13.x
- 1.12.x
Sie können Azure CLI-Befehle ausführen, um eine Liste der verfügbaren Versionen in einem Cluster oder einem Speicherort abzurufen.
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 Cosmos DB Azure Blob Storage v1 Azure Table Storage Microsoft SQL Server |
state.azure.cosmosdb 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 | secretstores.azure.keyvault |
Komponenten der Ebene 2
API | Komponente | type |
---|---|---|
Zustandsverwaltung | PostgreSQL MySQL und MariaDB Redis |
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?
Dapr- und Dienstnetze bieten zwar einige identische Funktionen, aber ein Dienstnetz dient dem Netzwerkbetrieb, während Dapr Bausteine bereitstellt, die die Entwicklung von Anwendungen als Microservices vereinfachen. 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
Dapr enthält 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.
Wie kann ich Dapr-Komponenten mit Microsoft Entra ID mithilfe verwalteter Identitäten authentifizieren?
- Erfahren Sie, wie Dapr-Komponenten mit Microsoft Entra ID authentifiziert werden.
- Erfahren Sie mehr über das Verwenden von verwalteten Identitäten mit AKS.
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. Sie können auch nach der vorhandenen Dapr-Installation suchen und diese zu AKS migrieren.
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
Azure Kubernetes Service