Ćwiczenie — wdrażanie aplikacji w klastrze usługi Azure Kubernetes Service

Ukończone

W tym ćwiczeniu wdrożysz usługę obsługi komunikatów zaplecza firmy jako aplikację testową w usłudze Azure Kubernetes Service (AKS). Usługa łączy się z usługą PaaS redis utworzoną w poprzednim ćwiczeniu.

Uwaga

Kod usługi jest dostępny w repozytorium GitHub.

Tworzenie listy w usłudze Redis

Musisz utworzyć listę w usłudze Redis i wypełnić ją kilkoma elementami losowymi, aby symulować kolejkę odbierających dane. Każdy element w kolejce reprezentuje coś, co będzie przetwarzać mikrousługi. W tym ćwiczeniu dodasz statyczną liczbę elementów. W dalszej części ćwiczenia przeskalujesz mikrousługę do liczby elementów w kolejce.

  1. Upewnij się, że platforma Docker jest uruchomiona na komputerze.

  2. Utwórz kontener Redis lokalnie, aby nawiązać połączenie z usługą Azure Cache for Redis przy użyciu docker run polecenia :

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

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Utwórz listę i wypełnij ją elementami losowymi przy użyciu lpush keda polecenia :

    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. Sprawdź długość listy przy użyciu llen keda polecenia :

    llen keda
    
  5. Zamknij powłokę Redis, wpisując .exit

Tworzenie manifestu wdrożenia

Aby wdrożyć aplikację, należy utworzyć plik manifestu wdrożenia. Plik manifestu umożliwia zdefiniowanie typu zasobu, który chcesz wdrożyć, oraz szczegóły skojarzone z obciążeniem.

Platforma Kubernetes grupuje kontenery w strukturach logicznych nazywanych zasobnikami, które nie mają funkcji inteligentnych. Wdrożenia dodają brakujące funkcje inteligentne, aby utworzyć aplikację.

  1. W usłudze Cloud Shell utwórz plik manifestu dla wdrożenia kubernetes o nazwie deployment.yaml przy użyciu touch polecenia :

    touch deployment.yaml
    
  2. Otwórz edytor zintegrowany w usłudze Cloud Shell, wprowadzając polecenie code .

  3. deployment.yaml Otwórz plik i wklej następujący kod manifestu. Pamiętaj, aby zastąpić zmienne środowiskowe usługi Redis własnymi wartościami.

    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. Zapisz plik manifestu (CTRL + S) i zamknij edytor (CTRL + Q).

Stosowanie manifestu

  1. Wdróż manifest w klastrze przy użyciu kubectl apply polecenia :

    kubectl apply -f ./deployment.yaml
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    deployment.apps/contoso-microservice created
    
  2. Sprawdź, czy wdrożenie zakończyło się pomyślnie, używając kubectl get deployment polecenia :

    kubectl get deployment contoso-microservice
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Sprawdź, czy zasobnik jest uruchomiony przy użyciu kubectl get pods polecenia :

    kubectl get pods
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

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