top of page

Como configurar o Cassandra Cluster no Docker Desktop usando Compose

  • Foto do escritor: Rodrigo Saito
    Rodrigo Saito
  • há 3 dias
  • 3 min de leitura

Atualizado: há 1 dia

Fala pessoal, Tudo bem?


Quer fazer a configuração do Cassandra usando o Docker Compose? Pois bem, vamos criar um cluster com 3 nós do Cassandra, para que voce possa testar a criação de bancos de dados, inserção de dados balanceados, TTLs, etc.


Para esse laboratório, será necessário estar com o Docker Desktop atualizado.


O Docker Compose é uma ferramenta que facilita a definição e gestão de aplicações multi-container no Docker. Ele utiliza um arquivo YAML para descrever os serviços (contêineres) da aplicação, suas dependências e configuração, permitindo que você os crie e inicie com um único comando. 


O Docker compose pode ser encontrado já na instalação do Docker Desktop (no caso padrão, voce terá a ultima versão do compose).


Para verificar se o compose está instalado corretamente, dentro do Docker Destop, no terminal, digite:

docker compose version

Versão do Docker Compose
Versão do Docker Compose

Após ter aparecido divesos comandos de help, voce terá certeza de que o compose está instalado corretamente.


Caso voce ainda não tenha a imagem do Cassandra, baixe com o seguinte comando:

docker pull cassandra:latest


Depois da imagem baixada, é possivel verificar a vulnerabilidade da imagem, com o seguinte comando:


docker scout quickview cassandra:latest


A imagem do Cassandra do Docker deve já estar correta:


Imagem baixada do Cassandra
Imagem baixada do Cassandra

Teste de container


Para subir um container do Cassandra, digite o seguinte comando:

docker run --name myCassandra cassandra:latest

Na aba Containers, com a execução do comando, há a criação do Container myCassandra
Na aba Containers, com a execução do comando, há a criação do Container myCassandra

Até aqui, testamos que o Container myCassandra está subindo corretamente com a imagem baixada.


Podemos excluir esse container com os seguintes comandos do Docker:

docker stop myCassandra
docker rm myCassandra

Execução de 2 comandos do Docker, o primeiro para parar o Container e o segunda para excluir o Container
Execução de 2 comandos do Docker, o primeiro para parar o Container e o segunda para excluir o Container

Edição do arquivo docker-compose.yml


Abra o VS Code a instale a extensão do Docker. Na verdade a instalação dessa instalação é opcinal, a qual é para que voce consiga enxergar algumas propriedades do Docker via VS Code.



Crie uma pasta chamada clusterCassandra (ou qualquer nome de sua preferência) dentro da pasta C:\users\<seu_usuario>\. No meu caso é: C:\Users\rodrigosaito\


E faça a abertura da pasta criada via VS Code:


Abertura da Pasta Selecionada
Abertura da Pasta Selecionada

Seleção da pasta criada
Seleção da pasta criada

Crie dentro dessa pasta (nome a definir) um arquivo chamado docker-compose.yml. O nome do arquivo tem que ser exatamente este, pois o nome do arquivo já faz parte do comando de inicialização do docker compose.


O arquivo deve conter o seguinte conteúdo:


networks: 
  cassandraCluster:


services: 
  cassandra10: 
    image: cassandra:latest 
    container_name: cassandra10 
    hostname: cassandra10 
    networks: 
      - cassandraCluster
    ports: 
      - "9042:9042" 

    environment: &environment  
      CASSANDRA_SEEDS: "cassandra10,cassandra20"   
      CASSANDRA_CLUSTER_NAME: MyTestCluster 
      CASSANDRA_DC: DC1 
      CASSANDRA_RACK: RACK1 
      CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch 
      CASSANDRA_NUM_TOKENS: 128 
      JVM_EXTRA_OPTS: "-Xms256M -Xmx512M"
#    mem_limit: 1g

  cassandra20: 
    image: cassandra:latest 
    container_name: cassandra20 
    hostname: cassandra20 
    networks: 
      - cassandraCluster
    ports: 
      - "9043:9042" 
    environment: *environment   
    depends_on: 
      cassandra10:  
        condition: service_started 
#   mem_limit: 1g

  cassandra30: 
    image: cassandra:latest 
    container_name: cassandra30 
    hostname: cassandra30 
    networks: 
      - cassandraCluster
    ports: 
      - "9044:9042" 
    environment: *environment   
    depends_on: 
      cassandra20:   
       condition: service_started
#   mem_limit: 1g

Uma grande importancia nos arquivos YAML é que os mesmos precisam estar exatamente indentados. Nessa caso, estamos usando 2 espaços em branco para cada nível.


Esse arquivo estará disponível em nosso github, em: https://github.com/datalibtec/cassandra/blob/main/docker-compose.yml



Para iniciar os containers, digite o seguinte comando para alterar a pasta onde está o arquivo docker-compose.yml:

cd ClusterCassandra

Dentro da pasta, digite o seguinte comando(-d detach, para executar em backgroud):

docker compose up -d

No terminal, todos os nós de cluster deverão ter subido:


Utilização do comando compose
Utilização do comando compose

Os containers estarão sendo executados na aba Container do Docker Desktop:


Visualização dos containers sendo executados
Visualização dos containers sendo executados

Para se conectar a um dos containers, digite o comando:

docker exec -it cassandra10 cqlsh

Caso a mensagem de conexão recusada apareça, verifique o seu firewall do windows para que as portas 9042 sejam liberadas, ou desligue o antivirus local de sua máquina.


ConnectionRefiusedError
ConnectionRefiusedError

Teste as conexões nos 2 nós restantes, para ver se estão todos funcionando

docker exec -it cassandra20 cqlsh
exit
docker exec -it cassandra30 cqlsh
exit


Conecte novamente no nó cassandra10


Até esse ponto, fizemos a criação de um cluster no Cassandra, com 3 nós!


A versão mais simplificada dessa instalação também pode ser vista em: https://youtu.be/CIeOtNCXtA0


Obrigado a até +




Comments


Nunca perca um post. Assine agora!

Caso queira receber noticias sobre o blog, assine!

© 2022 por datalib

  • Ícone do Facebook Cinza
  • Ícone do Linkedin Cinza
bottom of page