Como implantar o Elasticsearch no GCP GKE Autopilot

Aprenda como implantar um cluster Elasticsearch no GCP usando o GKE Autopilot e o ECK para uma configuração parcialmente gerenciada do Elasticsearch.

Novo no Elasticsearch? Participe do nosso webinar Introdução ao Elasticsearch. Você também pode iniciar um teste gratuito na nuvem do Elastic ou experimentar o Elastic em sua máquina agora.

Neste artigo, vamos aprender como implantar o Elasticsearch no Google Cloud Kubernetes (GKE) usando o Autopilot.

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

Para saber mais sobre como implantar clusters do Elasticsearch em diferentes infraestruturas do GCP, você pode ler nossos artigos de introdução ao Google Cloud Compute e Google Cloud Marketplace.

Esforço de implantação do Elasticsearch

O que é o GKE Autopilot?

O Google Kubernetes Engine (GKE) Autopilot oferece uma experiência Kubernetes totalmente gerenciada, na qual o Google cuida da configuração do cluster, do gerenciamento de nós, da segurança e do redimensionamento, enquanto os desenvolvedores se concentram na implantação de aplicativos, permitindo que as equipes passem do código à produção em minutos com as práticas recomendadas integradas.

Quando usar o ECK no Google Cloud?

O Elastic Cloud on Kubernetes (ECK) é mais indicado para organizações com infraestrutura Kubernetes existente que desejam implantar o Elasticsearch com recursos avançados, como funções dedicadas para nós, alta disponibilidade e automação.

Como configurar o ECK na Google Cloud?

1. Faça login no Google Cloud Console.

2. No canto superior direito , clique no botão Cloud Shell para acessar o console e implantar o cluster GKE a partir daí. Alternativamente, você pode usar o gcloud CLI.

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

3. Ative a Google Kubernetes Engine API.

Clique em Avançar.

Agora, a API do Kubernetes Engine deve aparecer como habilitada ao pesquisar pela API do Kubernetes Engine.

4. No Cloud Shell, crie um cluster Autopilot. Vamos chamá-lo de autopilot-cluster-1 e também substituir autopilot-test pelo id do seu projeto.

5. Espere até que esteja pronto. Leva cerca de 10 minutos para ser criado.

Uma mensagem de confirmação será exibida após a configuração correta do cluster.

6. Configure o acesso na linha de comando do kubectl.

Você deverá ver:

Entrada kubeconfig gerada para autopilot-cluster-1.

7. Instale o operador Elastic Cloud on Kubernetes (ECK).

8. Vamos criar um nó único do Elasticsearch com os valores padrão.

Se quiser conferir algumas receitas de diferentes instalações, você pode visitar este link.

Lembre-se de que, se você não especificar um storageClass, o ECK usará o definido por padrão, que para o GKE é standard-rwo, que usa o driver CSI de disco persistente do Compute Engine, e criará um volume de 1 GB com ele.

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

9. Vamos também implantar um cluster Kibana de nó único. Para o Kibana, vamos adicionar um LoadBalancer que nos dará um IP externo que podemos usar para acessar o Kibana a partir do nosso dispositivo.

Observe a anotação:

cloud.google.com/l4-rbs: "enabled"

É muito importante porque diz ao Autopilot que forneça um LoadBalancer voltado para o público. Se não estiver ativado, o LoadBalancer será interno.

10. Verifique se seus pods estão funcionando.

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

12. Acesse seus serviços.

Isso mostrará o URL externo do Kibana em EXTERNAL-IP. Pode levar alguns minutos para a provisão do LoadBalancer. Copie o valor de EXTERNAL-IP.

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

14. Acesse o Kibana por meio do seu navegador:

  • URL: https://<EXTERNAL_IP>:5601
  • Username:elastic
  • Senha: 28Pao50lr2GpyguX470L2uj5 (do passo anterior)

15. Acessando a partir do seu navegador, você verá a tela de boas-vindas.

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

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

O mesmo vale para Kibana:

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

Lembre-se de que as reivindicações de volume existentes não podem ser reduzidas. Após aplicar a atualização, o operador fará as alterações com o menor tempo de interrupção.

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

Próximas etapas

Se você quiser saber mais sobre o Kubernetes e o Google Kubernetes Engine, consulte estes artigos:

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)