Dapr-tillägg för Azure Kubernetes Service (AKS) (förhandsversion)

Dapr är en portabel, händelsedriven körning som gör det enkelt för utvecklare att skapa motståndskraftiga, tillståndslösa och tillståndslösa program som körs i molnet och på gränssidan och som omfattar flera olika språk och utvecklarramverk. Dapr utnyttjar fördelarna med en sidovagnsarkitektur och hjälper dig att hantera utmaningarna med att skapa mikrotjänster och hålla kodplattformen oberoende. I synnerhet hjälper det till att lösa problem med tjänster som anropar andra tjänster på ett tillförlitligt och säkert sätt, att skapa händelsedrivna appar med pub-sub och att skapa program som är portabla över flera molntjänster och värdar (t.ex. Kubernetes eller en virtuell dator).

Genom att använda tillägget AKS Dapr för att etablera Dapr i ditt AKS-kluster eliminerar du arbetet med att ladda ned Dapr-verktyg och manuellt installera och hantera körningen på ditt AKS-kluster. Tillägget har dessutom stöd för alla interna Dapr-konfigurationsfunktioner via enkla kommandoradsargument.

Anteckning

Om du planerar att installera Dapr i en Kubernetes-produktionsmiljö kan du läsa dokumentationssidan dapr-riktlinjer för produktionsanvändning.

Så här fungerar det

Dapr-tillägget för AKS använder Azure CLI för att etablera Dapr-kontrollplanet i AKS-klustret. Detta skapar:

  • dapr-operator: Hanterar komponentuppdateringar och Kubernetes-tjänstslutpunkter för Dapr (tillståndslager, pub/subs osv.)
  • dapr-sidecar-injector: Matar in Dapr i kommenterade distributionspoddar och lägger till miljövariablerna och gör det möjligt för användardefinierade program att enkelt kommunicera med Dapr utan att DAPR_HTTP_PORT DAPR_GRPC_PORT hårdkoda Dapr-portvärden.
  • dapr-placement: Används endast för skådespelare. Skapar mappningstabeller som mappar aktörsinstanser till poddar
  • dapr-sentry: Hanterar mTLS mellan tjänster och fungerar som en certifikatutfärdare. Mer information finns i säkerhetsöversikten.

När Dapr har installerats i ditt AKS-kluster körs dapr-sidovagnen tillsammans med dina programtjänster. På så sätt kan du omedelbart börja använda API:erna för Dapr-byggblock. En mer detaljerad översikt över byggblocks-API:er och hur du bäst använder dem finns i översikten över Dapr-byggstenar.

Varning

Om du installerar Dapr via AKS-tillägget rekommenderar vi att du fortsätter att använda tillägget för framtida hantering av Dapr i stället för Dapr CLI. Att kombinera de två verktygen kan orsaka konflikter och leda till oönskade beteenden.

Kubernetes-versioner som stöds

Dapr-tillägget använder samma supportfönster som AKS. Mer information finns i Stödprincip för Kubernetes-version.

Krav

  • Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
  • Installera den senaste versionen av Azure CLI och tillägget aks-preview.
  • Om du inte redan har ett måste du skapa ett AKS-kluster.

Registrera funktionerna AKS-ExtensionManager och AKS-Dapr förhandsgranskning

Viktigt

AKS-förhandsgranskningsfunktioner är tillgängliga via självbetjäning och avanmälning. Förhandsgranskningar tillhandahålls i "i dess omfattning" och "i den omfattning som är tillgänglig", och de är undantagna från serviceavtalen och den begränsade garantin. AKS-förhandsversioner omfattas delvis av kundsupporten baserat på bästa möjliga resultat. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

Om du vill skapa ett AKS-kluster som kan använda Dapr-tillägget måste du aktivera AKS-ExtensionManager AKS-Dapr funktionsflaggorna och för din prenumeration.

Registrera AKS-ExtensionManager AKS-Dapr funktionsflaggorna och med kommandot az feature register, som du ser i följande exempel:

az feature register --namespace "Microsoft.ContainerService" --name "AKS-ExtensionManager"
az feature register --namespace "Microsoft.ContainerService" --name "AKS-Dapr"

Det tar några minuter för statusen att visa Registrerad. Kontrollera registreringsstatusen med hjälp av kommandot 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}"

När du är klar uppdaterar du registreringen av resursprovidern Microsoft.KubernetesConfiguration och Microsoft.ContainerService med hjälp av kommandot az provider register:

az provider register --namespace Microsoft.KubernetesConfiguration
az provider register --namespace Microsoft.ContainerService

Konfigurera Azure CLI-tillägget för klustertillägg

Du behöver även k8s-extension Azure CLI-tillägget. Installera detta genom att köra följande kommandon:

az extension add --name k8s-extension

Om tillägget k8s-extension redan är installerat kan du uppdatera det till den senaste versionen med följande kommando:

az extension update --name k8s-extension

Skapa tillägget och installera Dapr på ditt AKS-kluster

Anteckning

Det är viktigt att du använder flaggan --cluster-type managedClusters när du installerar Dapr-tillägget på AKS-klustret. Användning --cluster-type connectedClusters stöds inte för närvarande.

När din prenumeration har registrerats för att använda Kubernetes-tillägg kan du skapa Dapr-tillägget, som installerar Dapr på ditt AKS-kluster. Exempel:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension \
--extension-type Microsoft.Dapr

Du kan välja att tillåta att Dapr uppdaterar sin delversion automatiskt genom att ange --auto-upgrade-minor-version parametern och ange värdet till true :

--auto-upgrade-minor-version true

Konfigurationsinställningar

Med tillägget kan du ange Dapr-konfigurationsalternativ med hjälp av --configuration-settings parametern . Om du till exempel vill etablera Dapr med hög tillgänglighet (HA) aktiverat anger du global.ha.enabled parametern till 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"

Anteckning

Om konfigurationsinställningarna är känsliga och behöver skyddas, till exempel certifikatrelaterad information, skickar du parametern så skyddas värdet från --configuration-protected-settings att läsas.

Om inga konfigurationsinställningar skickas får Dapr-konfigurationen som standard följande:

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

En lista över tillgängliga alternativ finns i Dapr-konfiguration.

Rikta in sig på en specifik Dapr-version

Anteckning

Dapr stöds med ett rullande fönster, inklusive endast de aktuella och tidigare versionerna. Det är ditt operativa ansvar att hålla dig uppdaterad med de versioner som stöds. Om du har en äldre version av Dapr kan du behöva göra mellanliggande uppgraderingar för att komma till en version som stöds.

Samma kommandoradsargument används för att installera en specifik version av Dapr eller för att gå tillbaka till en tidigare version. Ange --auto-upgrade-minor-version till och till den version av false --version Dapr som du vill installera. Om version parametern utelämnas installerar tillägget den senaste versionen av Dapr. Om du till exempel vill använda Dapr X.X.X:

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

Begränsa tillägget till vissa noder ( nodeSelector )

I vissa konfigurationer kanske du bara vill köra Dapr på vissa noder. Detta kan åstadkommas genom att skicka nodeSelector en i tilläggskonfigurationen. Observera att om den önskade nodeSelector innehåller måste du ta bort dem från gränssnittet och . tillägget. Till exempel installerar följande konfiguration Dapr till endast noder med 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"

Visa aktuella konfigurationsinställningar

Använd kommandot az k8s-extension show för att visa de aktuella Dapr-konfigurationsinställningarna:

az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name myDaprExtension

Uppdatera konfigurationsinställningar

Viktigt

Vissa konfigurationsalternativ kan inte ändras efter skapandet. Justeringar av dessa alternativ kräver borttagning och borttagning av tillägget. Detta gäller för följande inställningar:

  • global.ha.*
  • dapr_placement.*

Anteckning

Hög tillgänglighet (HA) kan aktiveras när som helst. När du har aktiverat det krävs dock borttagning och borttagning av tillägget när det har aktiverats. Om du inte är säker på om hög tillgänglighet krävs för ditt användningsfall rekommenderar vi att du börjar med det inaktiverat för att minimera störningar.

Om du vill uppdatera dapr-konfigurationsinställningarna återskapar du bara tillägget med önskat tillstånd. Anta till exempel att vi tidigare har skapat och installerat tillägget med hjälp av följande konfiguration:

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" 

Om du vill dapr_operator.replicaCount uppdatera från 2 till 3 använder du följande:

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"

Felsöka tilläggsfel

Om tillägget inte kan skapa eller uppdatera kan du kontrollera var det gick inte att skapa tillägget genom att köra az k8s-extension list kommandot . Om till exempel en fel nyckel används i konfigurationsinställningarna, till exempel i global.ha=false stället för global.ha.enabled=false :

az k8s-extension list --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup

Nedanstående JSON returneras och felmeddelandet avbildas i message egenskapen .

"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
      }
],

Ta bort tillägget

Om du behöver ta bort tillägget och ta bort Dapr från AKS-klustret kan du använda följande kommando:

az k8s-extension delete --resource-group myResourceGroup --cluster-name myAKSCluster --cluster-type managedClusters --name myDaprExtension

Nästa steg

  • När du har etablerat Dapr i AKS-klustret kan du prova att distribuera ett exempelprogram.