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 vytvoříte obor názvů a frontu služby Azure Service Bus pro testování aplikace. Naučíte se, jak:

  • 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 vytvoří fakturovatelné Azure Service Bus prostředky. K provedení těchto kroků použijte identitu, která může vytvářet a spravovat prostředky služby Service Bus a aktualizovat úlohy AKS ve skupině prostředků, například Contributor nebo Owner.

Tento kurz vyžaduje instalaci desktopové verze AKS.

Vytvořte proměnné prostředí

  • Pomocí Azure CLI vytvořte následující proměnné prostředí, které se použijí pro příkazy v tomto kurzu:

    LOC_NAME=westus2
    RAND=$RANDOM
    RG_NAME=myResourceGroup
    AKS_NAME=myAKSCluster
    SB_NS=sb-store-demo-$RAND
    

Vytvořte obor názvů a frontu služby Azure Service Bus

V předchozích kurzech jste použili kontejner RabbitMQ k uložení objednávek podaných order-service. V tomto kurzu použijete obor názvů služby Azure Service Bus jako kontejner pro prostředky služby Service Bus v rámci aplikace. K příjmu a odesílání 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.

V tomto toku order-service odesílá zprávy do fronty orders s použitím autorizačního pravidla sender a klíče, které vytvoříte v této části.

Pomocí Azure CLI vytvořte následující proměnné prostředí, které se použijí pro příkazy v tomto kurzu.

  1. Vytvořte obor názvů služby Azure Service Bus pomocí příkazu az servicebus namespace create.

    az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
    

    Pokračujte, jakmile se příkaz úspěšně dokončí a vrátí podrobnosti oboru názvů.

  2. Vytvořte frontu služby Azure Service Bus pomocí příkazu az servicebus queue create.

    az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
    

    Než budete pokračovat, ověřte, že fronta existuje:

    az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsv
    
  3. 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
    
  4. Získejte přihlašovací údaje služby Azure Service Bus pro pozdější použití pomocí az servicebus namespace show příkazů a az 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
    

    Uložte tyto hodnoty pro krok aktualizace manifestu:

    • <REPLACE_WITH_YOUR_ACR_NAME>: název vaší služby Azure Container Registry z předchozích kurzů.
    • <REPLACE_WITH_YOUR_SB_NS_HOSTNAME>: $SB_NS.servicebus.windows.net.
    • <REPLACE_WITH_YOUR_SB_SENDER_PASSWORD> primaryKey: hodnota z výstupu příkazu.

Aktualizace souboru manifestu Kubernetes

  1. Přejděte na Projekty v desktopové verzi AKS a vyberte projekt, my-dev-frontendkterý jste vytvořili v předchozím kurzu.

  2. Vyberte kartu Prostředky, a pak vyberte Úlohy>Nasazení: order-service. Snímek obrazovky zobrazující úpravu nasazení, Prostředky, Pracovní zátěže, Nasazení, Order-service.

  3. Vyberte Editor.

  4. Odeberte existující rabbitmq sekce StatefulSet, ConfigMap a Service. Nahraďte existující order-service část Nasazení následujícím obsahem. Zkopírujte a vložte obsah:

    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
    

    Snímek obrazovky znázorňující použití editoru k aktualizaci nasazení YAML

    Poznámka:

    Přidávat citlivé informace, například klíče rozhraní API, přímo do souborů manifestů Kubernetes není bezpečné a mohou být omylem odeslány do repozitářů kódu. Tento příklad ho přidá 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.

  5. Uložte aktualizaci výběrem možnosti Uložit a použít.

  6. Než budete pokračovat, ověřte v zobrazení workloadů, že aktualizované nasazení order-service dosáhlo zdravého stavu.

Nasazení aktualizované aplikace

  1. Pomocí příkazu nasaďte aktualizovanou kubectl apply aplikaci.

    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
    
  2. Ověřte, že je spuštěné aktualizované nasazení.

    kubectl get pods
    

Pokračujte, až budou pody aplikace ve stavu Running.

Testování aplikace

Zadání ukázkové objednávky

Desktopová aplikace AKS

Veřejnou IP adresu zjistíte tak, že přejdete na Prostředek>Síť>Služba: store-front>Externí IP.

Snímek obrazovky znázorňující získání externí IP adresy

Příkazový řádek

  1. Pomocí příkazu získejte externí IP adresu store-front služby kubectl get service .

    kubectl get service store-front
    

    Pokud EXTERNAL-IP ano <pending>, počkejte minutu a spusťte příkaz znovu, dokud se nezobrazí veřejná IP adresa.

  2. Pomocí prohlížeče store-frontpřejděte na externí IP adresu http://<external-ip> služby.

  3. Objednávku umístěte tak, že vyberete produkt a vyberete Přidat do košíku.

  4. Výběrem košíku zobrazte objednávku a pak vyberte Rezervovat.

Zobrazení pořadí ve frontě služby Azure Service Bus

  1. Přejděte na portál Azure a otevřete obor názvů Azure Service Bus, který jste vytvořili dříve.
  2. V části Entity vyberte Fronty a pak vyberte frontu objednávek .
  3. Ve frontě objednávek vyberte Service Bus Explorer.
  4. 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.