Servidor Couchbase

Serviço Docker e modo Swarm para criar um cluster do Couchbase

Introdução do Docker 1.12 Serviços. Um serviço replicado, distribuído e com balanceamento de carga pode ser facilmente criado usando serviço docker create comando. Um "estado desejado" do aplicativo, como executar 3 contêineres do Couchbase, é fornecido e o mecanismo de autocorreção do Docker garante que muitos contêineres sejam executados no cluster. Se um contêiner for desativado, outro contêiner será iniciado.
Se um nó for desativado, os contêineres desse nó serão iniciados em um nó diferente. Este blog mostrará como configurar um cluster do Couchbase usando o Docker Services. Muito obrigado a @marcosnils, outro colega Capitão do Docker,
para me ajudar a depurar a rede!

Cluster do Couchbase

Um cluster de servidores Couchbase é normalmente implantado em servidores de commodity. O Couchbase Server tem uma topologia ponto a ponto em que todos os nós são iguais e se comunicam entre si sob demanda. Não existe o conceito de nós mestres, nós escravos e nós de configuração,
O sistema permite que os nós de nome, os nós principais etc. e todo o software carregado em cada nó sejam idênticos. Isso permite que os nós sejam adicionados ou removidos sem considerar seu "tipo". Esse modelo funciona particularmente bem com a infraestrutura de nuvem em geral.

Um processo típico de criação de cluster do Couchbase é semelhante:
  • Iniciar o Couchbase: Iniciar n servidores Couchbase
  • Criar cluster: Escolha qualquer servidor e adicione todos os outros servidores a ele para criar o cluster
  • Rebalancear o cluster: Reequilibrar o cluster para que os dados sejam distribuídos pelo cluster
Para automatizar o uso dos serviços do Docker, a criação do cluster é dividida em um serviço "mestre" e um "trabalhador".
docker-service-couchbase-cluster
O serviço mestre tem apenas uma réplica. Isso fornece um único ponto de referência para iniciar a criação do cluster. Esse serviço também expõe a porta 8091. Ele permite que o Console da Web do Couchbase para
ser acessível de fora do cluster.
O serviço de trabalho usa exatamente a mesma imagem do serviço mestre. Isso mantém o cluster homogêneo, o que permite dimensionar o cluster facilmente.
Vamos começar!

Configurar o modo Swarm no Ubuntu

  1. Inicie uma instância do Ubuntu na Amazon. Este blog usou mx4.large para a AMI.
  2. Instalar o Docker:
  3. Modo Docker Swarm é um recurso opcional e precisa ser ativado explicitamente. Inicializar o modo Swarm:

Criar o serviço "mestre" do Couchbase

  1. Crie uma rede de sobreposição:

    Isso é necessário para que vários contêineres do Docker do Couchbase no cluster possam se comunicar entre si.
  2. Crie um serviço "mestre":

    Essa imagem é criada usando o Dockerfile aqui. Este Dockerfile usa um arquivo script de configuração para
    configuram a imagem base do Docker do Couchbase. Primeiro, ele usa API REST do Couchbase para configurar a cota de memória, índice de configuração, dados e
    serviços de consulta, credenciais de segurança e carrega um bucket de dados de amostra. Em seguida, ele invoca o CLI do Couchbase para adicionar os comandos
    nó do Couchbase ao cluster ou adicionar o nó e reequilibrar o cluster. Isso se baseia em três variáveis de ambiente:
    • TIPO: Define se o pod de ingresso é de trabalho ou mestre
    • MESTRE DA BASE DE SOFÁ: Nome do serviço mestre
    • AUTO_REBALANCE: Define se o cluster precisa ser rebalanceado
    Para esse primeiro arquivo de configuração, a variável de ambiente TYPE é definida como MASTER e, portanto, nenhuma configuração adicional é feita na imagem do Couchbase.

    Esse serviço também usa a rede de sobreposição criada anteriormente chamada couchbase. Ele expõe a porta 8091 que faz com que o Console da Web do Couchbase acessível fora do cluster. Esse serviço contém apenas uma réplica do contêiner.

  3. Verificar o status do serviço do Docker:

    Isso mostra que o serviço está em execução. O número "desejado" e "esperado" de réplicas é 1 e, portanto, está correspondendo.

  4. Verifique as tarefas no serviço:

    Isso mostra que o contêiner está em execução.

  5. Acesse o Console da Web do Couchbase usando o endereço IP público e ele deverá ter a seguinte aparência:
    docker-service-couchbase-login
    A imagem usada no arquivo de configuração é configurada com o parâmetro Administrador nome de usuário e senha senha. Digite as credenciais para ver o console:
    docker-service-couchbase-web-console
  6. Clique em Server Nodes (Nós do servidor) para ver quantos nós do Couchbase fazem parte do cluster. Como esperado, ele mostra apenas um nó:
    docker-service-couchbase-one-active-server

Criar o serviço "worker" do Couchbase

  1. Criar o serviço "worker":

    Esse RC também cria uma única réplica do Couchbase usando o mesmo arungupta/couchbase:swarm imagem. As principais diferenças aqui são:

    • TIPO é definida como TRABALHADOR. Isso adiciona um nó de trabalho do Couchbase ao cluster.
    • MESTRE DA BASE DE SOFÁ é passado o nome do serviço mestre,  couchbase-master.couchbase no nosso caso. Isso usa o mecanismo de descoberta de serviços incorporado ao Docker para o trabalhador e o
      o mestre para se comunicar.
  2. Verificar o serviço:
  3. A verificação do Console da Web do Couchbase mostra a saída atualizada:
    docker-service-couchbase-one-pending-server
    Isso mostra que um servidor está pendente para ser rebalanceado, AUTO_REBALANCE A variável de ambiente poderia ter sido definida como verdadeiro ou falso para
    ativar reequilíbrio. Isso garante que o nó seja apenas adicionado ao cluster, mas que o cluster em si não seja rebalanceado. Para rebalancear o cluster, é necessário
    redistribuir os dados em vários nós do cluster. A maneira recomendada é adicionar vários nós e, em seguida, reequilibrar manualmente o cluster usando o Console da Web.

Adicionar nós do Couchbase por meio do dimensionamento do serviço do Docker

  1. Dimensionar o serviço: 

  2. Verifique o serviço:

    Isso mostra que duas réplicas do trabalhador estão em execução.
  3. Verifique o Console da Web do Couchbase:
    docker-service-couchbase-two-pending-servers
    Como esperado, dois servidores foram adicionados ao cluster e estão pendentes de rebalanceamento.
  4. Opcionalmente, você pode reequilibrar o cluster clicando no botão Reequilíbrio e ele será exibido como:
    docker-service-couchbase-rebalancing
    Após a conclusão do rebalanceamento, o Console da Web do Couchbase é atualizado conforme mostrado:
    docker-service-couchbase-rebalanced
  5. Veja todos os contêineres em execução usando docker ps:

Além de criar um cluster, o Couchbase Server oferece suporte a uma série de alta disponibilidade e recuperação de desastres (HA/DR). A maioria das estratégias de HA/DR
Os sistemas de gerenciamento de dados do Couchbase dependem de uma abordagem multifacetada para maximizar a disponibilidade, aumentar a redundância dentro e entre os data centers e realizar backups regulares. Agora que seu cluster do Couchbase está pronto, você pode executar seu primeiro aplicativo de amostra.
Saiba mais sobre o Couchbase e os contêineres:

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Um comentário

  1. Hi,
    obrigado pelo guia e pelo couchbase :)
    Estou tentando essa solução em meu swarm. Meu objetivo é NÃO usar volumes persistentes e ter certeza de que pelo menos um contêiner está preservando os dados para que as outras instâncias possam recuperar seus dados por meio deles. Sua solução parece viável, mas como posso armazenar a configuração de todos os nós? Preciso passar um arquivo ini para cada um deles, certo? Posso definir a senha ou outra configuração na inicialização por meio de variáveis de ambiente?

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.