Dapr-extensie voor Azure Kubernetes Service (AKS) (preview)
Dapr is een draagbare, gebeurtenisgestuurde runtime die het voor elke ontwikkelaar gemakkelijk maakt om robuuste, staatloze en stateful toepassingen te bouwen die worden uitgevoerd in de cloud en edge en die de diversiteit van talen en frameworks voor ontwikkelaars omarmt. Door gebruik te maken van de voordelen van een sidecar-architectuur, helpt Dapr u bij het aanpakken van de uitdagingen die komen door het bouwen van microservices en blijft uw codeplatform agnostisch. Het helpt met name bij het oplossen van problemen met services die andere services betrouwbaar en veilig aanroepen, het bouwen van gebeurtenisgestuurde apps met pub-sub en het bouwen van toepassingen die overdraagbaar zijn over meerdere cloudservices en hosts (bijvoorbeeld Kubernetes versus een VM).
Door de AKS Dapr-extensie te gebruiken voor het inrichten van Dapr op uw AKS-cluster, hoeft u geen Dapr-hulpprogramma's meer te downloaden en de runtime handmatig te installeren en te beheren op uw AKS-cluster. Daarnaast biedt de extensie ondersteuning voor alle systeemeigen Dapr-configuratiemogelijkheden via eenvoudige opdrachtregelargumenten.
Notitie
Als u van plan bent dapr te installeren in een Kubernetes-productieomgeving, raadpleegt u de documentatiepagina Dapr-richtlijnen voor productiegebruik.
Uitleg
De AKS Dapr-extensie maakt gebruik van de Azure CLI om het Dapr-besturingsvlak op uw AKS-cluster in terichten. Hiermee maakt u het volgende:
- dapr-operator: beheert onderdelenupdates en Kubernetes-service-eindpunten voor Dapr (statusopslag, pub/subs, enzovoort)
- dapr-sidecar-injector: Injecteert Dapr in implementatiepods met aantekeningen en voegt de omgevingsvariabelen toe en om door de gebruiker gedefinieerde toepassingen eenvoudig te laten communiceren met Dapr zonder
DAPR_HTTP_PORTDAPR_GRPC_PORThardcodering van Dapr-poortwaarden. - dapr-placement: wordt alleen gebruikt voor actors. Maakt toewijzingstabellen die actor-exemplaren toewijzen aan pods
- dapr-sentry: beheert mTLS tussen services en fungeert als een certificeringsinstantie. Lees het beveiligingsoverzicht voor meer informatie.
Zodra Dapr is geïnstalleerd op uw AKS-cluster, wordt de Dapr-sidecar naast uw toepassingsservices uitgevoerd. Hierdoor kunt u onmiddellijk beginnen met het gebruik van de Blok-API's van Dapr. Zie het overzicht van De bouwstenen van Dapr voor een uitgebreider overzicht van de bouwstenen van API's en hoe u deze het beste kunt gebruiken.
Waarschuwing
Als u Dapr installeert via de AKS-extensie, wordt aanbevolen 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.
Ondersteunde Kubernetes-versies
De Dapr-extensie gebruikt hetzelfde ondersteuningsvenster als AKS. Zie het ondersteuningsbeleid voor Kubernetes-versies voor meer informatie.
Vereisten
- Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
- Installeer de nieuwste versie van de Azure CLI en de extensie aks-preview.
- Als u er nog geen hebt, moet u een AKS-cluster maken.
De AKS-ExtensionManager preview-functies en AKS-Dapr registreren
Belangrijk
Preview-functies van AKS zijn beschikbaar via selfservice en opt-in. Previews worden aangeboden 'as is' en 'as available', en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Als u een AKS-cluster wilt maken dat de Dapr-extensie kan gebruiken, moet u de functievlaggen AKS-ExtensionManager en AKS-Dapr inschakelen voor uw abonnement.
Registreer de AKS-ExtensionManager AKS-Dapr functievlaggen en met behulp van de opdracht az feature register, zoals wordt weergegeven in het volgende voorbeeld:
az feature register --namespace "Microsoft.ContainerService" --name "AKS-ExtensionManager"
az feature register --namespace "Microsoft.ContainerService" --name "AKS-Dapr"
Het duurt enkele minuten voordat de status Geregistreerd we weergeven. Controleer de registratiestatus met behulp van de opdracht az feature list:
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-ExtensionManager')].{Name:name,State:properties.state}"
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-Dapr')].{Name:name,State:properties.state}"
Wanneer u klaar bent, vernieuwt u de registratie van de resourceproviders Microsoft.KubernetesConfiguration en Microsoft.ContainerService met behulp van de opdracht az provider register:
az provider register --namespace Microsoft.KubernetesConfiguration
az provider register --namespace Microsoft.ContainerService
De Azure CLI-extensie voor clusterextensies instellen
U hebt ook de k8s-extension Azure CLI-extensie nodig. Installeer deze door de volgende opdrachten uit te voeren:
az extension add --name k8s-extension
Als de extensie al is geïnstalleerd, kunt u deze bijwerken naar k8s-extension de nieuwste versie met behulp van de volgende opdracht:
az extension update --name k8s-extension
De extensie maken en Dapr installeren op uw AKS-cluster
Notitie
Het is belangrijk dat u de vlag gebruikt --cluster-type managedClusters bij het installeren van de Dapr-extensie op uw AKS-cluster. Het --cluster-type connectedClusters gebruik van wordt momenteel niet ondersteund.
Zodra uw abonnement is geregistreerd voor het gebruik van Kubernetes-extensies, kunt u de Dapr-extensie maken, waarmee Dapr op uw AKS-cluster wordt geïnstalleerd. Bijvoorbeeld:
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr
U kunt Dapr toestaan om de secundaire versie automatisch bij te werken door de parameter op te geven en --auto-upgrade-minor-version de waarde in te stellen op true :
--auto-upgrade-minor-version true
Configuratie-instellingen
Met de extensie kunt u dapr-configuratieopties instellen met behulp van de --configuration-settings parameter . Als u bijvoorbeeld Dapr wilt inrichten met hoge beschikbaarheid (HA) ingeschakeld, stelt u de global.ha.enabled parameter in op true :
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"
Notitie
Als configuratie-instellingen gevoelig zijn en moeten worden beveiligd, bijvoorbeeld informatie over certificaten, geeft u de parameter door en wordt de waarde beschermd --configuration-protected-settings tegen lezen.
Als er geen configuratie-instellingen worden doorgegeven, wordt de Dapr-configuratie standaard ingesteld op:
ha:
enabled: true
replicaCount: 3
disruption:
minimumAvailable: ""
maximumUnavailable: "25%"
prometheus:
enabled: true
port: 9090
mtls:
enabled: true
workloadCertTTL: 24h
allowedClockSkew: 15m
Zie Dapr-configuratie voor een lijst met beschikbare opties.
Gericht op een specifieke Dapr-versie
Notitie
Dapr wordt ondersteund met een rolling-venster, met inbegrip van alleen de huidige en vorige versies. Het is uw operationele verantwoordelijkheid om up-to-date te blijven met deze ondersteunde versies. Als u een oudere versie van Dapr hebt, moet u mogelijk tussenliggende upgrades uitvoeren om een ondersteunde versie te krijgen.
Hetzelfde opdrachtregelargument wordt gebruikt voor het installeren van een specifieke versie van Dapr of het terugrollen naar een eerdere versie. Stel --auto-upgrade-minor-version in op en op de versie van false --version Dapr die u wilt installeren. Als de version parameter wordt weggelaten, installeert de extensie de nieuwste versie van Dapr. Als u bijvoorbeeld Dapr X.X.X wilt gebruiken:
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version false \
--version X.X.X
De extensie beperken tot bepaalde knooppunten ( nodeSelector )
In sommige configuraties wilt u dapr mogelijk alleen uitvoeren op bepaalde knooppunten. Dit kan worden bereikt door een door te geven nodeSelector in de extensieconfiguratie. Houd er rekening mee dat als de nodeSelector gewenste . bevat, u ze uit de shell en de extensie moet escapen. Met de volgende configuratie wordt Dapr bijvoorbeeld alleen geïnstalleerd op knooppunten met kubernetes.io/os=linux :
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/os=linux"
Huidige configuratie-instellingen tonen
Gebruik de az k8s-extension show opdracht om de huidige dapr-configuratie-instellingen weer te geven:
az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension
Configuratie-instellingen bijwerken
Belangrijk
Sommige configuratieopties kunnen na het maken niet worden gewijzigd. Voor aanpassingen aan deze opties moet de extensie worden verwijderd en moet de extensie worden verwijderd. Dit is van toepassing op de volgende instellingen:
global.ha.*dapr_placement.*
Notitie
Hoge beschikbaarheid (HA) kan op elk moment worden ingeschakeld. Als het uitschakelen is ingeschakeld, moet de extensie echter worden verwijderd en moet de extensie worden verwijderd. Als u niet zeker weet of hoge beschikbaarheid nodig is voor uw use-case, raden we u aan om te beginnen met uitgeschakeld om onderbrekingen te minimaliseren.
Als u de dapr-configuratie-instellingen wilt bijwerken, maakt u de extensie opnieuw met de gewenste status. Stel bijvoorbeeld dat we de extensie eerder hebben gemaakt en geïnstalleerd met behulp van de volgende configuratie:
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"
Als u wilt dapr_operator.replicaCount bijwerken van 2 naar 3, gebruikt u het volgende:
az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"
Extensiefouten oplossen
Als de extensie niet kan worden gemaakt of bijgewerkt, kunt u controleren waar het maken van de extensie is mislukt door de opdracht uit te az k8s-extension list voeren. Als er bijvoorbeeld een verkeerde sleutel wordt gebruikt in de configuratie-instellingen, zoals global.ha=false in plaats van global.ha.enabled=false :
az k8s-extension list --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup
De onderstaande JSON wordt geretourneerd en het foutbericht wordt vastgelegd in de message eigenschap .
"statuses": [
{
"code": "InstallationFailed",
"displayStatus": null,
"level": null,
"message": "Error: {failed to install chart from path [] for release [dapr-1]: err [template: dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml:1:17: executing \"dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml\" at <.Values.global.ha.enabled>: can't evaluate field enabled in type interface {}]} occurred while doing the operation : {Installing the extension} on the config",
"time": null
}
],
De extensie verwijderen
Als u de extensie wilt verwijderen en Dapr uit uw AKS-cluster wilt verwijderen, kunt u de volgende opdracht gebruiken:
az k8s-extension delete --resource-group myResourceGroup --cluster-name myAKSCluster --cluster-type managedClusters --name myDaprExtension
Volgende stappen
- Zodra u Dapr hebt ingericht in uw AKS-cluster, probeert u een voorbeeldtoepassing te implementeren.