Introdução
O Consul, do HashiCorp, é uma ferramenta versátil que executa várias funções em ambientes modernos de DevOps. É amplamente usado para descoberta de serviços, verificações de saúde, balanceamento de carga e, notavelmente, como um armazenamento distribuído de chave-valor (KV). O armazenamento KV no Consul é perfeito para armazenar dados de configuração dinâmica, bandeiras de funcionalidade, segredos e metadados de forma altamente disponível e consistente em toda a sua infraestrutura, permitindo que os serviços em sistemas distribuídos acessem dinamicamente essas informações. Usar o Docker para configurar o armazenamento KV do Consul permite um setup rápido e ambientes isolados, tornando-o ideal para testes e desenvolvimento.
Este tutorial vai guiar você pelo processo de configuração do armazenamento KV do Consul usando o Docker. Ao final, você terá uma instância do Consul totalmente funcional rodando no Docker, com pares de KV configurados e acessíveis. Este setup é essencial para a configuração dinâmica de serviços e gerenciamento de estado em sistemas distribuídos.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
- Um conta de nuvem DigitalOcean..
- Um servidor executando Ubuntu e um usuário não-root com privilégios de sudo e uma firewall ativa. Para orientação sobre como configurar isso, por favor escolha sua distribuição da lista e siga com nossa guia de configuração inicial do servidor. Certifique-se de trabalhar com a versão suportada do Ubuntu.
- Docker instalado em seu Droplet Ubuntu. Por favor, siga com este tutorial sobre Como instalar e usar o Docker no Ubuntu.
- Familiaridade com a linha de comando do Linux. Para uma introdução ou atualização sobre a linha de comando, você pode visitar este guia sobre Primeiros passos com a linha de comando do Linux.
- Conhecimento básico de comandos Docker e gerenciamento de containers.
Passo 1 — Obtendo a imagem do Consul Docker
Vamos obter a imagem oficial do Consul do Docker Hub. Esta imagem é mantida pela HashiCorp e inclui tudo o que você precisa para executar o Consul.
Entre na consola do Droplet Ubuntu e execute:
Passo 2 — Executando o Container do Consul
Com a imagem do Consul baixada, você pode iniciar um novo container do Consul. Este container servirá como seu servidor Consul e permitirá que você interaja com a loja de KV (Key-Value).
Para iniciar o container, execute:
Veja o que esta comando faz:
-d
executa o container em modo desconectado (em segundo plano).--name=consul-server
atribui um nome ao container.-e CONSUL_BIND_INTERFACE=eth0
define a interface de rede que o Consul deve se ligar. Isso é necessário para comunicação de rede adequada.-p 8500:8500
mapeia o porto da interface web e API do Consul para o host.-p 8600:8600/udp
mapeia o porto do serviço de DNS para descoberta de serviços.
Este passo é crucial, pois configura o serviço central do Consul, que você usará para configurar a loja de KV.
Passo 3 — Verificando a Instalação do Consul
Para garantir que o Consul está rodando corretamente, você precisa verificar o status do container e acessar a interface do usuário do Consul.
Primeiro, execute docker ps
para listar todos os contêineres em execução e verifique se o contêiner Consul está rodando.
Agora, verifique se o Consul é acessível, abra um navegador web e navegue até http://localhost:8500
. Você deveria ver a interface do usuário do Consul.
Este passo de verificação é importante para confirmar que sua instância do Consul está rodando sem problemas antes de armazenar dados no KV store (Passo 5).
Passo 4 — Configurando a Firewall (Opcional)
Se sua instância do Consul precisar ser acessada externamente (por exemplo, de outros nós em um cluster), você deve ajustar suas configurações de firewall para permitir tráfego nas portas necessárias.
Por exemplo, se você estiver executando o Consul em uma instância de nuvem, você pode precisar permitir tráfego de entrada em portas 8500 (API HTTP) e 8600 (DNS). As comandos específicos variam dependendo da solução de firewall que você está usando (UFW, iptables, etc.).
Este passo garante que sua instância do Consul é acessível de outros computadores, o que é essencial para configurações distribuídas.
Passo 5 — Armazenando Pares Chave-Valor
Com o Consul em execução, você agora pode usar o KV store para armazenar dados de configuração. Você pode adicionar pares chave-valor usando o Consul CLI ou a interface web.
Para armazenar um par chave-valor via CLI, execute:
Veja o que essa comando faz:
-it
– Abre o terminal interativo a partir do sistema local para o container.consul kv put
– O comando kv put escreve dados para o caminho KV store dado.config/db_host
– Caminho para armazenar o valor.192.168.1.100
– Valor.
Usando a interface web,
- Navegue até a interface do Consul (
http://localhost:8500
). - Clique na aba “Chave/Valor”.
- Crie uma nova chave clicando em “Criar”.
- Insira a chave (por exemplo,
config/db_host
) e o valor (por exemplo,192.168.1.100
).
Esses comandos e ações armazenam dados de configuração críticos que seus serviços podem acessar dinamicamente em tempo de execução.
Passo 6 — Recuperando Pares Chave-Valor
Uma vez que você armazenou alguns pares KV, você queira recuperá-los para garantir que eles foram armazenados corretamente.
Usando o CLI, recupere um valor usando o seguinte comando:
Usando a interface web,
- Aceda à aba “Key/Value” na interface do Consul.
- Localize a chave que criou e clique nela para ver o valor armazenado.
A recuperação das chaves/valores é um passo necessário para verificar que seus dados estão corretamente armazenados e acessíveis.
Passo 7 — Persistindo Dados Usando Volumes do Docker
Por padrão, os contêineres Docker são efêmeros, o que significa que qualquer dado armazenado dentro deles será perdido se o contêiner for removido. Para persistir seus dados KV do Consul, você deve usar volumes do Docker.
- Pare e remova o contêiner atual do Consul:
Agora, verifique os contêineres e você deveria notar que o contêiner do Consul já não está em execução.
2.Execute um novo contêiner do Consul com um volume do Docker anexado:
A opção -v consul_data:/consul/data
monta um volume do Docker no contêiner, garantindo que seu armazenamento KV persista ao reiniciar o contêiner.
Passo 8 — Automatizando o Início do Consul (Opcional)
Para implantações de produção, você pode automatizar o início do container do Consul usando o Docker Compose. O Docker Compose simplifica aplicações multi-container do Docker e facilita o gerenciamento de serviços.
Crie um arquivo docker-compose.yml
com o seguinte conteúdo:
Então, execute:
Este comando inicia o Consul automaticamente e garante que ele reinicia se falhar, tornando-o mais robusto para uso de produção.
Passo 9 — Limpeza
Após finalizar o uso da instância do Consul, você deve limpar seu ambiente Docker para liberar recursos.
Vamos parar e remover o container do Consul:
Se você terminou com o Consul, você também pode remover a imagem do Docker:
A limpeza ajuda a manter um ambiente de desenvolvimento organizado e garante que os recursos do Docker não sejam consumidos de forma desnecessária.
Conclusão
Neste tutorial, você aprenderá a configurar a store KV do Consul usando o Docker. Você vai cobrir a instalação do Docker, a execução do container do Consul, a configuração da store KV, o armazenamento de dados com volumes do Docker e a limpeza de seu ambiente. Com essas etapas, você pode agora usar o Consul para gerenciar dinamicamente dados de configuração em seus sistemas distribuídos, aproveitando o poder do Docker para implantação e gerenciamento fáceis.
Source:
https://www.digitalocean.com/community/tutorials/how-to-configure-consul-kv-using-docker