Упражнение. Развертывание приложения в кластере Службы Azure Kubernetes

Завершено

В этом упражнении вы развернете серверную службу обмена сообщениями вашей компании в качестве тестового приложения на Служба Azure Kubernetes (AKS). Служба подключается к службе Redis PaaS, созданной в предыдущем упражнении.

Примечание.

Код службы доступен в репозитории GitHub.

Создание списка в Redis

Необходимо создать список в Redis и заполнить его случайными элементами, чтобы имитировать получение данных очереди. Каждый элемент в очереди представляет то, что микрослужба будет обрабатывать. В этом упражнении вы добавите статическое число элементов. Далее в упражнении вы масштабируйте микрослужбу до количества элементов в очереди.

  1. Убедитесь, что Docker работает на компьютере.

  2. Создайте контейнер Redis локально для подключения к Кэш Azure для Redis с помощью docker run команды:

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

    Выходные данные должны выглядеть примерно так:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Создайте список и заполните его случайными элементами 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. Проверьте длину списка с помощью llen keda команды:

    llen keda
    
  5. Закройте оболочку Redis, введя exitтекст.

Создание манифеста развертывания

Создайте файл манифеста развертывания для развертывания приложения. Файл манифеста позволяет определить тип ресурса, который требуется развернуть, и сведения, связанные с рабочей нагрузкой.

Kubernetes группирует контейнеры в логические структуры, называемые модулями pod, которые не имеют логики. Развертывания добавляют недостающую логику для создания приложения.

  1. В Cloud Shell создайте файл манифеста для развертывания Kubernetes, вызываемого deployment.yaml touch с помощью команды:

    touch deployment.yaml
    
  2. Откройте интегрированный редактор в Cloud Shell, введя code .

  3. deployment.yaml Откройте файл и вставьте следующий код манифеста. Обязательно замените переменные среды Redis собственными значениями.

    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. Сохраните файл манифеста (CTRL+S) и закройте редактор(CTRL+Q).

Применение манифеста

  1. Разверните манифест в кластере kubectl apply с помощью команды:

    kubectl apply -f ./deployment.yaml
    

    Выходные данные должны выглядеть примерно так:

    deployment.apps/contoso-microservice created
    
  2. Убедитесь, что развертывание успешно выполнено с помощью kubectl get deployment команды:

    kubectl get deployment contoso-microservice
    

    Выходные данные должны выглядеть примерно так:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Убедитесь, что модуль pod выполняется с помощью kubectl get pods команды:

    kubectl get pods
    

    Выходные данные должны выглядеть примерно так:

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