Ć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.

Notatka

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ć mikroserwis. 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 polecenia docker run:

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

    llen keda
    
  5. Aby wyjść z powłoki Redis, wpisz 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 struktury logiczne nazywane zasobnikami, które nie mają analizy. Wdrożenia dodają brakującą inteligencję do stworzenia aplikacji.

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

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

  3. Otwórz plik deployment.yaml 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 polecenia kubectl apply:

    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 polecenia kubectl get deployment:

    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 pod jest uruchomiony przy użyciu polecenia kubectl get pods:

    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