Självstudie – Använda PaaS-tjänster med ett AKS-kluster (Azure Kubernetes Service)

Med Kubernetes kan du använda PaaS-tjänster, till exempel Azure Service Bus, för att utveckla och köra dina program.

I den här självstudien, del fem av sju, skapar du ett Azure Service Bus-namnområde och en kö för att testa programmet. Du lär dig att:

  • Skapa ett Azure Service Bus-namnområde och en kö.
  • Uppdatera Kubernetes-manifestfilen så att den använder Azure Service Bus-kön.
  • Testa det uppdaterade programmet genom att göra en beställning.

Innan du börjar

I tidigare självstudier paketerade du ett program i en containeravbildning, laddade upp avbildningen till Azure Container Registry, skapade ett Kubernetes-kluster och distribuerade ett program. I den här självstudien behöver du Kubernetes-manifestfilen aks-store-quickstart.yaml som skapats i förväg. Den här filnedladdningen ingick i programmets källkod i en tidigare självstudie. Kontrollera att du klonade lagringsplatsen och ändrade kataloger till den klonade lagringsplatsen. Om du inte har slutfört de här stegen och vill följa med börjar du med Självstudie 1 – Förbereda programmet för AKS.

Den här självstudien kräver Azure CLI version 2.34.1 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Skapa miljövariabler

  • Skapa följande miljövariabler som ska användas för kommandona i den här självstudien:

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

Skapa Azure Service Bus-namnområde och kö

I tidigare självstudier använde du en RabbitMQ-container för att lagra beställningar som skickats av order-service. I den här självstudien använder du ett Azure Service Bus-namnområde för att tillhandahålla en omfångscontainer för Service Bus-resurserna i programmet. Du använder också en Azure Service Bus-kö för att skicka och ta emot meddelanden mellan programkomponenterna. Mer information om Azure Service Bus finns i Skapa ett Azure Service Bus-namnområde och en kö.

  1. Skapa ett Azure Service Bus-namnområde med hjälp av az servicebus namespace create kommandot .

    az servicebus namespace create -n $SB_NS -g $RG_NAME -l $LOC_NAME
    
  2. Skapa en Azure Service Bus-kö med kommandot az servicebus queue create .

    az servicebus queue create -n orders -g $RG_NAME --namespace-name $SB_NS -g $RG_NAME
    
  3. Skapa en Azure Service Bus-auktoriseringsregel med kommandot az servicebus queue authorization-rule create .

    az servicebus queue authorization-rule create \
        --name sender \
        --namespace-name $SB_NS \
        --resource-group $RG_NAME \
        --queue-name orders \
        --rights Send
    
  4. Hämta autentiseringsuppgifterna för Azure Service Bus för senare användning med hjälp av kommandona az servicebus namespace show och az 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
    

Uppdatera Kubernetes-manifestfilen

  1. Konfigurera kubectl för att ansluta till klustret med hjälp av az aks get-credentials kommandot .

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. aks-store-quickstart.yaml Öppna filen i en textredigerare.

  3. Ta bort de befintliga rabbitmq avsnitten StatefulSet, ConfigMap och Service och ersätt det befintliga order-service avsnittet Distribution med följande innehåll:

    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
    

    Kommentar

    Att direkt lägga till känslig information, till exempel API-nycklar, till dina Kubernetes-manifestfiler är inte säkert och kan av misstag checkas in på kodlagringsplatser. Vi har lagt till den här för enkelhetens skull. För produktionsarbetsbelastningar använder du Hanterad identitet för att autentisera med Azure Service Bus eller lagra dina hemligheter i Azure Key Vault.

  4. Spara och stäng den uppdaterade aks-store-quickstart.yaml filen.

Distribuera det uppdaterade programmet

  • Distribuera det uppdaterade programmet med kommandot kubectl apply .

    kubectl apply -f aks-store-quickstart.yaml
    

    Följande exempelutdata visar de resurser som har uppdaterats:

    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
    

Testa programmet

Placera en exempelordning

  1. Hämta tjänstens externa IP-adress med hjälp av store-frontkubectl get service kommandot .

    kubectl get service store-front
    
  2. Gå till den externa IP-adressen för store-front tjänsten i webbläsaren.

  3. Gör en beställning genom att välja en produkt och välja Lägg till i kundvagn.

  4. Välj Kundvagn för att visa din beställning och välj sedan Checka ut.

Visa ordningen i Azure Service Bus-kön

  1. Gå till Azure-portalen och öppna azure Service Bus-namnområdet som du skapade tidigare.
  2. Under Entiteter väljer du Köer och sedan orderkön .
  3. I beställningskön väljer du Service Bus Explorer.
  4. Välj Granska från början för att visa den beställning som du skickade.

Nästa steg

I den här självstudien använde du Azure Service Bus för att uppdatera och testa exempelprogrammet. Du har lärt dig att:

  • Skapa ett Azure Service Bus-namnområde och en kö.
  • Uppdatera Kubernetes-manifestfilen så att den använder Azure Service Bus-kön.
  • Testa det uppdaterade programmet genom att göra en beställning.

I nästa självstudie får du lära dig hur du skalar ett program i AKS.