Zelfstudie: PaaS-services gebruiken met een AKS-cluster (Azure Kubernetes Service)

Met Kubernetes kunt u PaaS-services, zoals Azure Service Bus, gebruiken om uw toepassingen te ontwikkelen en uit te voeren.

In deze zelfstudie, deel vijf van zeven, maakt u een Azure Service Bus-naamruimte en -wachtrij om uw toepassing te testen. U leert het volgende:

  • Maak een Azure Service Bus-naamruimte en -wachtrij.
  • Werk het Kubernetes-manifestbestand bij om de Azure Service Bus-wachtrij te gebruiken.
  • Test de bijgewerkte toepassing door een bestelling te plaatsen.

Voordat u begint

In eerdere zelfstudies hebt u een toepassing verpakt in een containerinstallatiekopie, de installatiekopie geüpload naar Azure Container Registry, een Kubernetes-cluster gemaakt en een toepassing geïmplementeerd. Om deze zelfstudie te voltooien hebt u het vooraf gemaakte Kubernetes-manifestbestand aks-store-quickstart.yaml nodig. Dit downloaden van bestanden is opgenomen in de broncode van de toepassing in een vorige zelfstudie. Zorg ervoor dat u de opslagplaats hebt gekloond en mappen hebt gewijzigd in de gekloonde opslagplaats. Als u deze stappen nog niet hebt voltooid en u deze wilt volgen, begint u met zelfstudie 1: De toepassing voorbereiden voor AKS.

Voor deze zelfstudie is Azure CLI versie 2.34.1 of hoger vereist. Voer az --version uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Omgevingsvariabelen maken

  • Maak de volgende omgevingsvariabelen voor de opdrachten in deze zelfstudie:

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

Azure Service Bus-naamruimte en -wachtrij maken

In eerdere zelfstudies hebt u een RabbitMQ-container gebruikt om bestellingen op te slaan die door de order-service. In deze zelfstudie gebruikt u een Azure Service Bus-naamruimte om een bereikcontainer op te geven voor de Service Bus-resources in de toepassing. U gebruikt ook een Azure Service Bus-wachtrij om berichten tussen de toepassingsonderdelen te verzenden en te ontvangen. Zie Een Azure Service Bus-naamruimte en -wachtrij maken voor meer informatie over Azure Service Bus.

  1. Maak een Azure Service Bus-naamruimte met behulp van de az servicebus namespace create opdracht.

    az servicebus namespace create -n $SB_NS -g $RG_NAME -l $LOC_NAME
    
  2. Maak een Azure Service Bus-wachtrij met behulp van de az servicebus queue create opdracht.

    az servicebus queue create -n orders -g $RG_NAME --namespace-name $SB_NS -g $RG_NAME
    
  3. Maak een Azure Service Bus-autorisatieregel met behulp van de az servicebus queue authorization-rule create opdracht.

    az servicebus queue authorization-rule create \
        --name sender \
        --namespace-name $SB_NS \
        --resource-group $RG_NAME \
        --queue-name orders \
        --rights Send
    
  4. Haal de Azure Service Bus-referenties op voor later gebruik met behulp van de az servicebus namespace show en az servicebus queue authorization-rule keys list opdrachten.

    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
    

Kubernetes-manifestbestand bijwerken

  1. Configureer kubectl deze om verbinding te maken met uw cluster met behulp van de az aks get-credentials opdracht.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Open het aks-store-quickstart.yaml bestand in een teksteditor.

  3. Verwijder de bestaande rabbitmq secties StatefulSet, ConfigMap en Service en vervang de bestaande order-service implementatiesectie door de volgende inhoud:

    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
    

    Notitie

    Het rechtstreeks toevoegen van gevoelige informatie, zoals API-sleutels, aan uw Kubernetes-manifestbestanden is niet beveiligd en kan per ongeluk worden doorgevoerd in codeopslagplaatsen. We hebben het hier toegevoegd om het eenvoudig te maken. Voor productieworkloads gebruikt u Managed Identity om te verifiëren met Azure Service Bus of uw geheimen op te slaan in Azure Key Vault.

  4. Sla het bijgewerkte aks-store-quickstart.yaml bestand op en sluit het.

De bijgewerkte toepassing implementeren

  • Implementeer de bijgewerkte toepassing met behulp van de kubectl apply opdracht.

    kubectl apply -f aks-store-quickstart.yaml
    

    In de volgende voorbeelduitvoer ziet u de bijgewerkte resources:

    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
    

De toepassing testen

Een voorbeeldvolgorde plaatsen

  1. Haal het externe IP-adres van de store-front service op met behulp van de kubectl get service opdracht.

    kubectl get service store-front
    
  2. Navigeer naar het externe IP-adres van de store-front service in uw browser.

  3. Plaats een bestelling door een product te kiezen en Toevoegen aan winkelwagen te selecteren.

  4. Selecteer Winkelwagen om uw bestelling weer te geven en selecteer vervolgens Uitchecken.

De volgorde in de Azure Service Bus-wachtrij weergeven

  1. Navigeer naar Azure Portal en open de Azure Service Bus-naamruimte die u eerder hebt gemaakt.
  2. Selecteer wachtrijen onder Entiteiten en selecteer vervolgens de wachtrij orders.
  3. Selecteer Service Bus Explorer in de wachtrij met orders.
  4. Selecteer Bekijken vanaf het begin om de bestelling weer te geven die u hebt verzonden.

Volgende stappen

In deze zelfstudie hebt u Azure Service Bus gebruikt om de voorbeeldtoepassing bij te werken en te testen. U hebt geleerd hoe u:

  • Maak een Azure Service Bus-naamruimte en -wachtrij.
  • Werk het Kubernetes-manifestbestand bij om de Azure Service Bus-wachtrij te gebruiken.
  • Test de bijgewerkte toepassing door een bestelling te plaatsen.

In de volgende zelfstudie leert u hoe u een toepassing in AKS kunt schalen.