Exercício – Implantar um aplicativo no seu cluster do Serviço de Kubernetes do Azure
Neste exercício, você implantará o serviço de mensagens de back-end da sua empresa como um aplicativo de teste no AKS (Serviço de Kubernetes do Azure). O serviço se conecta ao serviço de PaaS do Redis 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 recebendo 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ê irá dimensionar o microsserviço para o número de itens na fila.
Verifique se o Docker está em execução no computador.
Crie um contêiner redis localmente para se conectar ao Cache do Azure para Redis usando o
docker run
comando:docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
Seu resultado deve ser semelhante ao seguinte exemplo de saída:
redis-contoso-video.redis.cache.windows.net:6379>
Crie uma lista e preencha-a com elementos aleatórios usando o
lpush keda
comando: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
Verifique o comprimento da lista usando o
llen keda
comando:llen keda
Saia do shell Redis digitando
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 que tipo de recurso você deseja implantar e os detalhes associados à carga de trabalho.
O Kubernetes agrupa os contêineres em estruturas lógicas chamadas pods, que não têm inteligência. As implantações adicionam a inteligência ausente para criar o seu aplicativo.
No Cloud Shell, crie um arquivo de manifesto para a Implantação do Kubernetes chamado
deployment.yaml
usando otouch
comando:touch deployment.yaml
Abra o editor integrado no Cloud Shell inserindo
code .
Abra o
deployment.yaml
arquivo e cole o código de manifesto a seguir. Certifique-se de substituir as variáveis de ambiente do Redis com 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 ***
Salve o arquivo de manifesto (CTRL + S) e feche o editor (CTRL + Q).
Aplicar o manifesto
Implante o manifesto no cluster usando o comando
kubectl apply
:kubectl apply -f ./deployment.yaml
Seu resultado deve ser semelhante ao seguinte exemplo de saída:
deployment.apps/contoso-microservice created
Verifique se a implantação foi bem-sucedida usando o
kubectl get deployment
comando:kubectl get deployment contoso-microservice
Seu resultado deve ser semelhante ao seguinte exemplo de saída:
NAME READY UP-TO-DATE AVAILABLE AGE contoso-microservice 1/1 1 0 16s
Verifique se o pod está em execução usando o
kubectl get pods
comando:kubectl get pods
Seu resultado deve ser semelhante ao seguinte exemplo de saída:
NAME READY STATUS RESTARTS AGE contoso-microservice-7c58c5f699-r79mv 1/1 Running 0 63s