Udostępnij za pośrednictwem


Szybki start: wdrażanie aplikacji przy użyciu rozszerzenia klastra Dapr dla usługi Azure Kubernetes Service (AKS) lub platformy Kubernetes z obsługą usługi Arc

W tym przewodniku Szybki start użyjesz rozszerzenia klastra Dapr w klastrze Kubernetes obsługującym usługę AKS lub Arc. Wdrażasz hello world przykład, który składa się z aplikacji w języku Python, która generuje komunikaty i Node.js aplikację, która używa i utrwala komunikaty.

Wymagania wstępne

Klonowanie repozytorium

  1. Sklonuj repozytorium Szybki start języka Dapr przy użyciu git clone polecenia .

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Przejdź do dapr-aks-extension-quickstart katalogu.

Tworzenie i konfigurowanie magazynu Redis

Otwórz witrynę Azure Portal, aby uruchomić przepływ tworzenia usługi Azure Cache for Redis.

  1. Wypełnij zalecane informacje zgodnie z instrukcjami szybkiego startu "Tworzenie pamięci podręcznej Redis Cache typu open source".
  2. Wybierz pozycję Utwórz , aby rozpocząć wdrażanie wystąpienia usługi Redis.

Weryfikowanie informacji o zasobie

  1. Po wdrożeniu zasobu usługi Redis przejdź do strony przeglądu.
  2. Zanotuj następujące kwestie:
    • Nazwa hosta znajduje się w sekcji Podstawy strony przeglądu pamięci podręcznej. Format nazwy hosta wygląda podobnie do: xxxxxx.redis.cache.windows.net.
    • Port SSL znajdujący się w bloku Ustawienia zaawansowane pamięci podręcznej. Domyślna wartość to 6380.
  3. Przejdź do bloku Uwierzytelnianie i sprawdź, czy w zasobie jest włączone uwierzytelnianie entra firmy Microsoft.

Dodawanie tożsamości zarządzanej

  1. W bloku Uwierzytelnianie wpisz nazwę tożsamości zarządzanej utworzonej jako wymaganie wstępne w polu w obszarze Wyboru Włącz uwierzytelnianie firmy Microsoft Entra.

    Zrzut ekranu przedstawiający pole, w którym można wybrać tożsamość zarządzaną do dodania jako użytkownik usługi Redis.

  2. Sprawdź, czy tożsamość zarządzana została dodana jako uprawnienia zasad dostępu właściciela danych przypisanego przez użytkownika usługi Redis.

Włączanie dostępu do sieci publicznej

W tym scenariuszu pamięć podręczna Redis Cache używa dostępu do sieci publicznej. Pamiętaj, aby wyczyścić zasoby po zakończeniu pracy z tym przewodnikiem Szybki start.

  1. Przejdź do bloku Prywatny punkt końcowy .
  2. Kliknij pozycję Włącz dostęp do sieci publicznej z górnego menu.

Konfigurowanie składników języka Dapr

W redis.yamlsystemie składnik jest skonfigurowany do używania uwierzytelniania entra ID przy użyciu tożsamości obciążenia włączonej dla klastra usługi AKS. Nie są wymagane żadne klucze dostępu.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. W preferowanym edytorze kodu przejdź do deploy katalogu w przykładzie i otwórz plik redis.yaml.

  2. W polu redisHostzastąp wartość symbolu zastępczego <REDIS_HOST>:<REDIS_PORT> nazwą hosta pamięci podręcznej Redis Cache i portem SSL zapisanym wcześniej w witrynie Azure Portal.

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

Stosowanie konfiguracji

  1. redis.yaml Zastosuj plik przy użyciu kubectl apply polecenia .

    kubectl apply -f ./deploy/redis.yaml
    
  2. Sprawdź, czy magazyn stanów został pomyślnie skonfigurowany przy użyciu kubectl get components.redis polecenia .

    kubectl get components.redis -o yaml
    

    Oczekiwane dane wyjściowe

    component.dapr.io/statestore created
    

Wdrażanie aplikacji Node.js za pomocą przyczepki Dapr

Konfigurowanie aplikacji Node.js

W node.yamlpliku specyfikacja zasobnika ma etykietę dodaną do korzystania z tożsamości obciążenia:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Przejdź do deploy katalogu i otwórz plik node.yaml.

  2. Zastąp wartość symbolu zastępczego <SERVICE_ACCOUNT_NAME> nazwą serviceAccountName utworzonego konta usługi.

    • Ta wartość powinna być tym samym kontem usługi, które zostało użyte do utworzenia poświadczeń tożsamości federacyjnej.

Stosowanie konfiguracji

  1. Zastosuj wdrożenie aplikacji Node.js do klastra kubectl apply przy użyciu polecenia .

    kubectl apply -f ./deploy/node.yaml
    
  2. Wdrożenia platformy Kubernetes są asynchroniczne, więc przed przejściem do następnych kroków sprawdź, czy wdrożenie zostało ukończone przy użyciu następującego polecenia:

    kubectl rollout status deploy/nodeapp
    
  3. Uzyskaj dostęp do usługi przy użyciu kubectl get svc polecenia .

    kubectl get svc nodeapp
    
  4. Zanotuj element EXTERNAL-IP w danych wyjściowych.

Weryfikowanie usługi Node.js

  1. Za pomocą polecenia curlwywołaj usługę za pomocą polecenia EXTERNAL-IP.

    curl $EXTERNAL_IP/ports
    

    Przykładowe dane wyjściowe

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Prześlij zamówienie do aplikacji.

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Potwierdź zamówienie.

    curl $EXTERNAL_IP/order
    

    Oczekiwane dane wyjściowe

    { "orderId": "42" }
    

Wdrażanie aplikacji w języku Python przy użyciu przyczepki języka Dapr

Konfigurowanie aplikacji w języku Python

W python.yamlpliku specyfikacja zasobnika ma etykietę dodaną do korzystania z tożsamości obciążenia:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Przejdź do deploy katalogu i otwórz plik python.yaml.

  2. Zastąp wartość symbolu zastępczego <SERVICE_ACCOUNT_NAME> nazwą serviceAccountName utworzonego konta usługi.

    • Ta wartość powinna być tym samym kontem usługi, które zostało użyte do utworzenia poświadczeń tożsamości federacyjnej.

Stosowanie konfiguracji

  1. Wdróż aplikację w języku Python w klastrze Kubernetes przy użyciu kubectl apply polecenia .

    kubectl apply -f ./deploy/python.yaml
    
  2. Wdrożenia platformy Kubernetes są asynchroniczne, więc przed przejściem do następnych kroków sprawdź, czy wdrożenie zostało ukończone przy użyciu następującego polecenia:

    kubectl rollout status deploy/pythonapp
    

Obserwowanie komunikatów i potwierdzanie trwałości

Teraz, gdy wdrażane są zarówno aplikacje Node.js, jak i Python, możesz obserwować komunikaty.

  1. Pobierz dzienniki aplikacji Node.js przy użyciu kubectl logs polecenia .

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

    Oczekiwane dane wyjściowe

    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. Za pomocą metody curlwywołaj punkt końcowy zamówienia aplikacji Node.js, aby uzyskać najnowsze zamówienie.

    curl $EXTERNAL_IP/order
    

    W odpowiedzi powinny zostać wyświetlone najnowsze dane wyjściowe JSON.

Czyszczenie zasobów

Jeśli nie planujesz już korzystać z zasobów z tego przewodnika Szybki start, możesz usunąć wszystkie skojarzone zasoby, usuwając grupę zasobów.

Usuń grupę zasobów, klaster, przestrzeń nazw i wszystkie powiązane zasoby przy użyciu polecenia az group delete .

az group delete --name MyResourceGroup

Następne kroki