Freigeben über


Schnellstart: Bereitstellen einer Anwendung mithilfe der Dapr-Clustererweiterung für Azure Kubernetes Service (AKS) oder Arc-fähige Kubernetes-Instanzen

In dieser Schnellstartanleitung verwenden Sie die Dapr-Clustererweiterung in einem AKS- oder Kubernetes-Cluster mit Arc-Unterstützung. Sie stellen ein hello world-Beispiel bereit, das aus einer Python-Anwendung, die Nachrichten generiert, und einer Node.js-Anwendung besteht, die diese Nachrichten nutzt und dauerhaft speichert.

Voraussetzungen

Klonen des Repositorys

  1. Klonen Sie das Dapr-Schnellstartrepository mit dem Befehl git clone.

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Wechseln Sie in das Verzeichnis dapr-aks-extension-quickstart.

Erstellen und Konfigurieren eines Redis-Speichers

Öffnen Sie das Azure-Portal, um den Erstellungsflow für Azure Cache for Redis zu starten.

  1. Füllen Sie die empfohlenen Informationen gemäß den Schnellstartanweisungen „Erstellen eines Open-Source-Redis-Caches“ aus.
  2. Wählen Sie Erstellen aus, um die Bereitstellung der Redis-Instanz zu starten.

Überprüfen von Ressourceninformationen

  1. Navigieren Sie nach der Bereitstellung der Redis-Ressource zur Übersichtsseite.
  2. Notieren Sie sich Folgendes:
    • Der Hostname, der im Abschnitt Essentials der Cacheübersichtsseite zu finden ist. Das Hostnamenformat ähnelt: xxxxxx.redis.cache.windows.net.
    • Der SSL-Port, der im Blatt Erweiterte Einstellungen des Caches gefunden wurde. Der Standardwert ist 6380.
  3. Navigieren Sie zum Blatt Authentifizierung und überprüfen Sie, ob die Microsoft Entra-Authentifizierung für Ihre Ressource aktiviert ist.

Hinzufügen einer verwalteten Identität

  1. Geben Sie im Blatt Authentifizierung den Namen der verwalteten Identität ein, die Sie als Voraussetzung im Feld unter Aktivieren der Microsoft Entra-Authentifizierung erstellt haben.

    Screenshot des Felds, in dem Sie eine verwaltete Identität auswählen können, die als Redis-Benutzer hinzugefügt werden soll.

  2. Überprüfen Sie, ob Ihre verwaltete Identität als Redis-Benutzer mit zugewiesenen Zugriffsrichtlinienberechtigungen für Datenbesitzer hinzugefügt wird.

Aktivieren des Zugriffs aus öffentlichen Netzwerken

In diesem Szenario verwendet Ihr Redis-Cache den Zugriff auf öffentliche Netzwerke. Achten Sie darauf, Ressourcen zu bereinigen, wenn Sie mit dieser Schnellstartanleitung fertig sind.

  1. Navigieren Sie zum Blatt Privater Endpunkt.
  2. Klicken Sie im oberen Menü auf Aktivieren des öffentlichen Netzwerkzugriffs.

Konfigurieren der Dapr-Komponenten

In redis.yaml ist die Komponente für die Verwendung der Entra-ID-Authentifizierung mithilfe der Workload-Identität konfiguriert, die für AKS-Cluster aktiviert ist. Es sind keine Zugriffstasten erforderlich.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. Navigieren Sie in Ihrem bevorzugten Code-Editor im Beispiel zum deploy-Verzeichnis und öffnen Sie redis.yaml.

  2. Ersetzen Sie für redisHost den Platzhalterwert <REDIS_HOST>:<REDIS_PORT> durch den Redis-Cache-Hostnamen und den SSL-Port, den Sie zuvor im Azure-Portal gespeichert haben.

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

Anwenden der Konfiguration

  1. Wenden Sie die Datei redis.yaml mithilfe des Befehls kubectl apply an.

    kubectl apply -f ./deploy/redis.yaml
    
  2. Vergewissern Sie sich mithilfe des Befehls kubectl get components.redis, dass Ihr Zustandsspeicher erfolgreich konfiguriert wurde.

    kubectl get components.redis -o yaml
    

    Erwartete Ausgabe

    component.dapr.io/statestore created
    

Bereitstellen der Node.js-App mit dem Dapr-Sidecar

Konfigurieren der Node.js-App

In node.yaml hat die Pod-Spezifikation die Bezeichnung hinzugefügt, um die Workloadidentität zu verwenden:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigieren Sie zum Verzeichnis deploy und öffnen Sie node.yaml.

  2. Ersetzen Sie den Platzhalterwert <SERVICE_ACCOUNT_NAME> für serviceAccountName durch den Dienstkontonamen, den Sie erstellt haben.

    • Dieser Wert sollte dasselbe Dienstkonto sein, das Sie zum Erstellen der Verbundidentitätsanmeldeinformationen verwendet haben.

Anwenden der Konfiguration

  1. Wenden Sie die Bereitstellung der Node.js-App mit dem Befehl kubectl apply auf Ihren Cluster an.

    kubectl apply -f ./deploy/node.yaml
    
  2. Kubernetes-Bereitstellungen sind asynchron. Bevor Sie mit den nächsten Schritten fortfahren, stellen Sie sicher, dass die Bereitstellung mit dem folgenden Befehl abgeschlossen ist:

    kubectl rollout status deploy/nodeapp
    
  3. Greifen Sie mit dem Befehl kubectl get svc auf Ihren Dienst zu.

    kubectl get svc nodeapp
    
  4. Notieren Sie sich die EXTERNAL-IP aus der Ausgabe.

Überprüfen des Node.js-Diensts

  1. Rufen Sie mit curl den Dienst mit Ihrem EXTERNAL-IP auf.

    curl $EXTERNAL_IP/ports
    

    Beispielausgabe

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Übermitteln Sie einen Auftrag an die Anwendung.

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Bestätigen Sie die Bestellung.

    curl $EXTERNAL_IP/order
    

    Erwartete Ausgabe

    { "orderId": "42" }
    

Bereitstellen der Python-App mit dem Dapr-Sidecar

Konfigurieren Sie die Python-App

In python.yaml hat die Pod-Spezifikation die Bezeichnung hinzugefügt, um die Workloadidentität zu verwenden:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Navigieren Sie zum Verzeichnis deploy und öffnen Sie python.yaml.

  2. Ersetzen Sie den Platzhalterwert <SERVICE_ACCOUNT_NAME> für serviceAccountName durch den Dienstkontonamen, den Sie erstellt haben.

    • Dieser Wert sollte dasselbe Dienstkonto sein, das Sie zum Erstellen der Verbundidentitätsanmeldeinformationen verwendet haben.

Anwenden der Konfiguration

  1. Stellen Sie die Python-App mit dem Befehl kubectl apply in Ihrem Kubernetes-Cluster bereit.

    kubectl apply -f ./deploy/python.yaml
    
  2. Kubernetes-Bereitstellungen sind asynchron. Bevor Sie mit den nächsten Schritten fortfahren, stellen Sie sicher, dass die Bereitstellung mit dem folgenden Befehl abgeschlossen ist:

    kubectl rollout status deploy/pythonapp
    

Beobachten von Nachrichten und Bestätigen der Persistenz

Nachdem nun sowohl die Node.js- als auch die Python-Anwendung bereitgestellt wurden, können Sie sehen, wie Nachrichten eingehen.

  1. Rufen Sie die Protokolle der Node.js-App mithilfe des Befehls kubectl logs ab.

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

    Erwartete Ausgabe

    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. Rufen Sie den Auftragsendpunkt der Node.js-App mithilfe von curl auf, um den neuesten Auftrag zu erhalten.

    curl $EXTERNAL_IP/order
    

    In der Antwort sollte die neueste JSON-Codeausgabe angezeigt werden.

Bereinigen von Ressourcen

Wenn Sie nicht mehr beabsichtigen, die Ressourcen aus dieser Schnellstartanleitung zu verwenden, können Sie alle zugeordneten Ressourcen löschen, indem Sie die Ressourcengruppe entfernen.

Entfernen Sie die Ressourcengruppe, den Cluster, den Namespace und alle zugehörigen Ressourcen mithilfe des Befehls az group delete.

az group delete --name MyResourceGroup

Nächste Schritte