Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Com o Kubernetes, você pode usar serviços PaaS, como o Azure Service Bus, para desenvolver e executar seus aplicativos.
Neste tutorial, vais criar um namespace e uma fila do Barramento de Serviço do Azure para testar a tua aplicação. Sabe como:
- Crie um namespace e uma fila no Barramento de Serviço do Azure.
- Atualize o ficheiro Manifest do Kubernetes para utilizar 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 cria recursos faturáveis do Azure Service Bus. Para completar estes passos, use uma identidade que possa criar e gerir recursos do Service Bus e atualizar cargas de trabalho do AKS no seu grupo de recursos, como Contribuidor ou Proprietário.
Este tutorial requer a instalação do desktop AKS.
Criar variáveis de ambiente
Use a CLI do Azure para criar as seguintes variáveis de ambiente para usar nos comandos deste 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 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.
Neste fluxo, order-service envia mensagens para a orders fila usando a sender regra de autorização e a chave que cria nesta secção.
Utilize a CLI do Azure para criar as seguintes variáveis de ambiente a utilizar nos comandos deste tutorial.
Crie um namespace Azure Service Bus 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 sucesso e devolve os detalhes do namespace.
Crie uma fila do Barramento de Serviço do Azure usando o
az servicebus queue createcomando.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
az servicebus queue authorization-rule createcomando.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights SendObtenha as credenciais do Barramento de Serviço do Azure para uso posterior usando os
az servicebus namespace showcomandos eaz 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 tsvGuarde estes valores para a etapa de atualização do manifesto:
-
<REPLACE_WITH_YOUR_ACR_NAME>: o teu nome do Azure Container Registry de tutoriais anteriores. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: oprimaryKeyvalor da saída do comando.
-
Atualizar arquivo de manifesto do Kubernetes
Vai a Projetos no desktop do AKS e seleciona aquele que criaste no tutorial anterior,
my-dev-frontend.Selecione o separador Recursos e depois selecione Cargas de trabalho>Implementação: order-service.
Selecione o editor.
Remova as secções existentes
rabbitmqStatefulSet, ConfigMap e Service. Substitua a secção de Implementação existenteorder-servicepelo seguinte conteúdo. Copiar e colar 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
Nota
Adicionar diretamente informação sensível, como chaves de API, aos ficheiros de manifesto do Kubernetes não é seguro e pode ser acidentalmente incluída em repositórios de código. Este exemplo adiciona-o por uma questão de simplicidade. Para cargas de trabalho de produção, use a Identidade Gerida para autenticar com o Barramento de Serviço do Azure ou armazenar os seus segredos no Cofre das Chaves do Azure.
Mantenha a atualização selecionando Guardar e Aplicar.
Verifique se a implementação atualizada
order-serviceatinge um estado saudável na vista de carga de trabalho antes de continuar.
Implementar a aplicação atualizada
Implemente a aplicação atualizada 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 unchangedVerifica se a implementação atualizada está a funcionar.
kubectl get pods
Continue quando os pods de aplicação estiverem em estado Running.
Testar a aplicação
Fazer uma encomenda de amostras
AKS Desktop
Obtenha o endereço IP público indo a Resource>Network>Service: store-front>External IP.
Linha de comandos
Obtenha o endereço IP externo do
store-frontserviço usando okubectl get servicecomando.kubectl get service store-frontSe
EXTERNAL-IPfor<pending>, espere um minuto e execute novamente o comando até que apareça um endereço IP público.Navegue até o endereço IP externo do serviço
store-frontusando ohttp://<external-ip>no seu navegador.Faça um pedido escolhendo um produto e selecionando Adicionar ao carrinho.
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
- Navegue até o portal do Azure e abra o namespace do Barramento de Serviço do Azure que criou anteriormente.
- Em Entidades, selecione Filas e, em seguida, selecione a fila de pedidos.
- Na fila de pedidos , selecione Service Bus Explorer.
- Selecione Ver 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 no Barramento de Serviço do Azure.
- Atualize o ficheiro Manifest do Kubernetes para utilizar 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.