DAPR, KEDA on ARO (Azure RedHat OpenShift): passo a passo
Neste artigo, teremos foco nas configurações necessárias para rodar DAPR, KEDA on ARO (Azure RedHat OpenShift).
Desta forma, aproveitei para montar este repositório no GitHub chamado “App-Plant-Tree” que cobre conceitos sobre Arquitetura Cloud-Native combinando as seguintes tecnologias:
Go – Producer/Consumer App
Distributed Application Runtime – DAPR
Kubernetes Event Driven Autoscaling – KEDA
Azure RedHat OpenShift (ARO)
Azure Container Registry (ACR)
Go SDK
Azure CLI
OpenShift CLI
DAPR CLI
Kubectl
Helm CLI
GIT bash
Visual Studio Code
Login no Azure usando CLI:
Defina os valores das variáveis conforme seu ambiente:
– $Location = ‘‘
– $ResourceGroupName = ‘‘
– $ClusterName = ‘‘
– $ContainerRegistryName = ‘‘
– $ServiceBusNamespace = ‘‘
Selecione sua assinatura azure:
Crie resource group:
Crie a virtual network
Crie a subnet para control plane
Crie a subnet para workers
Desligando configurações de network policies para Private Link Service
Crie o cluster ARO:
Crie o Container Registry:
Conectando o Container Registry ao ARO:
oc create secret docker–registry —docker–server=$ContainerRegistryName.azurecr.io —docker–username=<user name> —docker–password=<your password>—docker–email=unused acr–secret
oc secrets link default <pull_secret_name> —for=pull
Pegue a URL da console OpenShift
Pegue as credenciais OpenShift:
Valide a conexão com o cluster:
Adicione as referências:
helm repo update
helm upgrade —install dapr dapr/dapr —namespace dapr–system —create–namespace
helm upgrade —install dapr–dashboard dapr/dapr–dashboard —namespace dapr–system —create–namespace
Validar se os pods estão rodando:
Resposta esperada:
DAPR dashboard available at http://localhost:8080
Adicione as referências:
helm repo update
helm upgrade —install keda kedacore/keda –n keda–system —create–namespace
helm upgrade —install keda–add-ons–http kedacore/keda–add-ons–http –n keda–system —create–namespace
Verifique se os pods estão rodando:
Neste projeto, temos 3 diferentes opções exemplificadas (escolha uma):
Azure Service Bus
Redis
RabbitMq
docker build –t “$ContainerRegistryName.azurecr.io/consumer-app:1.0.0“ -f cmd/consumer/dockerfile .
docker build –t “$ContainerRegistryName.azurecr.io/producer-app:1.0.0“ -f cmd/producer/dockerfile .
docker push “$ContainerRegistryName.azurecr.io/producer-app:1.0.0“
Validar se os pods estão rodando:
kubectl logs -f –l app=consumer1 —all–containers=true –n tree
# configurar a porta para acesso local
kubectl port–forward pod/producer1 8081 8081 –n tree
# enviar post para a aplicação producer
– POST –> http://localhost:8081/plant
– Json Body: {“numberOfTrees“:100}
# Validar status dos pods
kubectl get pod –l app=consumer1 –n tree
Após finalizar seus testes, os próximos comandos te ajudarão a desinstalar todos os componentes de aplicação além de também excluir todos os componentes na azure.
helm uninstall keda –n keda–system
helm uninstall dapr –n dapr–system
Delete all Azure resources:
az acr delete —resource–group $ResourceGroupName —name $ContainerRegistryName
az group delete —name $ResourceGroupName
DAPR KEDA GO Project
DAPR – Pros/Cons
KEDA – Pros/Cons
Microsoft Tech Community – Latest Blogs –Read More