Partager via


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 worldexemple, 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

Cloner le référentiel

  1. 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
    
  2. 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.

  1. Renseignez les informations recommandées en fonction de les instructions de démarrage rapide « Créer un cache Redis open source ».
  2. Sélectionnez Créer pour démarrer le déploiement instance Redis.

Vérifier les informations de ressource

  1. Une fois la ressource Redis déployée, accédez à sa page de vue d’ensemble.
  2. 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.
  3. Accédez au panneau Authentification et vérifiez que l’authentification Microsoft Entra est activée sur votre ressource.

Ajouter une identité managée

  1. 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.

    Capture d’écran montrant le champ dans lequel vous pouvez sélectionner une identité managée à ajouter en tant qu’utilisateur Redis.

  2. 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é.

  1. Accédez au panneau de point de terminaison privé.
  2. 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
  1. Dans votre éditeur de code préféré, accédez au répertoire deploy dans l’exemple et ouvrez redis.yaml.

  2. 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

  1. Exécutez le fichier redis.yaml à l’aide de la commande kubectl apply.

    kubectl apply -f ./deploy/redis.yaml
    
  2. 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"
  1. Accédez au répertoire deploy et ouvrez node.yaml.

  2. Remplacez la valeur <SERVICE_ACCOUNT_NAME> d’espace réservé pour serviceAccountName 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

  1. Appliquez le déploiement de l’application Node.js à votre cluster avec la commande kubectl apply.

    kubectl apply -f ./deploy/node.yaml
    
  2. 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
    
  3. Déployez le service à l’aide de la commande kubectl get svc.

    kubectl get svc nodeapp
    
  4. Notez le EXTERNAL-IP dans la sortie.

Vérifier le service Node.js

  1. À l’aide de curl, appelez le service avec votre EXTERNAL-IP.

    curl $EXTERNAL_IP/ports
    

    Exemple de sortie

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Envoyez une commande à l’application.

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. 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"
  1. Accédez au répertoire deploy et ouvrez python.yaml.

  2. Remplacez la valeur <SERVICE_ACCOUNT_NAME> d’espace réservé pour serviceAccountName 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

  1. Déployez l’application Python sur votre cluster Kubernetes avec la commande kubectl apply.

    kubectl apply -f ./deploy/python.yaml
    
  2. 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.

  1. 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
    
  2. À 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