Samouczek — używanie usług PaaS z klastrem usługi Azure Kubernetes Service (AKS)
Za pomocą platformy Kubernetes można używać usług PaaS, takich jak Azure Service Bus, do tworzenia i uruchamiania aplikacji.
W tym samouczku, część piąta z siedmiu, utworzysz przestrzeń nazw i kolejkę usługi Azure Service Bus, aby przetestować aplikację. Dowiedz się, jak odbywa się:
- Utwórz przestrzeń nazw i kolejkę usługi Azure Service Bus.
- Zaktualizuj plik manifestu kubernetes, aby użyć 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 został dołączony do kodu źródłowego aplikacji w poprzednim samouczku. Upewnij się, że sklonujesz repozytorium i zmieniono katalogi do 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 wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.34.1 lub nowszej. Uruchom polecenie az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Tworzenie zmiennych środowiskowych
Utwórz następujące zmienne środowiskowe do użycia dla poleceń w tym samouczku:
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Tworzenie przestrzeni nazw i kolejki 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 udostępnić kontener określania zakresu dla zasobów usługi Service Bus w aplikacji. Kolejka usługi Azure Service Bus służy również 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.
Utwórz przestrzeń nazw usługi Azure Service Bus przy użyciu
az servicebus namespace create
polecenia .az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
Utwórz kolejkę usługi Azure Service Bus przy użyciu
az servicebus queue create
polecenia .az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
Utwórz regułę autoryzacji usługi Azure Service Bus przy użyciu
az servicebus queue authorization-rule create
polecenia .az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
Uzyskaj poświadczenia usługi Azure Service Bus do późniejszego
az servicebus namespace show
użycia przy użyciu poleceń iaz 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 tsv
Aktualizowanie pliku manifestu platformy Kubernetes
Skonfiguruj
kubectl
, aby nawiązać połączenie z klastremaz aks get-credentials
przy użyciu polecenia .az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Otwórz plik
aks-store-quickstart.yaml
w edytorze tekstów.Usuń istniejące
rabbitmq
sekcje StatefulSet, ConfigMap i Service i zastąp istniejącąorder-service
sekcję Wdrażanie następującą zawartością: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
Uwaga
Bezpośrednie dodawanie poufnych informacji, takich jak klucze interfejsu API, do plików manifestu kubernetes nie jest bezpieczne i może zostać przypadkowo zatwierdzone w repozytoriach kodu. Dodaliśmy to tutaj 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.
Zapisz i zamknij zaktualizowany
aks-store-quickstart.yaml
plik.
Wdrażanie zaktualizowanej aplikacji
Wdróż zaktualizowaną aplikację
kubectl apply
przy użyciu polecenia .kubectl apply -f aks-store-quickstart.yaml
W 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 unchanged
Testowanie aplikacji
Umieszczanie przykładowej kolejności
Pobierz zewnętrzny adres
store-front
IP usługi przy użyciukubectl get service
polecenia .kubectl get service store-front
Przejdź do zewnętrznego
store-front
adresu IP usługi w przeglądarce przy użyciu poleceniahttp://<external-ip>
.Umieść zamówienie, wybierając produkt i wybierając pozycję Dodaj do koszyka.
Wybierz pozycję Koszyk , aby wyświetlić zamówienie, a następnie wybierz pozycję Wyewidencjonuj.
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 Jednostki wybierz pozycję Kolejki, a następnie wybierz kolejkę zamówień.
- W kolejce zamówień wybierz pozycję Eksplorator usługi Service Bus.
- Wybierz pozycję Zobacz od początku , aby wyświetlić przesłane zamówienie.
Następne kroki
W tym samouczku użyto usługi Azure Service Bus do zaktualizowania i przetestowania przykładowej aplikacji. W tym samouczku omówiono:
- Utwórz przestrzeń nazw i kolejkę usługi Azure Service Bus.
- Zaktualizuj plik manifestu kubernetes, aby użyć 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.
Azure Kubernetes Service