Share via


Tutorial - Usar serviços PaaS com um cluster do Serviço Kubernetes do Azure (AKS)

Com o Kubernetes, você pode usar serviços PaaS, como o Azure Service Bus, para desenvolver e executar seus aplicativos.

Neste tutorial, parte cinco de sete, você cria um namespace e uma fila do Barramento de Serviço do Azure para testar seu aplicativo. Sabe como:

  • Crie um namespace e uma fila do Barramento de Serviço do Azure.
  • Atualize o arquivo de manifesto do Kubernetes para usar a fila do Barramento de Serviço do Azure.
  • Teste o aplicativo atualizado fazendo um pedido.

Antes de começar

Em tutoriais anteriores, você empacotou um aplicativo em uma imagem de contêiner, carregou a imagem no Registro de Contêiner do Azure, criou um cluster Kubernetes e implantou um aplicativo. Para concluir este tutorial, precisa do ficheiro de manifesto previamente criado do Kubernetes aks-store-quickstart.yaml. Este download de arquivo foi incluído com o código-fonte do aplicativo em um tutorial anterior. Certifique-se de clonar o repositório e alterar os diretórios para o repositório clonado. Se você não concluiu essas etapas e quer acompanhar, comece com o Tutorial 1 - Preparar a inscrição para o AKS.

Este tutorial requer a CLI do Azure versão 2.34.1 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Criar variáveis de ambiente

  • Crie as seguintes variáveis de ambiente para usar para os comandos neste tutorial:

    LOC_NAME=eastus
    RAND=$RANDOM
    RG_NAME=myResourceGroup
    AKS_NAME=myAKSCluster
    SB_NS=sb-store-demo-$RAND
    

Criar namespace e fila do Barramento de Serviço do Azure

Em tutoriais anteriores, você usou um contêiner RabbitMQ para armazenar pedidos enviados pelo order-service. Neste tutorial, você usa um namespace do Barramento de Serviço do Azure para fornecer um contêiner de escopo para os recursos do Barramento de Serviço dentro do aplicativo. Você também usa uma fila de barramento do Serviço do Azure para enviar e receber mensagens entre os componentes do aplicativo. Para obter mais informações sobre o Barramento de Serviço do Azure, consulte Criar um namespace e fila do Barramento de Serviço do Azure.

  1. Crie um namespace do Barramento de Serviço do Azure usando o az servicebus namespace create comando.

    az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
    
  2. Crie uma fila do Barramento de Serviço do Azure usando o az servicebus queue create comando.

    az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
    
  3. Crie uma regra de autorização do Barramento de Serviço do Azure usando o az servicebus queue authorization-rule create comando.

    az servicebus queue authorization-rule create \
        --name sender \
        --namespace-name $SB_NS \
        --resource-group $RG_NAME \
        --queue-name orders \
        --rights Send
    
  4. Obtenha as credenciais do Barramento de Serviço do Azure para uso posterior usando os az servicebus namespace show comandos e az servicebus queue authorization-rule keys list .

    az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv
    az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
    

Atualizar arquivo de manifesto do Kubernetes

  1. Configure kubectl para se conectar ao cluster usando o az aks get-credentials comando.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Abra o aks-store-quickstart.yaml arquivo em um editor de texto.

  3. Remova as seções StatefulSet, ConfigMap e Service existentes rabbitmq e substitua a seção Deployment existente order-service pelo seguinte conteúdo:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: order-service
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: order-service
      template:
        metadata:
          labels:
            app: order-service
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: order-service
            image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest
            ports:
            - containerPort: 3000
            env:
            - name: ORDER_QUEUE_HOSTNAME
              value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net
            - name: ORDER_QUEUE_PORT
              value: "5671"
            - name: ORDER_QUEUE_TRANSPORT
              value: "tls"
            - name: ORDER_QUEUE_USERNAME
              value: "sender"
            - name: ORDER_QUEUE_PASSWORD
              value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>"
            - name: ORDER_QUEUE_NAME
              value: "orders"
            - name: FASTIFY_ADDRESS
              value: "0.0.0.0"
            resources:
              requests:
                cpu: 1m
                memory: 50Mi
              limits:
                cpu: 75m
                memory: 128Mi
    

    Nota

    Adicionar diretamente informações confidenciais, como chaves de API, aos seus arquivos de manifesto do Kubernetes não é seguro e pode ser acidentalmente confirmado em repositórios de código. Nós o adicionamos aqui para simplificar. Para cargas de trabalho de produção, use a Identidade Gerenciada para autenticar com o Barramento de Serviço do Azure ou armazenar seus segredos no Cofre da Chave do Azure.

  4. Salve e feche o arquivo atualizado aks-store-quickstart.yaml .

Implementar a aplicação atualizada

  • Implante o aplicativo atualizado usando o kubectl apply comando.

    kubectl apply -f aks-store-quickstart.yaml
    

    A saída de exemplo a seguir mostra os recursos atualizados com êxito:

    deployment.apps/order-service configured
    service/order-service unchanged
    deployment.apps/product-service unchanged
    service/product-service unchanged
    deployment.apps/store-front configured
    service/store-front unchanged
    

Testar a aplicação

Fazer uma encomenda de amostras

  1. Obtenha o endereço IP externo do store-front serviço usando o kubectl get service comando.

    kubectl get service store-front
    
  2. Navegue até o endereço IP externo do store-front serviço em seu navegador.

  3. Faça um pedido escolhendo um produto e selecionando Adicionar ao carrinho.

  4. Selecione Carrinho para ver a sua encomenda e, em seguida, selecione Finalizar Compra.

Exibir o pedido na fila do Barramento de Serviço do Azure

  1. Navegue até o portal do Azure e abra o namespace do Barramento de Serviço do Azure criado anteriormente.
  2. Em Entidades, selecione Filas e, em seguida, selecione a fila de pedidos.
  3. Na fila de pedidos , selecione Service Bus Explorer.
  4. Selecione Espreitar desde o início para ver a encomenda que enviou.

Próximos passos

Neste tutorial, você usou o Barramento de Serviço do Azure para atualizar e testar o aplicativo de exemplo. Aprendeu a:

  • Crie um namespace e uma fila do Barramento de Serviço do Azure.
  • Atualize o arquivo de manifesto do Kubernetes para usar a fila do Barramento de Serviço do Azure.
  • Teste o aplicativo atualizado fazendo um pedido.

No próximo tutorial, você aprenderá como dimensionar um aplicativo no AKS.