Dominando o Docker Swarm: Implantação de Stack de Serviços em Cluster
Swarm é uma ferramenta de cluster nativa para Docker, que utiliza a API padrão. Ou seja, qualquer ferramenta que fizer uso da API Docker, poderá usar Swarm para escalar contêineres, de forma transparente, entre vários hosts e com alta disponibilidade.
Introdução
Ao executar o Docker Engine no modo swarm, você pode usar o Docker Stack Deploy para implantar uma pilha de aplicativos completa. O comando deploy aceita uma descrição de stack na forma de um Compose file. Desta forma, é possível usar os arquivos docker-compose.yml para criar stack de contêineres do docker, não havendo necessidade de instalar o Docker Compose.
O comando docker stack deploy suporta qualquer arquivo Compose da versão “3.0” ou superior. Se você tiver uma versão mais antiga, consulte o guia de atualização.
Iniciando o cluster
Para iniciar o swarm, copie o comando a seguir, execute na máquina que controlará o nosso cluster:
# docker swarm init --advertise-addr $(hostname -i)
A partir da saída acima, copie o comando join (cuidado com as outras linhas).
Cole no terminal onde será executado o nó worker.Em seguida, para verificar quais são os nós do cluster, execute o seguinte comando:
# docker node lsO comando que acabamos de executar, listará dois nós, manager é o primeiro sendo worker o segundo.
Clonar o app do github
Verifique se continuará no nó manager, execute os comandos:
# cd ~
# git clone https://github.com/docker/example-voting-app
# cd example-voting-app/Deploy do stack
Um stack, constitui um grupo de serviços implantados juntos. O docker-stack.yml na pasta atual, será usado para fazer o deploy dos serviços que utilizaremos para o wordpress, implemente o próximo comando para executar o deploy desses serviços:
# docker stack deploy --compose-file=docker-stack.yml voting_stackNota: o recurso para criação de stack a partir de um docker-compose, foi adicionado ao Docker a partir da versão 1.13.
Verifique o stack implementado no host manager:
# docker stack lsA saída indicará dois serviços, o mysql e wordpress:
NAME SERVICES voting_stack 6
Vamos verificar os serviços dentro do stack:
# docker stack services voting_stack
A saída deverá ser parecida com esta a seguir, (seu ID poderá ser diferente):
ID NAME MODE REPLICAS IMAGE PORTS ejsya1t9l3dm voting_stack_worker replicated 1/1 dockersamples/examplevotingapp_worker:latest hw99133nhqal voting_stack_visualizer replicated 1/1 dockersamples/visualizer:stable *:8080->8080/tcp n7nzscpetmcz voting_stack_redis replicated 1/1 redis:alpine *:30002->6379/tcp xz7q04j9hdpe voting_stack_result replicated 1/1 dockersamples/examplevotingapp_result:before *:5001->80/tcp z5usb88szawd voting_stack_db replicated 1/1 postgres:9.4 zows23xs6t7h voting_stack_vote replicated 2/2 dockersamples/examplevotingapp_vote:before *:5000->80/tcp
Vamos verificar as tarefas do serviço de votação:
# docker service ps voting_stack_vote
Na coluna NODE, podemos verificar que uma tarefa está sendo executada em cada nó:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS b0zuwoiv22vp voting_stack_vote.1 dockersamples/examplevotingapp_vote:before manager Running Preparing 2 minutes ago 0splsf986g09 voting_stack_vote.2 dockersamples/examplevotingapp_vote:before node Running Running 20 seconds ago
Finalmente, podemos confirmar que o nosso APP está em execução, a página de votação também está disponível, bem como o cluster no SWARM.
Conclusão
Utilizar apenas alguns comandos permite implementar uma stack de serviços em um Docker Swarm usando o Docker Compose. Empregando o comando: docker-compose up, funcionaria da mesma forma, mas não em cluster. Então o docker stack deploy é uma ferramenta e tanto, quando integrada ao SWARM.
About author
Você pode gostar também
MLOps: A chave para o sucesso na implantação de Machine Learning
Um projeto de Machine Learning (ML) de sucesso depende de implantação profissional. Muitas organizações ainda não estão preparadas para fazer implantação de modelos de ML por falta de profissionais especializados.
Descubra como a cultura DevOps pode impulsionar sua empresa
O DevOps é utilizado por grandes empresas globais como a Amazon e pode ser considerado uma cultura disruptiva que quebra padrões e processos tradicionais, gera valor mais rápido aos negócios
Descubra o DevSecOps: Segurança e eficiência no desenvolvimento de software
Saudações pessoal! Hoje vamos explorar o fascinante mundo do “DevSecOps”. Talvez você já tenha ouvido falar desse termo, mas não tenha ideia do que ele realmente significa. Neste artigo, vamos







