Démarrage rapide : Déployer une application avec l’extension de cluster Dapr pour Azure Kubernetes Service (AKS) ou Kubernetes activé pour Arc
Dans ce guide de démarrage rapide, utilisez l’extension de cluster Dapr dans un cluster AKS ou Kubernetes activé pour Arc. Vous déployez un hello world
exemple, qui se compose d’une application Python qui génère des messages et d’une application Node.js qui consomme et conserve les messages.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Azure CLI ou Azure PowerShell installé.
- Un cluster AKS avec :
- Identité de charge de travail activée
- Identité managée créée dans le même abonnement
- un compte de service Kubernetes
- Informations d’identification d’identité fédérée
- Extension de cluster Dapr installée sur le cluster AKS
- kubectl installé localement.
Cloner le référentiel
Clonez le Référentiel de démarrages rapides Dapr à l’aide de la commande
git clone
.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
Accédez au répertoire
dapr-aks-extension-quickstart
.
Créer et configurer un magasin Redis
Ouvrez le portail Azure pour démarrer le flux de création d’Azure Cache pour Redis.
- Renseignez les informations recommandées en fonction de les instructions de démarrage rapide « Créer un cache Redis open source ».
- Sélectionnez Créer pour démarrer le déploiement instance Redis.
Vérifier les informations de ressource
- Une fois la ressource Redis déployée, accédez à sa page de vue d’ensemble.
- Notez :
- Nom d’hôte, trouvé dans la section Essentials de la page vue d’ensemble du cache. Le format de nom d’hôte ressemble à :
xxxxxx.redis.cache.windows.net
. - Port SSL, trouvé dans le panneau Paramètres avancés du cache. La valeur par défaut est
6380
.
- Nom d’hôte, trouvé dans la section Essentials de la page vue d’ensemble du cache. Le format de nom d’hôte ressemble à :
- Accédez au panneau Authentification et vérifiez que l’authentification Microsoft Entra est activée sur votre ressource.
Ajouter une identité managée
Dans le panneau authentification, tapez le nom de l’identité managée que vous avez créée en tant que prérequis dans le champ sous la case à cocher Activer l’authentification Microsoft Entra.
Vérifiez que votre identité managée est ajoutée en tant qu’autorisations de stratégie d’accès au propriétaire des données attribuées par l’utilisateur Redis.
Activer l’accès public au réseau
Pour ce scénario, votre cache Redis utilise l’accès réseau public. Veillez à nettoyer les ressources une fois ce guide de démarrage rapide terminé.
- Accédez au panneau de point de terminaison privé.
- Cliquez sur Activer l’accès au réseau public dans le menu supérieur.
Configurer les composants Dapr
Dans redis.yaml
, le composant est configuré pour utiliser l’authentification Entra ID à l’aide de l’identité de charge de travail activée pour le cluster AKS. Aucune clé d’accès n’est requise.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
Dans votre éditeur de code préféré, accédez au répertoire
deploy
dans l’exemple et ouvrezredis.yaml
.Pour
redisHost
, remplacez l’espace réservé<REDIS_HOST>:<REDIS_PORT>
valeur par le nom d’hôte du cache Redis et le port SSL que vous avez enregistrés précédemment à partir du portail Azure.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Appliquer la configuration
Exécutez le fichier
redis.yaml
à l’aide de la commandekubectl apply
.kubectl apply -f ./deploy/redis.yaml
Vérifiez que votre magasin d’états a été correctement configuré à l’aide de la commande
kubectl get components.redis
.kubectl get components.redis -o yaml
Sortie attendue
component.dapr.io/statestore created
Déployer l’application Node.js avec le side-car Dapr
Configurer l’application Node.js
Dans node.yaml
, la spécification de pod a l’étiquette ajoutée pour utiliser l’identité de charge de travail,:
labels:
app: node
azure.workload.identity/use: "true"
Accédez au répertoire
deploy
et ouvreznode.yaml
.Remplacez la valeur
<SERVICE_ACCOUNT_NAME>
d’espace réservé pourserviceAccountName
par le nom du compte de service que vous avez créé.- Cette valeur doit être le même compte de service que celui que vous avez utilisé pour créer les informations d’identification d’identité fédérée.
Appliquer la configuration
Appliquez le déploiement de l’application Node.js à votre cluster avec la commande
kubectl apply
.kubectl apply -f ./deploy/node.yaml
Les déploiements Kubernetes sont asynchrones. Avant de passer aux étapes suivantes, vérifiez que le déploiement est terminé avec la commande suivante :
kubectl rollout status deploy/nodeapp
Déployez le service à l’aide de la commande
kubectl get svc
.kubectl get svc nodeapp
Notez le
EXTERNAL-IP
dans la sortie.
Vérifier le service Node.js
À l’aide de
curl
, appelez le service avec votreEXTERNAL-IP
.curl $EXTERNAL_IP/ports
Exemple de sortie
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Envoyez une commande à l’application.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
Confirmez la commande.
curl $EXTERNAL_IP/order
Sortie attendue
{ "orderId": "42" }
Déployer l’application Python avec le side-car Dapr
Configurer l’application Python
Dans python.yaml
, la spécification de pod a l’étiquette ajoutée pour utiliser l’identité de charge de travail,:
labels:
app: node
azure.workload.identity/use: "true"
Accédez au répertoire
deploy
et ouvrezpython.yaml
.Remplacez la valeur
<SERVICE_ACCOUNT_NAME>
d’espace réservé pourserviceAccountName
par le nom du compte de service que vous avez créé.- Cette valeur doit être le même compte de service que celui que vous avez utilisé pour créer les informations d’identification d’identité fédérée.
Appliquer la configuration
Déployez l’application Python sur votre cluster Kubernetes avec la commande
kubectl apply
.kubectl apply -f ./deploy/python.yaml
Les déploiements Kubernetes sont asynchrones. Avant de passer aux étapes suivantes, vérifiez que le déploiement est terminé avec la commande suivante :
kubectl rollout status deploy/pythonapp
Observer les messages et confirmer la persistance
Maintenant que les applications Node.js et Python sont déployées, vous pouvez surveiller les messages.
Obtenez les journaux de l’application Node.js à l’aide de la commande
kubectl logs
.kubectl logs --selector=app=node -c node --tail=-1
Sortie attendue
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
À l’aide de
curl
, appelez le point de terminaison de commande de l’application Node.js pour obtenir la dernière commande.curl $EXTERNAL_IP/order
Vous devez voir la dernière sortie JSON dans la réponse.
Nettoyer les ressources
Si vous n’envisagez plus d’utiliser les ressources de ce guide de démarrage rapide, vous pouvez supprimer toutes les ressources associées en supprimant le groupe de ressources.
Supprimez le groupe de ressources, le cluster, l’espace de noms, et toutes les ressources associées à l’aide de la commande az group delete.
az group delete --name MyResourceGroup
Étapes suivantes
Azure Kubernetes Service