Kurz – Použití služeb PaaS s clusterem Azure Kubernetes Service (AKS)
Pomocí Kubernetes můžete vyvíjet a spouštět aplikace pomocí služeb PaaS, jako je Azure Service Bus.
V tomto kurzu, který je 5. částí sedmidílné části, vytvoříte obor názvů a frontu služby Azure Service Bus pro testování vaší aplikace. Získáte informace pro:
- Vytvořte obor názvů a frontu služby Azure Service Bus.
- Aktualizujte soubor manifestu Kubernetes tak, aby používal frontu služby Azure Service Bus.
- Otestujte aktualizovanou aplikaci tak, že umístíte objednávku.
Než začnete
V předchozích kurzech jste aplikaci zabalili do image kontejneru, nahráli ji do služby Azure Container Registry, vytvořili cluster Kubernetes a nasadili aplikaci. K dokončení tohoto kurzu potřebujete předem vytvořený soubor manifestu Kubernetes aks-store-quickstart.yaml
. Tento soubor byl součástí zdrojového kódu aplikace v předchozím kurzu. Ujistěte se, že jste naklonovali úložiště a změnili adresáře do klonovaného úložiště. Pokud jste tyto kroky ještě nedokončili a chcete postupovat podle pokynů, začněte kurzem 1 – Příprava aplikace pro AKS.
Tento kurz vyžaduje Azure CLI verze 2.34.1 nebo novější. Verzi zjistíte spuštěním příkazu az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Vytvoření proměnných prostředí
Vytvořte následující proměnné prostředí, které se použijí pro příkazy v tomto kurzu:
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Vytvoření oboru názvů a fronty služby Azure Service Bus
V předchozíchkurzch order-service
V tomto kurzu použijete obor názvů služby Azure Service Bus k poskytnutí kontejneru oborů pro prostředky služby Service Bus v rámci aplikace. K odesílání a příjmu zpráv mezi komponentami aplikace také používáte frontu služby Azure Service Bus. Další informace o službě Azure Service Bus najdete v tématu Vytvoření oboru názvů a fronty služby Azure Service Bus.
Pomocí příkazu vytvořte obor názvů
az servicebus namespace create
služby Azure Service Bus.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
Pomocí příkazu vytvořte frontu
az servicebus queue create
služby Azure Service Bus.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
Pomocí příkazu vytvořte autorizační pravidlo
az servicebus queue authorization-rule create
služby Azure Service Bus.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
Získejte přihlašovací údaje služby Azure Service Bus pro pozdější použití pomocí
az servicebus namespace show
příkazů aaz servicebus queue authorization-rule keys list
příkazů.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
Aktualizace souboru manifestu Kubernetes
Nakonfigurujte
kubectl
připojení ke clusteruaz aks get-credentials
pomocí příkazu.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Otevřete soubor
aks-store-quickstart.yaml
v textovém editoru.Odeberte existující
rabbitmq
oddíly StatefulSet, ConfigMap a Service a nahraďte existujícíorder-service
oddíl Nasazení následujícím obsahem: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
Poznámka:
Přímé přidávání citlivých informací, jako jsou klíče rozhraní API, do souborů manifestu Kubernetes není bezpečné a může se omylem potvrdit do úložišť kódu. Přidali jsme ho sem kvůli jednoduchosti. Pro produkční úlohy použijte spravovanou identitu k ověření pomocí služby Azure Service Bus nebo uložení tajných kódů ve službě Azure Key Vault.
Uložte a zavřete aktualizovaný
aks-store-quickstart.yaml
soubor.
Nasazení aktualizované aplikace
Nasaďte aktualizovanou
kubectl apply
aplikaci pomocí příkazu.kubectl apply -f aks-store-quickstart.yaml
Následující příklad výstupu ukazuje úspěšně aktualizované prostředky:
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
Testování aplikace
Zadání ukázkové objednávky
Pomocí příkazu získejte externí IP adresu
store-front
službykubectl get service
.kubectl get service store-front
Pomocí prohlížeče
http://<external-ip>
přejděte na externí IP adresustore-front
služby.Objednávku umístěte tak, že vyberete produkt a vyberete Přidat do košíku.
Výběrem košíku zobrazte objednávku a pak vyberte Rezervovat.
Zobrazení pořadí ve frontě služby Azure Service Bus
- Přejděte na web Azure Portal a otevřete obor názvů služby Azure Service Bus, který jste vytvořili dříve.
- V části Entity vyberte Fronty a pak vyberte frontu objednávek .
- Ve frontě objednávek vyberte Service Bus Explorer.
- Výběrem možnosti Náhled od začátku zobrazíte objednávku, kterou jste odeslali.
Další kroky
V tomto kurzu jste použili službu Azure Service Bus k aktualizaci a otestování ukázkové aplikace. Naučili jste se:
- Vytvořte obor názvů a frontu služby Azure Service Bus.
- Aktualizujte soubor manifestu Kubernetes tak, aby používal frontu služby Azure Service Bus.
- Otestujte aktualizovanou aplikaci tak, že umístíte objednávku.
V dalším kurzu se naučíte škálovat aplikaci v AKS.
Azure Kubernetes Service