Dapr-extensie voor Azure Kubernetes Service (AKS) en Kubernetes met Arc
Distributed Application Runtime (Dapr) biedt API's waarmee u eenvoudige, draagbare, flexibele en beveiligde microservices kunt schrijven en implementeren. Dapr-API's worden uitgevoerd als sidecar-proces in combinatie met uw toepassingen en abstraheren veelvoorkomende complexiteiten die u kunt tegenkomen bij het bouwen van gedistribueerde toepassingen, zoals:
- Servicedetectie
- Berichtbrokerintegratie
- Versleuteling
- Waarneembaarheid
- Geheimenbeheer
Dapr kan incrementeel worden gebruikt. U kunt indien nodig een van de API-bouwstenen gebruiken. Meer informatie over het ondersteuningsniveau dat Microsoft biedt voor elke Dapr-API en elk onderdeel.
Mogelijkheden en functies
Als u de Dapr-extensie gebruikt om Dapr in te richten op uw AKS- of Kubernetes-cluster met Arc, wordt de overhead van:
- Dapr-hulpprogramma's downloaden
- De Dapr-runtime handmatig installeren en beheren op uw AKS-cluster
Daarnaast biedt de extensie ondersteuning voor alle systeemeigen Dapr-configuratiemogelijkheden via eenvoudige opdrachtregelargumenten .
Dapr biedt de volgende set mogelijkheden om u te helpen bij het ontwikkelen van microservices op AKS:
- Eenvoudig inrichten van Dapr op AKS via clusterextensies
- Portability enabled through HTTP and gRPC API's which abstract onderliggende technologieën choices (Portability enabled through HTTP and gRPC API's) die onderliggende technologieën abstract maken
- Betrouwbare, veilige en flexibele service-naar-service-aanroepen via HTTP- en gRPC-API's
- Het publiceren en abonneren van berichten is eenvoudig gemaakt met ondersteuning voor CloudEvent-filtering en semantiek 'ten minste één keer' voor berichtbezorging
- Waarneembare waarneembaarheid en bewaking via open telemetrie-API-collector
- Onafhankelijk van taal, terwijl ook taalspecifieke SDK's (Software Development Kits) worden aangeboden
- Integratie met Visual Studio Code via de Dapr-extensie
- Meer API's voor het oplossen van problemen met gedistribueerde toepassingen
Momenteel ondersteund
De Dapr-extensie is de enige door Microsoft ondersteunde optie voor Dapr in AKS.
Afhandeling van problemen
Microsoft categoriseert problemen met de Dapr-extensie in twee delen:
- Extensiebewerkingen
- Dapr-runtime (inclusief API's en onderdelen)
In de volgende tabel worden prioriteitsniveaus voor ondersteuning voor elk van deze categorieën onderverdeeld.
Beschrijving | Beveiligingsrisico's/regressies | Functionele problemen | |
---|---|---|---|
Extensiebewerkingen | Problemen die zijn opgetreden tijdens extensiebewerkingen, zoals het installeren/verwijderen of upgraden van de Dapr-extensie. | Microsoft geeft prioriteit aan onmiddellijke oplossing. | Microsoft onderzoekt en adressen indien nodig. |
Dapr-runtime | Problemen die optreden bij het gebruik van de Dapr-runtime, API's en onderdelen via de extensie. | Microsoft werkt met de opensource-community om problemen met hoge prioriteit te onderzoeken. Afhankelijk van prioriteit, ernst en grootte van het probleem, lost Microsoft deze rechtstreeks op in de extensie of werkt microsoft met het Open Source-project Dapr om op te lossen in een hotfix of toekomstige Open Source-release van Dapr. Zodra oplossingen zijn uitgebracht in open source van Dapr, worden ze vervolgens beschikbaar gesteld in de Dapr-extensie. | Microsoft onderzoekt nieuwe functionele problemen naast het opensource-project Dapr en werkt ermee samen om op te lossen in een hotfix of toekomstige open source-release van Dapr. Bekende opensource-functionele problemen worden momenteel niet door Microsoft onderzocht. |
Dapr-versies
Microsoft biedt best effort-ondersteuning voor de nieuwste versie van Dapr en twee eerdere versies (N-2). De nieuwste patchversie is de enige ondersteunde versie van elke secundaire versie. Momenteel ondersteunt de Dapr-extensie voor AKS of Kubernetes met Arc de volgende Dapr-versies:
- 1.14.x
- 1.13.x
- 1.12.x
U kunt Azure CLI-opdrachten uitvoeren om een lijst met beschikbare versies in een cluster of een locatie op te halen.
Runtime-ondersteuning
De ondersteuning voor de Dapr-extensie is afhankelijk van hoe u de runtime beheert.
Zelfbeheerd
Voor zelfbeheerde runtime moet handmatige upgrade worden uitgevoerd om in het ondersteuningsvenster te blijven. Als u Dapr wilt upgraden via de extensie, volgt u de instructies voor het update-extensie-exemplaar .
Nadat een Dapr-runtimeversie het einde van microsoft-ondersteuning bereikt, blijven uw toepassingen ongewijzigd. Microsoft kan echter geen beveiligingspatches of gerelateerde klantondersteuning meer bieden voor die runtimeversie. Als uw toepassing problemen ondervindt na de einddatum van de ondersteuning voor die versie, raden we u aan een upgrade uit te voeren naar een ondersteunde versie om de meest recente beveiligingspatches en -functies te ontvangen.
Automatische upgrade
Het inschakelen van automatische upgrade vereist zorgvuldige overwegingen. Terwijl uw Dapr-extensie automatisch wordt bijgewerkt naar de nieuwste secundaire versie, kan het zijn dat er wijzigingen optreden die fouten veroorzaken tussen updates. Microsoft is niet verantwoordelijk voor downtime die wordt veroorzaakt door wijzigingen die fouten veroorzaken tussen automatische updates.
Onderdelen en API's
U kunt alle Dapr-onderdelen en API's gebruiken via de Dapr-extensie, inclusief die in alfa- en bètastatus. Microsoft biedt echter alleen ondersteuning voor een subset van API's en onderdelen, volgens het gedefinieerde beleid voor het afhandelen van problemen.
Stabiele Dapr-API's
De Dapr-extensie ondersteunt stabiele versies van Dapr-API's (bouwstenen).
Dapr-API | -Status | Beschrijving |
---|---|---|
Aanroep van service-naar-service | Stabiel | Ontdek services en voer betrouwbare, directe service-naar-service-aanroepen uit met automatische mTLS-verificatie en -versleuteling. (#limitations) |
Statusbeheer | Stabiel | Biedt mogelijkheden voor statusbeheer voor transacties en CRUD-bewerkingen. |
Pub/sub | Stabiel | Hiermee kunnen uitgevers- en abonnee-apps communiceren via een tussenliggende berichtenbroker. U kunt ook declaratieve abonnementen voor een onderwerp maken met behulp van een JSON-bestand met een extern onderdeel. |
Bindings | Stabiel | Activeer uw toepassingen op basis van gebeurtenissen. |
Acteurs | Stabiel | Dapr-actoren zijn berichtengestuurde, één threaded, werkeenheden die zijn ontworpen om snel te schalen. Bijvoorbeeld in burst-zware workloadsituaties. |
Observability | Stabiel | Traceringsgegevens verzenden naar een Application Insights-back-end. |
Geheimen | Stabiel | Krijg toegang tot geheimen vanuit uw toepassingscode of verwijs naar beveiligde waarden in uw Dapr-onderdelen. |
Configuratie | Stabiel | Ophalen en abonneren op toepassingsconfiguratie-items voor ondersteunde configuratie. Winkels. |
Dapr-onderdelen
Laag 1 versus laag 2-onderdelen
Een subset van Dapr-onderdelen wordt ondersteund. Binnen die subset worden Dapr-onderdelen onderverdeeld in twee ondersteuningscategorieën: Laag 1 of Laag 2.
- Laag 1-onderdelen: stabiele onderdelen die onmiddellijk onderzoek ontvangen in kritieke (beveiligings- of ernstige regressie)-scenario's. Anders werkt Microsoft samen met open source om te reageren in een hotfix of de volgende reguliere release.
- Laag 2-onderdelen: Onderdelen die worden onderzocht op een lagere prioriteit, omdat ze niet in een stabiele staat of bij een externe provider zijn.
Onderdelen van laag 1
API | Onderdeel | Type |
---|---|---|
Statusbeheer | Azure Cosmos DB Azure Blob Storage v1 Azure-tabelopslag Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publiceren en abonneren | Azure Service Bus-wachtrijen Azure Service Bus-onderwerpen Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Binding | Azure Storage-wachtrijen Azure Service Bus-wachtrijen Azure Blob-opslag Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Geheimenbeheer | Azure Key Vault | secretstores.azure.keyvault |
Laag 2-onderdelen
API | Onderdeel | Type |
---|---|---|
Statusbeheer | PostgreSQL MySQL & MariaDB Redis |
state.postgresql state.mysql state.redis |
Publiceren en abonneren | Apache Kafka Redis Streams |
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 |
Configuratie | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Clouds/regio's
Wereldwijde Azure-cloud wordt ondersteund met AKS- en Arc-ondersteuning voor de volgende regio's:
Regio | AKS-ondersteuning | Ondersteuning voor Arc voor 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 |
✔️ | ✔️ |
Veelgestelde vragen
Hoe vergelijken Dapr- en Service-meshes?
Hoewel Dapr en service-meshes wel overlappende mogelijkheden bieden, is een service-mesh gericht op netwerkproblemen, terwijl Dapr zich richt op het bieden van bouwstenen waarmee het bouwen van toepassingen als microservices eenvoudiger wordt. Dapr is op ontwikkelaars gericht, terwijl service-meshes infrastructuurgericht zijn.
Enkele algemene mogelijkheden die Dapr deelt met service-meshes zijn:
- Communicatie tussen services beveiligen met mTLS-versleuteling
- Metrische verzameling service-naar-servicegegevens
- Service-naar-service gedistribueerde tracering
- Tolerantie via nieuwe pogingen
Dapr biedt andere bouwstenen op toepassingsniveau voor statusbeheer, pub/subberichten, actoren en meer. Dapr biedt echter geen mogelijkheden voor verkeergedrag, zoals routering of het splitsen van verkeer. Als uw oplossing profiteert van het verkeer dat een service-mesh splitst, kunt u overwegen Open Service Mesh te gebruiken.
Raadpleeg de Dapr-documentatie voor meer informatie over Dapr en service-meshes en hoe ze samen kunnen worden gebruikt.
Hoe verhoudt de Dapr secrets-API zich tot het stuurprogramma Secrets Store CSI?
Zowel de Dapr-geheimen-API als het beheerde stuurprogramma Secrets Store CSI maken de integratie van geheimen in een externe winkel mogelijk, waarbij technologie voor het geheimarchief wordt geabstraheerd vanuit toepassingscode.
Het stuurprogramma Secrets Store CSI koppelt geheimen in Azure Key Vault als een CSI-volume voor gebruik door een toepassing.
Dapr maakt geheimen beschikbaar via een RESTful-API die het volgende kan zijn:
- Aangeroepen door toepassingscode
- Geconfigureerd met gesorteerde geheime archieven
De volgende tabel bevat de mogelijkheden van elk aanbod:
Dapr-geheimen-API | Secrets Store CSI-stuurprogramma | |
---|---|---|
Ondersteunde geheimenarchieven | Lokale omgevingsvariabelen (voor ontwikkeling); Lokaal bestand (voor ontwikkeling); Kubernetes-geheimen; AWS Secrets Manager; Azure Key Vault-geheimarchief; Azure Key Vault met beheerde identiteiten in Kubernetes; GCP Secret Manager; HashiCorp Vault | Azure Key Vault-geheimarchief |
Toegang tot geheimen in toepassingscode | De Dapr-geheimen-API aanroepen | Toegang krijgen tot het gekoppelde volume of de gekoppelde inhoud synchroniseren als een Kubernetes-geheim en een omgevingsvariabele instellen |
Geheime draaiing | Nieuwe API-aanroepen verkrijgen de bijgewerkte geheimen | Polls voor geheimen en werkt de koppeling bij met een configureerbaar interval |
Logboekregistratie en metrische gegevens | De Dapr-sidecar genereert logboeken, die kunnen worden geconfigureerd met collectors zoals Azure Monitor, metrische gegevens verzendt via Prometheus en een HTTP-eindpunt beschikbaar maakt voor statuscontroles | Verzendt metrische gegevens van stuurprogramma's en Azure Key Vault-providers via Prometheus |
Zie het overzicht van geheimenbeheer voor meer informatie over het geheimbeheer in Dapr.
Zie het stuurprogramma Secrets Store CSI en de Azure Key Vault-provider voor meer informatie over het stuurprogramma Secrets Store CSI.
Hoe vergelijkt de beheerde Dapr-clusterextensie zich met de open source Dapr-aanbieding?
De beheerde Dapr-clusterextensie is de eenvoudigste methode om Dapr in te richten op een AKS-cluster. Met de extensie kunt u het beheer van de Dapr-runtimeversie offloaden door ervoor te kiezen om automatische upgrades uit te voeren. Daarnaast installeert de extensie Dapr met slimme standaardinstellingen (bijvoorbeeld het inrichten van het Dapr-besturingsvlak in de modus voor hoge beschikbaarheid).
Wanneer u Dapr open source installeert via Helm of de Dapr CLI, zijn ontwikkelaars en clusteronderhouders ook verantwoordelijk voor runtimeversies en configuratieopties.
Ten slotte is de Dapr-extensie een uitbreiding van AKS, dus u kunt hetzelfde ondersteuningsbeleid verwachten als andere AKS-functies.
Meer informatie over het migreren van dapr open source naar de Dapr-extensie voor AKS.
Hoe kan ik Dapr-onderdelen verifiëren met Microsoft Entra ID met behulp van beheerde identiteiten?
- Meer informatie over hoe Dapr-onderdelen worden geverifieerd met Microsoft Entra-id.
- Meer informatie over het gebruik van beheerde identiteiten met AKS.
Hoe kan ik overschakelen naar de Dapr-extensie als ik Dapr al heb geïnstalleerd via een methode, zoals Helm?
Aanbevolen richtlijnen zijn het volledig verwijderen van Dapr uit het AKS-cluster en het opnieuw installeren via de clusterextensie. U kunt ook controleren op de bestaande Dapr-installatie en deze migreren naar AKS.
Als u Dapr installeert via de AKS-extensie, is het raadzaam om de extensie te blijven gebruiken voor toekomstig beheer van Dapr in plaats van de Dapr CLI. Het combineren van de twee hulpprogramma's kan conflicten veroorzaken en leiden tot ongewenst gedrag.
Volgende stappen
Azure Kubernetes Service