Übung: Bereitstellen einer Anwendung in Ihrem Azure Kubernetes Service-Cluster

Abgeschlossen

In dieser Übung stellen Sie den Back-End-Messagingdienst Ihres Unternehmens als Test-App in Azure Kubernetes Service (AKS) bereit. Der Dienst stellt eine Verbindung mit dem in der vorherigen Übung erstellten Redis-PaaS-Dienst her.

Hinweis

Der Code für den Dienst steht im GitHub-Repository zur Verfügung.

Erstellen einer Liste in Redis

Sie müssen eine Liste in Redis erstellen und mit einigen zufälligen Elementen auffüllen, um eine Warteschlange zu simulieren, die Daten empfängt. Jedes Element in der Warteschlange stellt etwas dar, das vom Microservice verarbeitet wird. Für diese Übung fügen Sie eine statische Anzahl von Elementen hinzu. Später in der Übung skalieren Sie den Microservice auf die Anzahl der Elemente in der Warteschlange.

  1. Stellen Sie sicher, dass Docker auf Ihrem Computer ausgeführt wird.

  2. Erstellen Sie lokal einen Redis-Container, um eine Verbindung mit der zuvor erstellten Azure Cache for Redis-Instanz herzustellen. Verwenden Sie dazu den Befehl docker run:

    docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Erstellen Sie eine Liste, und füllen Sie sie mit zufälligen Elementen auf. Verwenden Sie dazu den Befehl lpush keda:

    lpush keda Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget interdum felis, ac ultricies nulla. Fusce vehicula mattis laoreet. Quisque facilisis bibendum dui, at scelerisque nulla hendrerit sed. Sed rutrum augue arcu, id maximus felis sollicitudin eget. Curabitur non libero rhoncus, pellentesque orci a, tincidunt sapien. Suspendisse laoreet vulputate sagittis. Vivamus ac magna lacus. Etiam sagittis facilisis dictum. Phasellus faucibus sagittis libero, ac semper lorem commodo in. Quisque tortor lorem, sollicitudin non odio sit amet, finibus molestie eros. Proin aliquam laoreet eros, sed dapibus tortor euismod quis. Maecenas sed viverra sem, at porta sapien. Sed sollicitudin arcu leo, vitae elementum
    
  4. Überprüfen Sie die Länge der Liste mithilfe des Befehls llen keda:

    llen keda
    
  5. Beenden Sie die Redis-Shell durch Eingabe von exit.

Erstellen eines Bereitstellungsmanifests

Sie erstellen eine Bereitstellungsmanifestdatei, um Ihre Anwendung bereitzustellen. Mithilfe der Manifestdatei können Sie definieren, welche Art von Ressource bereitgestellt werden soll. Außerdem lassen sich so die Details im Zusammenhang mit der Workload definieren.

Kubernetes gruppiert Container in logische Strukturen namens Pods, die über keine Intelligenz verfügen. Bei Bereitstellungen wird die fehlende Intelligenz zum Erstellen Ihrer Anwendung hinzugefügt.

  1. Erstellen Sie in Cloud Shell mithilfe des touch-Befehls eine Manifestdatei für die Kubernetes-Bereitstellung namens deployment.yaml:

    touch deployment.yaml
    
  2. Öffnen Sie den integrierten Editor in Cloud Shell, indem Sie code . eingeben.

  3. Öffnen Sie die Datei deployment.yaml, und fügen Sie den folgenden Manifestcode ein. Ersetzen Sie die Redis-Umgebungsvariablen durch Ihre eigenen Werte.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: contoso-microservice
    spec:
      replicas: 1                   # Tells K8S the number of containers to process the Redis list items
      selector:                     # Define the wrapping strategy
        matchLabels:                # Match all pods with the defined labels
          app: contoso-microservice # Labels follow the `name: value` template
      template:                     # Template of the pod inside the Deployment
        metadata:
          labels:
            app: contoso-microservice
        spec:
          containers:
            - image: mcr.microsoft.com/mslearn/samples/redis-client:latest
              name: contoso-microservice
              resources:
                requests:
                  cpu: 100m
                  memory: 128Mi
                limits:
                  cpu: 100m
                  memory: 128Mi
              env:
                - name: REDIS_HOST
                  value: "redis-contoso-video.redis.cache.windows.net" # *** REPLACE with your value ***
                - name: REDIS_PORT
                  value: "6379"                                        # *** REPLACE with your value ***
                - name: REDIS_LIST
                  value: "keda"                                        # *** REPLACE with your value ***
                - name: REDIS_KEY
                  value: "******************************************"  # *** REPLACE with your value ***
    
  4. Speichern Sie die Manifestdatei (STRG+S), und schließen Sie den Editor (STRG+Q).

Anwenden des Manifests

  1. Stellen Sie das Manifest mithilfe des kubectl apply-Befehls in Ihrem Cluster bereit:

    kubectl apply -f ./deployment.yaml
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    deployment.apps/contoso-microservice created
    
  2. Vergewissern Sie sich mithilfe des Befehls kubectl get deployment, dass die Bereitstellung erfolgreich war:

    kubectl get deployment contoso-microservice
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Überprüfen Sie mithilfe des Befehls kubectl get pods, ob der Pod ausgeführt wird:

    kubectl get pods
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    NAME                                    READY   STATUS    RESTARTS   AGE
    contoso-microservice-7c58c5f699-r79mv   1/1     Running   0          63s