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
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Zainstalowany interfejs wiersza polecenia platformy Azure lub program Azure PowerShell .
- Klaster usługi AKS z:
- Włączono tożsamość obciążenia
- Tożsamość zarządzana utworzona w tej samej subskrypcji
- Konto usługi Kubernetes
- Poświadczenia tożsamości federacyjnej
- Rozszerzenie klastra Dapr zainstalowane w klastrze usługi AKS
- narzędzie kubectl zainstalowane lokalnie.
Klonowanie repozytorium
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
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.
- Wypełnij zalecane informacje zgodnie z instrukcjami szybkiego startu "Tworzenie pamięci podręcznej Redis Cache typu open source".
- Wybierz pozycję Utwórz , aby rozpocząć wdrażanie wystąpienia usługi Redis.
Weryfikowanie informacji o zasobie
- Po wdrożeniu zasobu usługi Redis przejdź do strony przeglądu.
- 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
.
- Nazwa hosta znajduje się w sekcji Podstawy strony przeglądu pamięci podręcznej. Format nazwy hosta wygląda podobnie do:
- Przejdź do bloku Uwierzytelnianie i sprawdź, czy w zasobie jest włączone uwierzytelnianie entra firmy Microsoft.
Dodawanie tożsamości zarządzanej
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.
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.
- Przejdź do bloku Prywatny punkt końcowy .
- Kliknij pozycję Włącz dostęp do sieci publicznej z górnego menu.
Konfigurowanie składników języka Dapr
W redis.yaml
systemie 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
W preferowanym edytorze kodu przejdź do
deploy
katalogu w przykładzie i otwórz plikredis.yaml
.W polu
redisHost
zastą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
redis.yaml
Zastosuj plik przy użyciukubectl apply
polecenia .kubectl apply -f ./deploy/redis.yaml
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.yaml
pliku specyfikacja zasobnika ma etykietę dodaną do korzystania z tożsamości obciążenia:
labels:
app: node
azure.workload.identity/use: "true"
Przejdź do
deploy
katalogu i otwórz pliknode.yaml
.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
Zastosuj wdrożenie aplikacji Node.js do klastra
kubectl apply
przy użyciu polecenia .kubectl apply -f ./deploy/node.yaml
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
Uzyskaj dostęp do usługi przy użyciu
kubectl get svc
polecenia .kubectl get svc nodeapp
Zanotuj element
EXTERNAL-IP
w danych wyjściowych.
Weryfikowanie usługi Node.js
Za pomocą polecenia
curl
wywołaj usługę za pomocą poleceniaEXTERNAL-IP
.curl $EXTERNAL_IP/ports
Przykładowe dane wyjściowe
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Prześlij zamówienie do aplikacji.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
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.yaml
pliku specyfikacja zasobnika ma etykietę dodaną do korzystania z tożsamości obciążenia:
labels:
app: node
azure.workload.identity/use: "true"
Przejdź do
deploy
katalogu i otwórz plikpython.yaml
.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
Wdróż aplikację w języku Python w klastrze Kubernetes przy użyciu
kubectl apply
polecenia .kubectl apply -f ./deploy/python.yaml
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.
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
Za pomocą metody
curl
wywoł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
Azure Kubernetes Service