Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za pomocą platformy Kubernetes można używać usług PaaS, takich jak Azure Service Bus, do tworzenia i uruchamiania aplikacji.
W tym samouczku utworzysz przestrzeń nazw i kolejkę usługi Azure Service Bus, aby przetestować aplikację. Dowiesz się, jak:
- Utwórz przestrzeń nazw i kolejkę usługi Azure Service Bus.
- Zaktualizuj plik manifestu Kubernetes tak, aby korzystał z kolejki usługi Azure Service Bus.
- Przetestuj zaktualizowaną aplikację, składając zamówienie.
Zanim rozpoczniesz
W poprzednich samouczkach spakujesz aplikację do obrazu kontenera, przekazano obraz do usługi Azure Container Registry, utworzono klaster Kubernetes i wdrożono aplikację. Do ukończenia tego samouczka potrzebujesz wstępnie utworzonego pliku manifestu usługi Kubernetes aks-store-quickstart.yaml. Ten plik do pobrania był dołączony do kodu źródłowego aplikacji w poprzednim samouczku. Upewnij się, że sklonowano repozytorium i przejdź do katalogu sklonowanego repozytorium. Jeśli te kroki nie zostały wykonane i chcesz wykonać te czynności, zacznij od samouczka 1 — Przygotowywanie aplikacji dla usługi AKS.
Ten samouczek tworzy zasoby platformy Azure Service Bus objęte opłatami. Aby wykonać te kroki, użyj tożsamości, która umożliwia tworzenie zasobów Service Bus i zarządzanie nimi oraz aktualizowanie obciążeń usługi AKS w grupie zasobów, takich jak Współautor lub Właściciel.
Ten samouczek wymaga zainstalowania programu AKS desktop.
Tworzenie zmiennych środowiskowych
Użyj Azure CLI, aby utworzyć następujące zmienne środowiskowe do użycia dla poleceń w tym samouczku:
LOC_NAME=westus2 RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Utwórz przestrzeń nazw i kolejkę usługi Azure Service Bus
W poprzednich samouczkach użyto kontenera RabbitMQ do przechowywania zamówień przesłanych przez program order-service. W tym samouczku użyjesz przestrzeni nazw usługi Azure Service Bus, aby zapewnić kontener wyznaczający zakres dla zasobów usługi Service Bus w aplikacji. Korzystasz również z kolejki usługi Azure Service Bus do wysyłania i odbierania komunikatów między składnikami aplikacji. Aby uzyskać więcej informacji na temat usługi Azure Service Bus, zobacz Tworzenie przestrzeni nazw i kolejki usługi Azure Service Bus.
W tym przepływie order-service wysyła komunikaty do kolejki orders za pomocą reguły autoryzacji sender i klucza, które tworzysz w tej sekcji.
Użyj Azure CLI, aby utworzyć następujące zmienne środowiskowe do użycia dla poleceń w tym samouczku.
Utwórz przestrzeń nazw Azure Service Bus za pomocą polecenia
az servicebus namespace create.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMEKontynuuj po pomyślnym zakończeniu polecenia i zwróceniu szczegółów przestrzeni nazw.
Utwórz kolejkę usługi Azure Service Bus przy użyciu
az servicebus queue createpolecenia .az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NSPrzed kontynuowaniem sprawdź, czy kolejka istnieje:
az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsvUtwórz regułę autoryzacji usługi Azure Service Bus przy użyciu
az servicebus queue authorization-rule createpolecenia .az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights SendPobierz poświadczenia usługi Azure Service Bus do późniejszego użycia za pomocą poleceń
az servicebus namespace showiaz servicebus queue authorization-rule keys list.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsvZapisz następujące wartości dla kroku aktualizacji manifestu:
-
<REPLACE_WITH_YOUR_ACR_NAME>: nazwa Twojego Azure Container Registry z poprzednich samouczków. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: wartośćprimaryKeyz danych wyjściowych polecenia.
-
Aktualizowanie pliku manifestu platformy Kubernetes
Przejdź do Projekty w aplikacji komputerowej AKS i wybierz ten utworzony w poprzednim samouczku,
my-dev-frontend.Wybierz kartę Zasoby, a następnie wybierz Obciążenia>Wdrożenie: order-service.
Wybierz Edytor.
Usuń istniejące
rabbitmqsekcje StatefulSet, ConfigMap i Service. Zastąp istniejącąorder-servicesekcję Wdrażanie następującą zawartością. Skopiuj i wklej zawartość:apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3
Uwaga
Bezpośrednie umieszczanie poufnych informacji, takich jak klucze API, w plikach manifestów Kubernetes nie jest bezpieczne i może skutkować ich przypadkowym zatwierdzeniem w repozytoriach kodu. Ten przykład dodaje go dla uproszczenia. W przypadku obciążeń produkcyjnych użyj tożsamości zarządzanej do uwierzytelniania w usłudze Azure Service Bus lub przechowywania wpisów tajnych w usłudze Azure Key Vault.
Utrwalij aktualizację, wybierając pozycję Zapisz i zastosuj.
Przed kontynuowaniem sprawdź, czy zaktualizowane
order-servicewdrożenie osiągnie stan dobrej kondycji w widoku obciążenia.
Wdrażanie zaktualizowanej aplikacji
Wdróż zaktualizowaną aplikację
kubectl applyprzy użyciu polecenia .kubectl apply -f aks-store-quickstart.yamlW poniższych przykładowych danych wyjściowych przedstawiono pomyślnie zaktualizowane zasoby:
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchangedSprawdź, czy zaktualizowane wdrożenie jest uruchomione.
kubectl get pods
Kontynuuj, gdy zasobniki aplikacji są w Running stanie.
Testowanie aplikacji
Złóż przykładowe zamówienie
AKS Desktop
Uzyskaj publiczny adres IP, przechodząc do Zasób>Sieć>Usługa: store-front>Zewnętrzny adres IP.
Wiersz polecenia
Pobierz zewnętrzny adres IP usługi
store-frontza pomocą poleceniakubectl get service.kubectl get service store-frontJeśli
EXTERNAL-IPto<pending>, odczekaj minutę i ponownie uruchom polecenie, aż pojawi się publiczny adres IP.Przejdź w przeglądarce do zewnętrznego adresu IP usługi
store-front, używająchttp://<external-ip>.Umieść zamówienie, wybierając produkt i wybierając pozycję Dodaj do koszyka.
Wybierz pozycję Koszyk, aby wyświetlić swoje zamówienie, a następnie wybierz pozycję Realizuj zakup.
Wyświetlanie kolejności w kolejce usługi Azure Service Bus
- Przejdź do witryny Azure Portal i otwórz utworzoną wcześniej przestrzeń nazw usługi Azure Service Bus.
- W obszarze Encje wybierz opcję Kolejki, a następnie wybierz kolejkę zamówienia.
- W kolejce orders wybierz pozycję Service Bus Explorer.
- Wybierz pozycję Zobacz od początku , aby wyświetlić przesłane zamówienie.
Następne kroki
W tym samouczku użyłeś usługi Azure Service Bus do zaktualizowania i przetestowania przykładowej aplikacji. Wiesz już, jak:
- Utwórz przestrzeń nazw i kolejkę usługi Azure Service Bus.
- Zaktualizuj plik manifestu Kubernetes tak, aby korzystał z kolejki usługi Azure Service Bus.
- Przetestuj zaktualizowaną aplikację, składając zamówienie.
W następnym samouczku dowiesz się, jak skalować aplikację w usłudze AKS.