fbpx
Tenha um Cluster Docker Swarm por quase um almoço!
Publicado em: quarta-feira, 11 de jul de 2018
Categorias: Docker de A a Z

Se você estudou docker, já pensou em criar um cluster para fazer alguns testes. Se você desistiu por que achou caro, seus problemas acabaram! Por 11,97 (R$ 53,51) por mês, você pode ter um cluster swarm modesto, composto por 4 nós, cada um com as seguintes specs:

SO: [dt_tooltip title=”Ubuntu Xenial”]Esse tutorial fala exclusivamente de Linux, vamos subir 4 instâncias Ubuntu Xenial.[/dt_tooltip]

CPU: 2 X86 64bit Cores
Memória: 2GB
Rede: 200Mbit/s Unmetered
Disco: 50GB SSD

Vale lembrar que o Scaleway bilheta por hora, portanto faça as contas, se você tiver um teste de 15 dias, pagará metade, ou seja: Um pouco mais de R$ 26!

[dt_quote type=”pullquote” layout=”left” font_size=”big” animation=”none” size=”1″]Se isso não chamou sua atenção ou você acha caro pagar 50 reais por um cluster de 4 máquinas para aprender: Pode parar por aqui! Feche essa aba do navegador, volte no dia que esse assunto fizer sentido para você, ou não, não precisa voltar não! Vá fazer qualquer alguma coisa mais interessante! [/dt_quote]

São mais de 40 prints que tirei para esse tutorial com todo os passos, desde a criação da conta no scaleway até a criação do cluster swarm.

Tutorial

Começando no Scaleway

Scaleway é uma empresa de cloud francesa e oferece um dos melhores preços para servidores pequenos. É excelente para pequenos projetos, testes e PoC’s. As máquinas são modestas em geral, e se você precisa de muito processamento, não vale muito a pena. Mas, se você gostar de testar e avaliar

Criando sua conta

O primeiro passo é criar sua conta. Isso consiste em cadastrar um login/senha, validar o email de boas vindas, telefone e cartão de crédito internacional.

Após ativar sua conta, você verá o dashboard de servidores:

Criando tuas chaves SSH-RSA

Você precisará informar uma chave pública na tela de configuração do perfil, caso não tenha, siga esse procedimento conforme as imagens.

Você precisará do Putty, mais espeficicamente do PUTTYGEN.EXE. O download pode ser feito no putty.org ou direto pelos links 32-bit ou 64-bit. OBS: baixe o pacote putty.zip (a .ZIP archive of all the above).

No PUTTYGEN.EXE você deve clicar no botão Generate e passar o mouse na área abaixo do progress bar. O próssimo passo é salvar cada uma das chaves, como na imagem. Guarde essas chaves com a sua vida!

Agora o próximo passo é colocar a chave no scaleway:

Você vai precisar digitar: ssh-rsa {chave-pública-sem-quebra-de-linha}

Pronto, a partir de agora você está apto a criar servidores.

Criando os servers

Volte para o dashboard, agora vamos criar os servers. As imagens abaixo mostram como criar seu servidor.

Repita esse procedimento para todas as máquinas que você queira criar. Mas fique atento com os nomes dos servidores, você ficará incomodado caso tente renomear, pois verá que embora no dashboard permite renomear ele só renomeia no dashboard, e o console da máquina permanecerá com o nome de criação, e vc precisará fazer alguns ajustes para que ambos tenham o mesmo nome.

Conectando aos servidores

Agora é hora de conectar nas máquinas, isso pode ser feito com putty ou com winscp.

Os IP’s públicos e privados estão no dashboard, de cada um do servers. No caso dos meus, são:

gago-swarm-01    51.15.236.125    10.15.7.163
gago-swarm-02    51.15.203.137    10.14.139.7
gago-swarm-03    51.15.254.170    10.14.255.149
gago-swarm-04    51.15.252.140    10.14.112.159

Quando for criar o cluster swarm, essa informação será mais relevante.

Instalando dependências e Docker

Uma vez conectado em um dos servidores, é hora de instalar o docker. Eu faço algumas instalações adicionais pois me ajudam na administração da máquina.

#Server Update
sudo apt-get update && sudo apt-get upgrade -y

#Pacotes Necessários e Adicionais
sudo apt-get update 
&& sudo apt-get install 
htop 
ctop 
mc 
wget 
curl 
apt-transport-https 
ca-certificates 
software-properties-common 
-y

#Adicionando repositório
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 
#Adicionando chave
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 
#Instalando Docker
sudo apt-get update && sudo apt-get install docker-ce -y
 
#Adicionando usuário ao grupo
sudo usermod -aG docker $USER
 
# Docker Login
docker login 

O último passo acima, é o docker login, use suas credenciais do docker hub.

Validando a instalação do docker

Agora é hora de testar o docker

#Executando Hello World
docker run hello-world

Instalando docker compose

Vamos adicionar o docker-compose:

#Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Por fim vamos validar as versões instaladas do docker-compose e do docker:

#Validando as versões
clear docker version && docker-compose version

Configurando cluster Swarm

Uma vez que todas os servidores estão ok, vamos fazer a configuração do docker swarm:

Minha estratégia é usar os servidores gago-swarm-01 e gago-swarm-02 como masters enquanto os servidores gago-swarm-03 e gago-swarm-04 serão apenas nós. Para isso eu executo o seguinte comando no primeiro nó que quero que seja master no meu cluster (gago-swarm-01):

 docker swarm init --advertise-addr 10.15.7.163

O resultado desse comando é o comando de criação de nós comuns. Copie o resultado (docker swarm join) e execute nos nós que NÃO serão masters.

Para o segundo master (gago-swarm-02), você precisa voltar ao gago-swarm-01 e executar o comando:

docker swarm join-token manager

O output trará o comando para ser executado em gago-swarm-02 e fazê-lo entrar no cluster como o 2° master.

Agora temos um cluster docker swarm pronto!

Rode docker info em cada um dos nós. No resultado verifique o status do cluster como mostra as imagens abaixo.

Bom, agora seu cluster swarm está disponível!

Bonus – Portainer:

Se você ainda não está ambientado à linha de comando, pode utilizar o portainer. Alguns irão dizer que é para noob… bom, é! Mas ajuda no dia-a-dia.

docker volume create portainer_data

docker service create 
--name portainer 
--publish 9000:9000 
--replicas=1 
--constraint 'node.role == manager' 
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock 
--mount type=volume,src=portainer_data,dst=/data 
portainer/portainer 
-H unix:///var/run/docker.sock

O resultado será algo assim:

Para conseguir visualizar seu portainer, você precisará abrir a porta 9000 no security group. Abaixo segue meu exemplo de configuração de security group.

Gostou?

Tem evento hoje 11/Julho no Canal .NET |

Kubernetes e Docker Swarm: orquestrando containers Docker

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[docker de a a z]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.