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