josuedallagnese / event-driven-with-keda-event-hubs-native-library

Event Driven Autoscaling + Keda + Azure Event Hubs + Native Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Event Driven Autoscaling + Keda + Azure Event Hubs + Native Library

  1. Pré-requisitos
  • Assinatura no portal Azure para criação de um Event Hubs Namespace e uma Storage Account:
  • Crie uma Storage Account com o nome e o local que preferir, com dois containers privado chamado "keda-worker" e "reply-keda-worker".
  • Crie um Event Hubs Namespace com o nome e o local que preferir, definindo o Pricing tier para Standard e o Throughput Units para 2.
  • Dentro do namespace criado, adicione 2 hubs chamados respectivamente de "keda-worker" e "reply-keda-worker" com 2 partições.
  1. Installar o keda em seu cluster de kubernetes como achar melhor:

https://keda.sh/docs/2.6/deploy/

  1. Alterar o arquivo deployment.yaml substituindo os valores destacados:

    • <EVENT HUBS CONNECTION STRING EM BASE 64>: para preencher esse valor use a connection string do hub "keda-worker" com o EntityPath. Não use a connection string do namespace.
    • <BLOB STORAGE ACCOUNT CONNECTION STRING EM BASE 64>
  2. Criar o namespace "worker":

    • kubectl create namespace worker
  3. Aplique contra o seu ambiente de kubernetes.

    • kubectl apply -f deployment.yaml

OBS: se preferir modifique os valores de pollingInterval, cooldownPeriod. Eles foram configurados com intervalos menores para visualizar o Autoscaling acontecendo.

  1. Abra a solução Keda.sln e configure em todos os arquivos de configuração os parametros para rodar local:

    • ConnectionString: para preencher esse valor use a connection string do hub "keda-worker" com o EntityPath. Não use a connection string do namespace.
    • ReplyConnectionString: para preencher esse valor use a connection string do hub "reply-keda-worker" com o EntityPath. Não use a connection string do namespace.
    • BlobStorageConnectionString
  2. Rode o projeto producer escolhe a opção 1 e acompanhe pelo kubernetes o deployment fazer o autoscaling automatico.

  3. Para limpar todos os recursos do teste:

    • kubectl delete namespace worker

About

Event Driven Autoscaling + Keda + Azure Event Hubs + Native Library


Languages

Language:C# 97.4%Language:Dockerfile 2.6%