Olá!
Estou rodando alguns serviços no meu home lab usando Docker. Embora sistemas como CasaOS, Umbrel e outros simplifiquem muito o uso do Docker, eles não resolvem o problema de disponibilidade dos serviços, pois não rodam em cluster. A solução óbvia parecia ser usar Kubernetes. No entanto, minha experiência profissional com Kubernetes confirma sua robustez, mas também sua complexidade, que seria exagerada para o meu cenário. Recentemente, o projeto TrueNAS deixou de usar Kubernetes para rodar apps e passou a usar Docker, o que corroborou ainda mais minha visão. Como meu objetivo era criar um cluster, decidi usar Docker Swarm.
Para quem não conhece, o Swarm é um modo de operação do Docker que permite o funcionamento em cluster. Ele tem dois tipos básicos de nós: managers e workers. Como os nomes sugerem managers são responsáveis pela gestão do cluster e workers por rodar os containers, mas é importante saber que os managers também rodam containers, além de gerenciar o cluster.
Para administrar este ambiente, estou usando o Portainer. A versão open source do Portainer é mais que suficiente para o que preciso. O Portainer facilita visualizar o que está acontecendo e ajustar eventuais falhas. Além disso, ele permite gerenciar templates de instalação, que, no fundo, são arquivos de configuração do Docker, tudo isso com uma interface web bastante amigável.
Como todo esse processo tem alguns detalhes a seguir, criei um script para a instalação de tudo isso. É só copiar e colar que ele cria o manager e fornece instruções sobre o que fazer para criar outros managers ou workers, além de instalar o Portainer.
Testei o script no Ubuntu 24.04, mas ele deve funcionar em outras versões e até no Debian (ainda preciso de tempo para testar).
Para quem quiser testar o script, ele está disponível no meu GitHub: https://github.com/juliosene/home-lab/tree/main/docker-swarm
O script é muito simples. Basta copiar e colar o conteúdo abaixo na máquina que será a manager.
wget https://install.cluster4.me -O install.sh
bash install.sh
Depois da execução, o script te dará instruções de como adicionar workers e managers, bem como a URL para acessar o Portainer.
Recomendo instalar em uma máquina crua rodando Ubuntu Server 24.04 LTS.
Espero ter ajudado.
Valeu!