Rozšíření Dapr pro Azure Kubernetes Service (AKS) (Preview)

Dapr je přenosný modul runtime řízený událostmi, který vývojářům usnadňuje vytváření odolných, bez stavových a stavových aplikací, které běží na cloudu i na hraničních zařízeních a prochycuje rozmanitost jazyků a architektur pro vývojáře. S využitím výhod architektury sa sidecar vám Dapr pomůže vyřešit problémy spojené se sestavováním mikroslužeb a udržovat vaši platformu kódugnostická. Konkrétně pomáhá řešit problémy související se službami, které volají jiné služby spolehlivě a bezpečně, vytvářením aplikací řízených událostmi pomocí pub-sub a vytvářením aplikací, které jsou přenositelné napříč několika cloudovými službami a hostiteli (např. Kubernetes vs. virtuální počítač).

Použitím rozšíření AKS Dapr ke zřízení dapr v clusteru AKS eliminujete režii při stahování nástrojů Dapr a ruční instalaci a správě modulu runtime v clusteru AKS. Kromě toho rozšíření nabízí podporu všech nativních možností konfigurace Dapr prostřednictvím jednoduchých argumentů příkazového řádku.

Poznámka

Pokud máte v plánu nainstalovat Dapr do produkčního prostředí Kubernetes, projděte si stránku s pokyny dapr pro produkční využití.

Jak to funguje

Rozšíření AKS Dapr používá Azure CLI ke zřízení řídicí roviny Dapr ve vašem clusteru AKS. Tím se vytvoří:

  • dapr-operator: Spravuje aktualizace komponent a koncové body služeb Kubernetes pro Dapr (úložiště stavů, pub/sub atd.).
  • dapr-sidecar-injector: Vloží Dapr do podů nasazení s poznámkami a přidá proměnné prostředí a umožní uživatelem definovaným aplikacím snadno komunikovat s Dapr bez pevného kódování hodnot portů DAPR_HTTP_PORT DAPR_GRPC_PORT Dapr.
  • dapr-placement: Používá se jenom pro aktéry. Vytvoří tabulky mapování, které mapuje instance objektu actor na pody.
  • dapr-sentry: Spravuje mTLS mezi službami a funguje jako certifikační autorita. Další informace najdete v přehledu zabezpečení.

Jakmile je dapr nainstalovaný v clusteru AKS, vaše aplikační služby teď mají spuštěnou sakaru Dapr. To vám umožní okamžitě začít používat rozhraní API stavebních bloků Dapr. Podrobnější přehled rozhraní API stavebních bloků a jejich nejlepší využití najdete v tématu Přehled stavebních bloků Dapr.

Upozornění

Pokud dapr nainstalujete prostřednictvím rozšíření AKS, doporučujeme toto rozšíření dál používat pro budoucí správu dapr místo rozhraní příkazového řádku Dapr. Kombinování těchto dvou nástrojů může způsobit konflikty a vést k nežádoucímu chování.

Podporované verze Kubernetes

Rozšíření Dapr používá stejné okno podpory jako AKS. Další informace najdete v tématu Zásady podpory verzí Kubernetes.

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
  • Nainstalujte nejnovější verzi Azure CLI a rozšíření aks-preview.
  • Pokud ho ještě nemáte, musíte vytvořit cluster AKS.

Registrace funkcí AKS-ExtensionManager AKS-Dapr a ve verzi Preview

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na základě samoobslužných možností. Verze Preview se poskytují "tak, jak jsou" a "jak jsou k dispozici" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview služby AKS částečně pokryje zákaznická podpora na základě maximálního úsilí. Proto nejsou tyto funkce určeny pro použití v produkčním prostředí. Další informace najdete v následujících článcích podpory:

Pokud chcete vytvořit cluster AKS, který může používat rozšíření Dapr, musíte ve svém předplatném povolit příznaky funkcí AKS-ExtensionManager AKS-Dapr a .

Pomocí příkazu az feature register zaregistrujte příznaky funkcí a , jak AKS-ExtensionManager AKS-Dapr je znázorněno v následujícím příkladu:

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

Zobrazení stavu Registrováno trvá několik minut. Pomocí příkazu az feature list ověřte stav registrace:

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

Až budete připravení, aktualizujte registraci poskytovatelů prostředků Microsoft.KubernetesConfiguration a Microsoft.ContainerService pomocí příkazu az provider register:

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

Nastavení rozšíření Azure CLI pro rozšíření clusteru

Budete také potřebovat rozšíření k8s-extension Azure CLI. Nainstalujte ho spuštěním následujících příkazů:

az extension add --name k8s-extension

Pokud je rozšíření už nainstalované, můžete ho aktualizovat na nejnovější k8s-extension verzi pomocí následujícího příkazu:

az extension update --name k8s-extension

Vytvoření rozšíření a instalace Dapr v clusteru AKS

Poznámka

Při instalaci rozšíření Dapr do clusteru AKS je důležité použít --cluster-type managedClusters příznak . Použití --cluster-type connectedClusters se v současné době nepodporuje.

Jakmile je vaše předplatné zaregistrované k používání rozšíření Kubernetes, můžete vytvořit rozšíření Dapr, které nainstaluje Dapr do clusteru AKS. Například:

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

Můžete dapr umožnit automatickou aktualizaci podverd tím, že zadáte parametr a --auto-upgrade-minor-version nastavíte hodnotu na true :

--auto-upgrade-minor-version true

Nastavení konfigurace

Rozšíření umožňuje nastavit možnosti konfigurace Dapr pomocí --configuration-settings parametru . Pokud například chcete zřídit Dapr s povolenou vysokou dostupností (HA), nastavte global.ha.enabled parametr na 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"

Poznámka

Pokud jsou nastavení konfigurace citlivá a je třeba je chránit, například informace související s certifikáty, předejte parametr a hodnota se bude chránit --configuration-protected-settings před čtením.

Pokud se žádná nastavení konfigurace předá, konfigurace Dapr bude ve výchozím nastavení následující:

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

Seznam dostupných možností najdete v tématu Konfigurace Dapr.

Cílení na konkrétní verzi Dapr

Poznámka

Dapr se podporuje s oknem se rolováním, včetně jenom aktuálních a předchozích verzí. Je vaší provozní odpovědností, abyste s těmito podporovanými verzemi zůstali aktuální. Pokud máte starší verzi Dapr, možná budete muset provést přechodný upgrade, abyste získali podporovanou verzi.

Stejný argument příkazového řádku se používá k instalaci konkrétní verze Dapr nebo vrácení zpět na předchozí verzi. Nastavte --auto-upgrade-minor-version na a na verzi false --version dapr, kterou chcete nainstalovat. Pokud version parametr vyjmete, rozšíření nainstaluje nejnovější verzi dapr. Pokud chcete například použít 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

Omezení rozšíření na určité uzly ( nodeSelector )

V některých konfiguracích můžete chtít dapr spouštět jenom na určitých uzlech. Toho lze dosáhnout předáním nodeSelector v konfiguraci rozšíření . Všimněte si, že nodeSelector pokud požadovaný objekt obsahuje , musíte je řídicím znakem z prostředí a . rozšíření . Například následující konfigurace nainstaluje Dapr jenom na uzly s 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"

Zobrazení aktuálního nastavení konfigurace

Pomocí příkazu zobrazte aktuální nastavení konfigurace az k8s-extension show Dapr:

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

Aktualizace nastavení konfigurace

Důležité

Některé možnosti konfigurace nelze po vytvoření upravit. Úpravy těchto možností vyžadují odstranění a odstranění rozšíření. To platí pro následující nastavení:

  • global.ha.*
  • dapr_placement.*

Poznámka

Vysokou dostupnost (HA) je možné povolit kdykoli. Po povolení však jeho zakázání vyžaduje odstranění a odstranění rozšíření. Pokud si nejste jistí, jestli je pro váš případ použití nutná vysoká dostupnost, doporučujeme začít se zakázaným, abyste minimalizovali přerušení.

Pokud chcete aktualizovat nastavení konfigurace Dapr, jednoduše znovu vytvořte rozšíření s požadovaným stavem. Předpokládejme například, že jsme již dříve vytvořili a nainstalovali rozšíření pomocí následující konfigurace:

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" 

Pokud chcete aktualizovat dapr_operator.replicaCount z 2 na 3, použijte následující:

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"

Řešení potíží s chybami rozšíření

Pokud se rozšíření nepovede vytvořit nebo aktualizovat, můžete spuštěním příkazu zkontrolovat, kde se rozšíření nepovedlo az k8s-extension list vytvořit. Pokud se například v nastavení konfigurace použije nesprávný klíč, například global.ha=false místo global.ha.enabled=false :

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

Vrátí se následující kód JSON a chybová zpráva se zachytá ve message vlastnosti .

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

Odstranění rozšíření

Pokud potřebujete odstranit rozšíření a odebrat Dapr z clusteru AKS, můžete použít následující příkaz:

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

Další kroky