Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com o Kubernetes, você pode usar serviços de PaaS, como o Barramento de Serviço do Azure, para desenvolver e executar seus aplicativos.
Neste tutorial, você criará um namespace e uma fila do Barramento de Serviço do Azure para testar seu aplicativo. Você aprenderá como:
- Criar 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.
- Testar o aplicativo atualizado fazendo um pedido.
Antes de começar
Nos 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 do Kubernetes e implantou um aplicativo. Para concluir este tutorial, você precisa do arquivo de manifesto do Kubernetes aks-store-quickstart.yaml já criado. Esse arquivo baixado foi incluído com o código-fonte do aplicativo em um tutorial anterior. Verifique se você clonou o repositório e alterou os diretórios no repositório clonado. Se você não concluiu essas etapas e deseja acompanhar este tutorial, comece com Tutorial 1: preparar um aplicativo para o AKS.
Este tutorial cria recursos faturáveis do Barramento de Serviço do Azure. Para concluir estas etapas, use uma identidade que possa criar e gerenciar recursos do Barramento de Serviço e atualizar cargas de trabalho do AKS no seu grupo de recursos, como Contributor ou Owner.
Este tutorial requer a instalação da área de trabalho do AKS.
Criar variáveis de ambiente
Use o CLI do Azure para criar as seguintes variáveis de ambiente a serem usadas para os comandos neste tutorial:
LOC_NAME=westus2 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 os pedidos enviados pelo order-service. Neste tutorial, você usará 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 do Azure Service Bus 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 uma fila do Barramento de Serviço do Azure.
Nesse fluxo, order-service envia mensagens para a orders fila usando a regra de autorização e a sender chave que você cria nesta seção.
Use o CLI do Azure para criar as variáveis de ambiente a seguir a serem usadas para os comandos neste tutorial.
Crie um namespace Barramento de Serviço do Azure usando o
az servicebus namespace createcomando.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMEContinue quando o comando for concluído com êxito e retornar os detalhes do namespace.
Crie uma fila do Barramento de Serviço do Azure usando o comando
az servicebus queue create.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NSVerifique se a fila existe antes de continuar:
az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsvCrie uma regra de autorização do Barramento de Serviço do Azure usando o comando
az servicebus queue authorization-rule create.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights SendObtém as credenciais do Barramento de Serviço do Azure para uso posterior usando os comandos
az servicebus namespace showeaz 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 tsvSalve estes valores para a etapa de atualização do manifesto:
-
<REPLACE_WITH_YOUR_ACR_NAME>: seu nome do Registro de Contêiner do Azure de tutoriais anteriores. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: o valor deprimaryKeyda saída do comando.
-
Atualizar os arquivos de manifesto do Kubernetes
Vá para Projetos na área de trabalho do AKS e selecione aquele que você criou no tutorial anterior.
my-dev-frontendSelecione a guia Recursos e depois selecione Cargas de Trabalho>Implantação: order-service.
Selecione o Editor.
Remova as seções StatefulSet, ConfigMap e Service existentes
rabbitmq. Substitua a seção Implantação existenteorder-servicepelo conteúdo a seguir. Copie e cole o 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 startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3
Observação
A adição direta de informações confidenciais, como chaves de API, nos arquivos de manifesto do Kubernetes não é segura e poderia ser confirmada acidentalmente em repositórios de código. Este exemplo o adiciona para simplificar. Para cargas de trabalho de produção, use Identidade Gerenciada para autenticar com o Barramento de Serviço do Azure ou armazene seus segredos no Azure Key Vault.
Persista a atualização selecionando Salvar & Aplicar.
Verifique se a implantação
order-serviceatualizada alcançou um estado íntegro na exibição de cargas de trabalho antes de continuar.
Implantar o aplicativo atualizado
Implante o aplicativo atualizado usando o
kubectl applycomando.kubectl apply -f aks-store-quickstart.yamlA 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 unchangedVerifique se a implantação atualizada está em execução.
kubectl get pods
Continue quando os pods do aplicativo estiverem no estado Running.
Testar o aplicativo
Faça um pedido de teste
Área de trabalho do AKS
Obtenha o endereço IP público acessando Recurso>Rede>Serviço: store-front>Endereço IP externo.
Linha de comando
Obtenha o endereço IP externo do serviço
store-frontusando o comandokubectl get service.kubectl get service store-frontSe
EXTERNAL-IPfor<pending>, aguarde um minuto e execute o comando novamente até que um endereço IP público seja exibido.Navegue até o endereço IP externo do serviço
store-frontno navegador usandohttp://<external-ip>.Faça um pedido escolhendo um produto e selecionando Adicionar ao carrinho.
Selecione Carrinho para exibir seu pedido e, em seguida, selecione Finalizar compra.
Exibir a ordem na fila do Barramento de Serviço do Azure
- Navegue até o portal do Azure e abra o namespace do Barramento de Serviço do Azure que você criou anteriormente.
- Em Entidades, selecione Filas e, em seguida, selecione a fila de pedidos.
- Na fila de pedidos, selecione Barramento de Serviço Explorer.
- Selecione Visualizar desde o início para exibir o pedido que você enviou.
Próximas etapas
Neste tutorial, você usou o Barramento de Serviço do Azure para atualizar e testar o aplicativo de exemplo. Você aprendeu a:
- Criar 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.
- Testar o aplicativo atualizado fazendo um pedido.
No próximo tutorial, você aprenderá a dimensionar um aplicativo no AKS.