Delen via


Quickstart: Een toepassing implementeren met behulp van de Dapr-clusterextensie voor Azure Kubernetes Service (AKS) of Kubernetes met Arc

In deze quickstart gebruikt u de Dapr-clusterextensie in een Kubernetes-cluster met AKS of Arc. U implementeert een hello world voorbeeld, dat bestaat uit een Python-toepassing die berichten genereert en een Node.js-toepassing die de berichten verbruikt en persistent maakt.

Vereisten

De opslagplaats klonen

  1. Kloon de opslagplaats voor Dapr-quickstarts met behulp van de git clone opdracht.

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Ga naar de dapr-aks-extension-quickstart map.

Een Redis-archief maken en configureren

Open Azure Portal om de stroom voor het maken van Azure Cache voor Redis te starten.

  1. Vul de aanbevolen informatie in volgens de quickstartinstructies 'Een opensource Redis-cache maken'.
  2. Selecteer Maken om de implementatie van het Redis-exemplaar te starten.

Resourcegegevens verifiëren

  1. Zodra de Redis-resource is geïmplementeerd, gaat u naar de overzichtspagina.
  2. Noteer:
    • De hostnaam, te vinden in de sectie Essentials van de overzichtspagina van de cache. De hostnaamindeling ziet er ongeveer als volgt uit: xxxxxx.redis.cache.windows.net.
    • De SSL-poort, te vinden op de blade Geavanceerde instellingen van de cache. De standaardwaarde is 6380.
  3. Navigeer naar de blade Verificatie en controleer of Microsoft Entra-verificatie is ingeschakeld voor uw resource.

Beheerde identiteit toevoegen

  1. Typ op de blade Verificatie de naam van de beheerde identiteit die u hebt gemaakt als een vereiste in het veld onder Het selectievakje Microsoft Entra-verificatie inschakelen.

    Schermopname van het veld waarin u een beheerde identiteit kunt selecteren die u als Redis-gebruiker wilt toevoegen.

  2. Controleer of uw beheerde identiteit is toegevoegd als machtigingen voor het toegangsbeleid van een Redis-gebruiker aan wie de gegevenseigenaar is toegewezen.

Openbare netwerktoegang inschakelen

Voor dit scenario maakt uw Redis-cache gebruik van openbare netwerktoegang. Zorg ervoor dat u resources opschoont wanneer u klaar bent met deze quickstart.

  1. Navigeer naar de blade Privé-eindpunt .
  2. Klik in het bovenste menu op Openbare netwerktoegang inschakelen.

De Dapr-onderdelen configureren

In redis.yamlis het onderdeel geconfigureerd voor het gebruik van Entra ID-verificatie met behulp van workloadidentiteit die is ingeschakeld voor het AKS-cluster. Er zijn geen toegangssleutels vereist.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. Navigeer in de code-editor van uw voorkeur naar de deploy map in het voorbeeld en open redis.yaml.

  2. Vervang redisHostde tijdelijke aanduidingswaarde <REDIS_HOST>:<REDIS_PORT> door de hostnaam van de Redis-cache en ssl-poort die u eerder hebt opgeslagen in Azure Portal.

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

De configuratie toepassen

  1. Pas het redis.yaml bestand toe met behulp van de kubectl apply opdracht.

    kubectl apply -f ./deploy/redis.yaml
    
  2. Controleer of uw statusarchief is geconfigureerd met behulp van de kubectl get components.redis opdracht.

    kubectl get components.redis -o yaml
    

    Verwachte uitvoer

    component.dapr.io/statestore created
    

De Node.js-app implementeren met de Dapr-sidecar

De Node.js-app configureren

In node.yamlde podspecificatie wordt het label toegevoegd om de workloadidentiteit te gebruiken:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigeer naar de deploy map en open node.yaml.

  2. Vervang de waarde van de tijdelijke aanduiding <SERVICE_ACCOUNT_NAME> voor serviceAccountName de naam van het serviceaccount dat u hebt gemaakt.

    • Deze waarde moet hetzelfde serviceaccount zijn dat u hebt gebruikt om de federatieve identiteitsreferentie te maken.

De configuratie toepassen

  1. Pas de Node.js-app-implementatie toe op uw cluster met behulp van de kubectl apply opdracht.

    kubectl apply -f ./deploy/node.yaml
    
  2. Kubernetes-implementaties zijn asynchroon, dus voordat u verdergaat met de volgende stappen, controleert u of de implementatie is voltooid met de volgende opdracht:

    kubectl rollout status deploy/nodeapp
    
  3. Open uw service met behulp van de kubectl get svc opdracht.

    kubectl get svc nodeapp
    
  4. Noteer de EXTERNAL-IP in de uitvoer.

De Node.js-service controleren

  1. Bel curlde service met uw EXTERNAL-IP.

    curl $EXTERNAL_IP/ports
    

    Voorbeelduitvoer

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Dien een bestelling in bij de toepassing.

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Bevestig de bestelling.

    curl $EXTERNAL_IP/order
    

    Verwachte uitvoer

    { "orderId": "42" }
    

De Python-app implementeren met de Dapr-sidecar

De Python-app configureren

In python.yamlde podspecificatie wordt het label toegevoegd om de workloadidentiteit te gebruiken:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigeer naar de deploy map en open python.yaml.

  2. Vervang de waarde van de tijdelijke aanduiding <SERVICE_ACCOUNT_NAME> voor serviceAccountName de naam van het serviceaccount dat u hebt gemaakt.

    • Deze waarde moet hetzelfde serviceaccount zijn dat u hebt gebruikt om de federatieve identiteitsreferentie te maken.

De configuratie toepassen

  1. Implementeer de Python-app in uw Kubernetes-cluster met behulp van de kubectl apply opdracht.

    kubectl apply -f ./deploy/python.yaml
    
  2. Kubernetes-implementaties zijn asynchroon, dus voordat u verdergaat met de volgende stappen, controleert u of de implementatie is voltooid met de volgende opdracht:

    kubectl rollout status deploy/pythonapp
    

Berichten observeren en persistentie bevestigen

Nu zowel de Node.js als python-toepassingen zijn geïmplementeerd, kunt u berichten bekijken.

  1. Haal de logboeken van de Node.js-app op met behulp van de kubectl logs opdracht.

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

    Verwachte uitvoer

    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. Roep curlhet ordereindpunt van de Node.js-app aan om de nieuwste bestelling te verkrijgen.

    curl $EXTERNAL_IP/order
    

    U ziet nu de meest recente JSON-uitvoer in het antwoord.

Resources opschonen

Als u de resources uit deze quickstart niet meer wilt gebruiken, kunt u alle gekoppelde resources verwijderen door de resourcegroep te verwijderen.

Verwijder de resourcegroep, het cluster, de naamruimte en alle gerelateerde resources met behulp van de opdracht az group delete .

az group delete --name MyResourceGroup

Volgende stappen