Oefening: een toepassing implementeren in uw Azure Kubernetes Service-cluster

Voltooid

In deze oefening implementeert u de back-endberichtenservice van uw bedrijf als een test-app op Azure Kubernetes Service (AKS). De service maakt verbinding met de Redis PaaS-service die u in de vorige oefening hebt gemaakt.

Notitie

De code voor de service is beschikbaar in de GitHub-opslagplaats.

Een lijst maken in Redis

U moet een lijst maken in Redis en deze vullen met enkele willekeurige elementen om een wachtrij te simuleren die gegevens ontvangt. Elk item in de wachtrij vertegenwoordigt iets dat door de microservice wordt verwerkt. Voor deze oefening voegt u een statisch aantal items toe. Verderop in de oefening schaalt u de microservice naar het aantal items in de wachtrij.

  1. Zorg ervoor dat Docker wordt uitgevoerd op uw computer.

  2. Maak een Redis-container lokaal om verbinding te maken met uw Azure Cache voor Redis met behulp van de opdracht docker run:

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

    De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Maak een lijst en vul deze met willekeurige elementen met behulp van de opdracht 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. Controleer de lengte van de lijst met behulp van de opdracht llen keda:

    llen keda
    
  5. Sluit de Redis-shell af door exitte typen.

Een implementatiemanifest maken

U maakt een distributiemanifestbestand om uw toepassing te implementeren. Met het manifestbestand kunt u definiëren welk type resource u wilt implementeren en de details die aan de workload zijn gekoppeld.

Kubernetes groepeert containers in logische structuren die pods worden genoemd, die geen intelligentie hebben. Implementaties voegen de ontbrekende intelligentie toe om uw toepassing te maken.

  1. Maak in Cloud Shell een manifestbestand voor de Kubernetes-implementatie met de naam deployment.yaml met behulp van de opdracht touch:

    touch deployment.yaml
    
  2. Open de geïntegreerde editor in Cloud Shell door code . in te voeren.

  3. Open het bestand deployment.yaml en plak de volgende manifestcode. Zorg ervoor dat u de Redis-omgevingsvariabelen vervangt door uw eigen waarden.

    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. Sla het manifestbestand (CTRL + S) op en sluit de editor(Ctrl + Q).

Het manifest toepassen

  1. Implementeer het manifest in uw cluster met behulp van de opdracht kubectl apply:

    kubectl apply -f ./deployment.yaml
    

    De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:

    deployment.apps/contoso-microservice created
    
  2. Controleer of de implementatie is geslaagd met behulp van de opdracht kubectl get deployment:

    kubectl get deployment contoso-microservice
    

    De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Controleer of de pod draait met de opdracht kubectl get pods:

    kubectl get pods
    

    De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:

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