Exercício - Implantar um aplicativo no cluster do Serviço Kubernetes do Azure

Concluído

Neste exercício, você implantará o serviço de mensagens back-end da sua empresa como um aplicativo de teste no Serviço Kubernetes do Azure (AKS). O serviço se conecta ao serviço Redis PaaS que você criou no exercício anterior.

Observação

O código do serviço está disponível no repositório GitHub.

Criar uma lista no Redis

Você precisa criar uma lista no Redis e preenchê-la com alguns elementos aleatórios para simular uma fila de recebimento de dados. Cada item na fila representa algo que o microsserviço processará. Para este exercício, você adicionará um número estático de itens. Mais adiante no exercício, você dimensionará o microsserviço para o número de itens na fila.

  1. Verifique se o Docker está em execução no seu computador.

  2. Crie um contêiner Redis localmente para se conectar ao seu Cache Redis do Azure usando o comando docker run:

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

    Sua saída deve ser semelhante à saída de exemplo a seguir:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Crie uma lista e preencha-a com elementos aleatórios usando o comando 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. Verifique o comprimento da lista usando o comando llen keda:

    llen keda
    
  5. Saia do shell Redis escrevendo o comando exit.

Criar um manifesto de implantação

Você cria um arquivo de manifesto de implantação para implantar seu aplicativo. O arquivo de manifesto permite definir o tipo de recurso que deseja implantar e os detalhes associados à carga de trabalho.

O Kubernetes agrupa contêineres em estruturas lógicas chamadas pods, que não têm inteligência. As implantações acrescentam a inteligência que falta para criar o aplicativo.

  1. No Cloud Shell, crie um arquivo de manifesto para a implantação do Kubernetes chamado deployment.yaml usando o comando touch:

    touch deployment.yaml
    
  2. Abra o editor integrado no Cloud Shell inserindo code .

  3. Abra o arquivo deployment.yaml e cole o seguinte código de manifesto. Certifique-se de substituir as variáveis de ambiente Redis por seus próprios valores.

    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. Salve o arquivo de manifesto (CTRL + S) e feche o( editor(CTRL + Q).

Aplicar o manifesto

  1. Desenvolva o manifesto para o seu cluster usando o comando kubectl apply:

    kubectl apply -f ./deployment.yaml
    

    Sua saída deve ser semelhante à saída de exemplo a seguir:

    deployment.apps/contoso-microservice created
    
  2. Verifique se a implantação foi bem-sucedida usando o comando kubectl get deployment:

    kubectl get deployment contoso-microservice
    

    Sua saída deve ser semelhante à saída de exemplo a seguir:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Verifique se o pod está em execução usando o comando kubectl get pods:

    kubectl get pods
    

    Sua saída deve ser semelhante à saída de exemplo a seguir:

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