Como implantar o Elasticsearch no Azure AKS automaticamente

Aprenda como implantar o Elasticsearch com o Kibana no Azure usando o AKS Automatic e o ECK para uma configuração parcialmente gerenciada do Elasticsearch.

Este artigo faz parte de uma série onde aprenderemos como instalar o Elasticsearch usando diferentes infraestruturas.

O ECK exige um esforço significativamente maior do que as soluções Elastic Cloud baseadas no Marketplace, mas é mais automatizado do que implantar VMs por conta própria, porque o operador do Kubernetes cuidará da orquestração do sistema e do escalonamento dos nós.

Desta vez, vamos trabalhar com o Azure Kubernetes Service (AKS), usando o modo automático. Nos outros artigos, você aprenderá como usar as VMs do Azure e o Azure Marketplace.

O que é o AKS Automatic?

O Azure Kubernetes Service (AKS) gerencia automaticamente a configuração do cluster, aloca recursos dinamicamente e integra as melhores práticas de segurança, preservando a flexibilidade do Kubernetes, permitindo que os desenvolvedores passem da imagem do contêiner para o aplicativo implantado em minutos.

O AKS Automatic elimina a maior parte da sobrecarga de gerenciamento de clusters e encontra um bom equilíbrio entre simplicidade e flexibilidade. A escolha certa depende do seu caso de uso, mas a decisão fica mais fácil se você planeja:

  • Implante um ambiente de teste: A implantação é rápida e simples, tornando-a ideal para experimentos rápidos ou clusters de curta duração.
  • Trabalhe sem requisitos rígidos de VM, armazenamento ou rede: o AKS Automatic fornece configurações padrão predefinidas; portanto, se elas atenderem às suas necessidades, você evita configurações adicionais.
  • Comece a usar o Kubernetes pela primeira vez: ao lidar com grande parte da configuração do cluster, o AKS Automatic reduz a curva de aprendizado e permite que as equipes se concentrem em seus aplicativos.

Para o Elasticsearch, usaremos o Elastic Cloud on Kubernetes (ECK), que é o operador oficial do Elastic Kubernetes e simplifica a orquestração das implantações do Elastic Stack no Kubernetes.

Como configurar o AKS automaticamente

1. Faça login no Portal do Microsoft Azure.

2. No canto superior direito, clique No botão do Cloud Shell , você pode acessar o console e implantar o cluster AKS a partir daí. Alternativamente, você pode usar o Azure Cloud Shell.

Lembre-se de atualizar o ID do projeto com o seu durante o tutorial.

Abrir o AKS deve ser semelhante à captura de tela acima.

3. Instale a extensão aks-preview da CLI do Azure. Esta versão de pré-visualização permitirá selecionar --sku automatic na criação do cluster, o que habilita o recurso AKS Automático.

Se você vir esta mensagem, significa que a extensão AKS foi instalada corretamente.

4. Registre os sinalizadores de recursos usando o comando az feature register

Você verá os detalhes sobre a assinatura do recurso que acabamos de criar:

Verifique o status do registro até que ele mude de “Registrando” para “Registrado”. O processo de cadastro pode levar alguns minutos.

Execute az provider register para propagar as alterações.

5. Criar um grupo de recursos

Um grupo de recursos é um grupo lógico de recursos do Azure que serão gerenciados e implantados.

6. Crie um cluster do Autopilot. Vamos chamá-lo de myAKSAutomaticCluster e usar o grupo de recursos que acabamos de criar. Certifique-se de ter 16 vCPUs disponíveis em qualquer um dos seguintes tamanhos de VM: Standard_D4pds_v5, Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2 para que o AKS possa alocar recursos.

* Se você receber dois errosMissingSubscriptionRegistration), volte ao passo 4 com as assinaturas ausentes. Por exemplo, The subscription is not registered to use namespace 'microsoft.insights' requer a execução de az provider register --namespace Microsoft.Insights.

Siga as instruções de login interativo:

Uma mensagem solicitando a execução do comando “az login” será exibida. Você precisa executar esse comando e depois esperar.

7. Aguarde até que esteja pronto. Leva cerca de 10 minutos para criar.

8. Configure o acesso à linha de comando do kubectl.

Observe que a extensão que instalamos está habilitando o AKS Automático.

9. Confirme se os nós foram implantados.

Você verá uma mensagem de erro de acesso proibido; copie o ID do usuário da mensagem de erro.

10. Adicione seu usuário ao controle de acesso do AKS.

Obtenha o ID da AKS. Copie a saída do comando.

Crie uma atribuição de função usando o ID do AKS e o ID principal do seu usuário.

11. Tente confirmar novamente se os nós foram implantados.

12. Instale o operador Elastic Cloud on the Kubernetes (ECK).

13. Vamos criar uma instância Elasticsearch de nó único com os valores padrão.

Desativamos nmap porque a máquina AKS padrão tem um valor vm.max_map_count muito baixo. Desativá-lo não é recomendado para produção, mas aumentar o valor de vm.max_map_count. Você pode ler mais sobre como fazer isso aqui.

14. Vamos também implantar um cluster Kibana de nó único. Para o Kibana, adicionaremos um balanceador de carga, que nos fornecerá um IP externo que poderemos usar para acessar o Kibana a partir do nosso dispositivo.

Por padrão, o AKS Automatic configurará o balanceador de carga como público; você pode alterar esse comportamento definindo a anotação de metadados:

service.beta.kubernetes.io/azure-load-balancer-internal: "true"

15. Verifique se seus pods estão em execução.

16. Você também pode executar kubectl get elasticsearch e kubectl get kibana para estatísticas mais específicas, como versão do Elasticsearch, nós e integridade.

17. Acesse seus serviços.

Isso mostrará o URL externo do Kibana em EXTERNAL-IP. Pode levar alguns minutos para o balanceador de carga ser provisionado. Copie o valor de EXTERNAL-IP.

18. Obtenha a senha do Elasticsearch para o usuário 'elastic':

19. Acesse o Kibana através do seu navegador:

a. URL: https://:5601<EXTERNAL_IP>

b. Nome de usuário: elastic

c. Senha: c44A295CaEt44D6xIzN6Zs5m (da etapa anterior)

20. Ao acessar o Elastic Cloud pelo seu navegador, você verá a tela de boas-vindas.

Se você deseja alterar as especificações do cluster Elasticsearch, como alterar ou redimensionar nós, pode aplicar o manifesto YML novamente com as novas configurações:

Neste exemplo, vamos adicionar mais um nó e modificar a RAM e a CPU. Como você pode ver, agora kubectl get elasticsearch mostra 2 nós:

O mesmo se aplica ao Kibana:

Podemos ajustar o uso de CPU/RAM do contêiner e também o uso de memória do Node.js (max-old-space-size).

Lembre-se de que os pedidos de reembolso em grande volume já existentes não podem ser reduzidos. Após aplicar a atualização, o operador fará as alterações com o mínimo de interrupção possível.

Lembre-se de excluir o cluster quando terminar os testes para evitar custos desnecessários.

Conclusão

Utilizar o Azure AKS Automatic com o ECK oferece uma solução equilibrada para a implementação do Elasticsearch e do Kibana: reduz a complexidade operacional, garante o dimensionamento e as atualizações automatizadas e aproveita a flexibilidade do Kubernetes. Essa abordagem é ideal para equipes que desejam um processo de implantação confiável, repetível e de fácil manutenção, sem precisar gerenciar manualmente cada detalhe da infraestrutura, tornando-se uma escolha prática tanto para ambientes de teste quanto de produção.

Próximas etapas

Se você quiser saber mais sobre Kubernetes, pode consultar a documentação oficial aqui:

Conteúdo relacionado

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)