Dela via


Snabbstart: Distribuera ett program med hjälp av Dapr-klustertillägget för Azure Kubernetes Service (AKS) eller Arc-aktiverade Kubernetes

I den här snabbstarten använder du Dapr-klustertillägget i ett AKS- eller Arc-aktiverat Kubernetes-kluster. Du distribuerar ett hello world exempel som består av ett Python-program som genererar meddelanden och ett Node.js program som använder och bevarar meddelandena.

Förutsättningar

Klona lagringsplatsen

  1. Klona dapr-snabbstartslagringsplatsen med kommandot git clone .

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Ändra till dapr-aks-extension-quickstart katalogen.

Skapa och konfigurera ett Redis-arkiv

Öppna Azure Portal för att starta flödet för att skapa Azure Cache for Redis.

  1. Fyll i den rekommenderade informationen enligt snabbstartsinstruktionerna "Skapa en Redis-cache med öppen källkod".
  2. Välj Skapa för att starta distributionen av Redis-instansen.

Verifiera resursinformation

  1. När Redis-resursen har distribuerats går du till översiktssidan.
  2. Anteckna:
    • Värdnamnet finns i avsnittet Essentials på cacheöversiktssidan. Värdnamnsformatet ser ut ungefär så här: xxxxxx.redis.cache.windows.net.
    • SSL-porten finns på cachens bladet Avancerade inställningar . Standardvärdet är 6380.
  3. Gå till bladet Autentisering och kontrollera att Microsoft Entra-autentisering är aktiverat på din resurs.

Lägga till hanterad identitet

  1. På bladet Autentisering skriver du namnet på den hanterade identitet som du skapade som en förutsättning i fältet under Kryssrutan Aktivera Microsoft Entra-autentisering.

    Skärmbild som visar fältet där du kan välja en hanterad identitet att lägga till som Redis-användare.

  2. Kontrollera att din hanterade identitet har lagts till som behörigheter för redis-användare som tilldelats åtkomstprincip för dataägare.

Aktivera åtkomst till offentligt nätverk

I det här scenariot använder Redis-cachen åtkomst till offentliga nätverk. Se till att rensa resurser när du är klar med den här snabbstarten.

  1. Gå till bladet Privat slutpunkt .
  2. Klicka på Aktivera åtkomst till offentligt nätverk på den översta menyn.

Konfigurera Dapr-komponenterna

I redis.yamlkonfigureras komponenten för att använda Entra ID-autentisering med arbetsbelastningsidentitet aktiverad för AKS-kluster. Inga åtkomstnycklar krävs.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. I önskad kodredigerare navigerar du till deploy katalogen i exemplet och öppnar redis.yaml.

  2. För redisHostersätter du platshållarvärdet <REDIS_HOST>:<REDIS_PORT> med redis-cachens värdnamn och SSL-port som du sparade tidigare från Azure Portal.

    - name: redisHost
    value: <your-cache-name>.redis.cache.windows.net:6380
    

Tillämpa konfigurationen

  1. redis.yaml Använd filen med kommandot kubectl apply .

    kubectl apply -f ./deploy/redis.yaml
    
  2. Kontrollera att tillståndsarkivet har konfigurerats med kommandot kubectl get components.redis .

    kubectl get components.redis -o yaml
    

    Förväntade utdata

    component.dapr.io/statestore created
    

Distribuera Node.js-appen med Dapr-sidovagnen

Konfigurera Node.js-appen

I node.yamlhar poddspecifikationen etiketten tillagd för att använda arbetsbelastningsidentitet:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Gå till deploy katalogen och öppna node.yaml.

  2. Ersätt platshållarvärdet <SERVICE_ACCOUNT_NAME> för serviceAccountName med namnet på tjänstkontot som du skapade.

    • Det här värdet ska vara samma tjänstkonto som du använde för att skapa den federerade identitetsautentiseringsuppgiften.

Tillämpa konfigurationen

  1. Använd Node.js appdistribution på klustret med hjälp av kubectl apply kommandot .

    kubectl apply -f ./deploy/node.yaml
    
  2. Kubernetes-distributioner är asynkrona, så innan du går vidare till nästa steg kontrollerar du att distributionen är klar med följande kommando:

    kubectl rollout status deploy/nodeapp
    
  3. Få åtkomst till din tjänst med hjälp av kubectl get svc kommandot .

    kubectl get svc nodeapp
    
  4. Anteckna EXTERNAL-IP i utdata.

Verifiera Node.js-tjänsten

  1. Anropa tjänsten med hjälp EXTERNAL-IPav curl.

    curl $EXTERNAL_IP/ports
    

    Exempel på utdata

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Skicka en beställning till programmet.

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Bekräfta beställningen.

    curl $EXTERNAL_IP/order
    

    Förväntade utdata

    { "orderId": "42" }
    

Distribuera Python-appen med Dapr-sidovagnen

Konfigurera Python-appen

I python.yamlhar poddspecifikationen etiketten tillagd för att använda arbetsbelastningsidentitet:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Gå till deploy katalogen och öppna python.yaml.

  2. Ersätt platshållarvärdet <SERVICE_ACCOUNT_NAME> för serviceAccountName med namnet på tjänstkontot som du skapade.

    • Det här värdet ska vara samma tjänstkonto som du använde för att skapa den federerade identitetsautentiseringsuppgiften.

Tillämpa konfigurationen

  1. Distribuera Python-appen till ditt Kubernetes-kluster med hjälp av kubectl apply kommandot .

    kubectl apply -f ./deploy/python.yaml
    
  2. Kubernetes-distributioner är asynkrona, så innan du går vidare till nästa steg kontrollerar du att distributionen är klar med följande kommando:

    kubectl rollout status deploy/pythonapp
    

Observera meddelanden och bekräfta beständighet

Nu när både Node.js- och Python-programmen har distribuerats kan du se meddelanden komma igenom.

  1. Hämta loggarna för Node.js-appen med hjälp av kubectl logs kommandot .

    kubectl logs --selector=app=node -c node --tail=-1
    

    Förväntade utdata

    Got a new order! Order ID: 1
    Successfully persisted state
    Got a new order! Order ID: 2
    Successfully persisted state
    Got a new order! Order ID: 3
    Successfully persisted state
    
  2. Anropa Node.js-appens orderslutpunkt för att hämta den senaste ordern med hjälp av curl.

    curl $EXTERNAL_IP/order
    

    Du bör se de senaste JSON-utdata i svaret.

Rensa resurser

Om du inte längre planerar att använda resurserna från den här snabbstarten kan du ta bort alla associerade resurser genom att ta bort resursgruppen.

Ta bort resursgruppen, klustret, namnområdet och alla relaterade resurser med kommandot az group delete .

az group delete --name MyResourceGroup

Nästa steg