Metadadoscomo, por exemplo rótulospode ser anexado a um daemon do Docker. Um rótulo é um par de chave/valor e permite que o host do Docker seja um alvo de contêineres. A semântica dos rótulos é totalmente definida pelo aplicativo. Um novo Docker restrição podem ser especificados durante a criação do serviço, visando às tarefas em um host específico. Vamos ver como podemos usar rótulos e restrições no Docker para um aplicativo do mundo real.

Couchbase usando escalonamento multidimensional (ou MDS) nos permite dividir o serviço de pesquisa de índice, dados, consulta e texto completo
em vários nós. As necessidades de cada serviço são diferentes. Por exemplo, a consulta exige muita CPU, o índice exige muito disco e os dados são uma combinação de memória e leitura/gravação rápida, como SSD. O MDS permite que os recursos de hardware sejam atribuídos e otimizados de forma independente por nó, à medida que os requisitos do aplicativo mudam.
couchbase-mds Leia mais sobre Escala multidimensional.
Vamos ver como isso pode ser feito facilmente em um cluster de três nós usando Modo de enxame do Docker.

Iniciar instâncias do Ubuntu

Inicie três instâncias no EC2 do Ubuntu Server 14.04 LTS (HVM) (AMI ID: ami-06116566). Adote os padrões em todos os casos, exceto para o grupo de segurança. O modo Swarm requer os três itens a seguir portas abertas entre hosts:

  • Porta TCP 2377 para comunicações de gerenciamento de cluster
  • TCP e Porta UDP 7946 para comunicação entre os nós
  • TCP e Porta UDP 4789 para tráfego de rede de sobreposição

Certifique-se de criar um novo grupo de segurança com essas regras:
ec2-swarmmode-security-group
Aguarde alguns minutos para que as instâncias sejam provisionadas.

Configurar o Docker no Ubuntu

O modo Swarm foi introduzido no Docker 1.12. No momento em que este artigo foi escrito, o 1.12 RC4 era o candidato mais recente. Use o script a seguir para instalar a versão RC4 com recursos experimentais:

Esse script pressupõe que A CLI do AWS já está configurada e realiza a seguinte configuração para todos instâncias em execução em seu EC2 configurado
conta:

  • Obter o endereço IP público de cada instância
  • Para cada instância
    • Instale a versão mais recente do Docker com recursos experimentais
    • Adiciona ubuntu usuário para o doca group. Isso permite que o Docker seja usado como um usuário não raiz.
    • Imprime a versão do Docker

Esse script simples configurará o host do Docker em todas as três instâncias.

Atribuir rótulos ao Docker Daemon

Os rótulos podem ser definidos usando DOCKER_OPTS. Para o Ubuntu, isso é definido na seção /etc/default/docker arquivo. Rótulos distintos precisam ser atribuídos a cada nó. Por exemplo, use couchbase.mds chave
e
índice valor.

Você também precisa reiniciar o daemon do Docker. Por fim, informações da plataforma exibe informações de todo o sistema:

Como você pode ver, os rótulos estão visíveis nessas informações. Para o segundo nó, atribua um rótulo diferente:

Certifique-se de usar o endereço IP da segunda instância do EC2. As informações atualizadas sobre o daemon do Docker nesse caso serão:

E, finalmente, o último nó:

As informações atualizadas sobre o daemon do Docker para esse host serão exibidas:

No nosso caso, é criado um cluster homogêneo em que as máquinas são exatamente iguais, incluindo o sistema operacional, a CPU, o disco e a capacidade de memória. No mundo real, você normalmente tem o mesmo sistema operacional, mas a capacidade da instância, como disco, CPU e memória, seria diferente com base nos serviços do Couchbase que você deseja executar nelas. Esses rótulos fariam todo o sentido nesse caso, mas eles mostram o ponto aqui.

Ativar o modo Swarm e criar o cluster

Vamos ativar o modo Swarm e criar um cluster de 1 nó Manager e 2 nós Worker. Por padrão, os gerentes também são nós de trabalho. Inicialize o Swarm no primeiro nó:

Isso mostrará o resultado:

Adicione outros dois nós como trabalhadores:

Os comandos exatos e a saída, nesse caso, são:

Agora é possível obter detalhes completos sobre o cluster:

E isso mostra o resultado:

Isso mostra que criamos um cluster de 3 nós com um gerenciador.

Executar o serviço do Docker com restrições

Agora, vamos executar três serviços do Couchbase com restrições diferentes. Cada serviço do Docker especifica as restrições usando--constraint engine.labels. em que há correspondências com os rótulos definidos anteriormente para os nós. Cada serviço recebe um nome exclusivo, pois isso permite dimensioná-los individualmente. Todos os comandos são direcionados para o gerenciador do Swarm:

Os comandos exatos em nosso caso são:

A lista de serviços pode ser verificada como:

Isso mostra a saída como:

E a lista de tarefas (essencialmente contêineres dentro desse serviço) para cada serviço pode ser verificada como:

E o resultado em nosso caso:

Isso mostra que os serviços estão bem distribuídos em diferentes nós. Sinta-se à vontade para verificar se a tarefa está de fato agendada no nó com o rótulo correto. Todas as instâncias do Couchbase podem ser configuradas em um cluster para fornecer uma solução completa de banco de dados para seus aplicativos da Web, móveis e de IoT. Quer saber mais?

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. [...] guzel bir ornek ise arastiriken Couchbase blogunda buldum, Interstellar filmini seyredeniz var ise Cocuhbase tam size gore ? Multidimensional [...]

Deixar uma resposta