Cvičení – nasazení aplikace do clusteru Azure Kubernetes Service

Dokončeno

V tomto cvičení nasadíte back-endovou službu zasílání zpráv vaší společnosti jako testovací aplikaci do služby Azure Kubernetes Service (AKS). Služba se připojí ke službě Redis PaaS, kterou jste vytvořili v předchozím cvičení.

Poznámka

Kód služby je k dispozici v úložišti GitHub.

Vytvoření seznamu v Redisu

Potřebujete vytvořit seznam v Redis a naplnit ho několika náhodnými prvky, abyste simulovali frontu přijímající data. Každá položka ve frontě představuje něco, co mikroslužba zpracuje. V tomto cvičení přidáte statický počet položek. Později v cvičení škálujete mikroslužbu na počet položek ve frontě.

  1. Ujistěte se, že na vašem počítači běží Docker.

  2. Vytvořte kontejner Redis místně pro připojení ke službě Azure Cache for Redis pomocí příkazu docker run:

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

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Vytvořte seznam a naplňte ho náhodnými prvky pomocí příkazu 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. Pomocí příkazu llen keda ověřte délku seznamu:

    llen keda
    
  5. Ukončete prostředí Redis zadáním exit.

Vytvoření manifestu nasazení

Vytvoříte soubor manifestu nasazení pro nasazení aplikace. Soubor manifestu umožňuje definovat, jaký typ prostředku chcete nasadit, a podrobnosti související s úlohou.

Kubernetes seskupuje kontejnery do logických struktur označovaných jako pody, které nemají žádné inteligentní funkce. Nasazení doplňují chybějící inteligenci pro vytvoření vaší aplikace.

  1. V Cloud Shellu vytvořte soubor manifestu pro nasazení Kubernetes s názvem deployment.yaml pomocí příkazu touch:

    touch deployment.yaml
    
  2. Zadáním code . otevřete integrovaný editor v Cloud Shellu.

  3. Otevřete soubor deployment.yaml a vložte následující kód manifestu. Nezapomeňte nahradit proměnné prostředí Redis vlastními hodnotami.

    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. Uložte soubor manifestu (CTRL + S) a zavřete editor(CTRL + Q).

Použití manifestu

  1. Pomocí příkazu kubectl apply nasaďte manifest do clusteru:

    kubectl apply -f ./deployment.yaml
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    deployment.apps/contoso-microservice created
    
  2. Pomocí příkazu kubectl get deployment ověřte, že nasazení proběhlo úspěšně:

    kubectl get deployment contoso-microservice
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Ověřte, že pod je spuštěn, pomocí příkazu kubectl get pods.

    kubectl get pods
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

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