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
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
- Azure CLI of Azure PowerShell geïnstalleerd.
- Een AKS-cluster met:
- Workloadidentiteit ingeschakeld
- Beheerde identiteit gemaakt in hetzelfde abonnement
- Een Kubernetes-serviceaccount
- Referenties voor federatieve identiteit
- Dapr-clusterextensie geïnstalleerd op het AKS-cluster
- kubectl lokaal geïnstalleerd.
De opslagplaats klonen
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
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.
- Vul de aanbevolen informatie in volgens de quickstartinstructies 'Een opensource Redis-cache maken'.
- Selecteer Maken om de implementatie van het Redis-exemplaar te starten.
Resourcegegevens verifiëren
- Zodra de Redis-resource is geïmplementeerd, gaat u naar de overzichtspagina.
- 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
.
- De hostnaam, te vinden in de sectie Essentials van de overzichtspagina van de cache. De hostnaamindeling ziet er ongeveer als volgt uit:
- Navigeer naar de blade Verificatie en controleer of Microsoft Entra-verificatie is ingeschakeld voor uw resource.
Beheerde identiteit toevoegen
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.
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.
- Navigeer naar de blade Privé-eindpunt .
- Klik in het bovenste menu op Openbare netwerktoegang inschakelen.
De Dapr-onderdelen configureren
In redis.yaml
is 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
Navigeer in de code-editor van uw voorkeur naar de
deploy
map in het voorbeeld en openredis.yaml
.Vervang
redisHost
de 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
Pas het
redis.yaml
bestand toe met behulp van dekubectl apply
opdracht.kubectl apply -f ./deploy/redis.yaml
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.yaml
de podspecificatie wordt het label toegevoegd om de workloadidentiteit te gebruiken:
labels:
app: node
azure.workload.identity/use: "true"
Navigeer naar de
deploy
map en opennode.yaml
.Vervang de waarde van de tijdelijke aanduiding
<SERVICE_ACCOUNT_NAME>
voorserviceAccountName
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
Pas de Node.js-app-implementatie toe op uw cluster met behulp van de
kubectl apply
opdracht.kubectl apply -f ./deploy/node.yaml
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
Open uw service met behulp van de
kubectl get svc
opdracht.kubectl get svc nodeapp
Noteer de
EXTERNAL-IP
in de uitvoer.
De Node.js-service controleren
Bel
curl
de service met uwEXTERNAL-IP
.curl $EXTERNAL_IP/ports
Voorbeelduitvoer
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Dien een bestelling in bij de toepassing.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
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.yaml
de podspecificatie wordt het label toegevoegd om de workloadidentiteit te gebruiken:
labels:
app: node
azure.workload.identity/use: "true"
Navigeer naar de
deploy
map en openpython.yaml
.Vervang de waarde van de tijdelijke aanduiding
<SERVICE_ACCOUNT_NAME>
voorserviceAccountName
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
Implementeer de Python-app in uw Kubernetes-cluster met behulp van de
kubectl apply
opdracht.kubectl apply -f ./deploy/python.yaml
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.
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
Roep
curl
het 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
Azure Kubernetes Service