Övning – Distribuera ett program i ditt Azure Kubernetes Service-kluster

Slutförd

I den här övningen distribuerar du företagets tjänst för serverdelsmeddelanden som en testapp till Azure Kubernetes Service (AKS). Tjänsten ansluter till Redis PaaS-tjänsten som du skapade i föregående övning.

Kommentar

Koden för tjänsten är tillgänglig på GitHub-lagringsplatsen.

Skapa en lista i Redis

Du måste skapa en lista i Redis och fylla den med några slumpmässiga element för att simulera en kö som tar emot data. Varje objekt i kön representerar något som mikrotjänsten ska bearbeta. I den här övningen lägger du till ett statiskt antal objekt. Senare i övningen skalar du mikrotjänsten till antalet objekt i kön.

  1. Kontrollera att Docker körs på datorn.

  2. Skapa en Redis-container lokalt för att ansluta till Azure Cache for Redis med kommandot docker run :

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

    Dina utdata bör se ut ungefär som följande exempelutdata:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Skapa en lista och fyll i den med slumpmässiga element med kommandot 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. Kontrollera längden på listan med kommandot llen keda :

    llen keda
    
  5. Avsluta Redis-gränssnittet genom att exitskriva .

Skapa ett distributionsmanifest

Du skapar en distributionsmanifestfil för att distribuera programmet. Med manifestfilen kan du definiera vilken typ av resurs du vill distribuera och den information som är associerad med arbetsbelastningen.

Kubernetes grupperar containrar till logiska strukturer som kallas poddar, som inte har någon intelligens. Distributioner lägger till den intelligens som saknas för att skapa programmet.

  1. I Cloud Shell skapar du en manifestfil för Kubernetes-distributionen med deployment.yaml touch kommandot :

    touch deployment.yaml
    
  2. Öppna det integrerade redigeringsprogrammet i Cloud Shell genom att skriva code .

  3. deployment.yaml Öppna filen och klistra in följande manifestkod. Ersätt Redis-miljövariablerna med dina egna värden.

    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. Spara manifestfilen (CTRL + S) och stäng redigeraren(CTRL + Q).

Tillämpa manifestet

  1. Distribuera manifestet till klustret med hjälp av kubectl apply kommandot :

    kubectl apply -f ./deployment.yaml
    

    Dina utdata bör se ut ungefär som följande exempelutdata:

    deployment.apps/contoso-microservice created
    
  2. Kontrollera att distributionen lyckades med kommandot kubectl get deployment :

    kubectl get deployment contoso-microservice
    

    Dina utdata bör se ut ungefär som följande exempelutdata:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Kontrollera att podden körs med kommandot kubectl get pods :

    kubectl get pods
    

    Dina utdata bör se ut ungefär som följande exempelutdata:

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