Mais servidores
Adicionando um
Adicionar servidor no console: informe o nome, o IP e o usuário SSH do servidor, confirme a impressão digital da chave dele e autorize uma chave temporária (ou cole a sua). O Orbit roda as mesmas verificações e o mesmo plano da primeira máquina e, depois da sua aprovação, coloca o servidor no cluster como agente do K3s, com o seu próprio agente do Orbit. Serviços novos podem então ser colocados nele.
Mais servidores trazem espaço, não alta disponibilidade
Um serviço roda no servidor que você escolher e para se esse servidor parar, a menos que seja uma aplicação espalhada entre servidores ou um banco com réplicas de PostgreSQL. O tráfego entra pelo servidor principal, então os domínios continuam apontando para ele.
Requisitos de rede
- Todo servidor precisa alcançar o IPv4 do servidor principal em TCP 6443 (Kubernetes) e 7443 (agentes do Orbit).
- O servidor principal precisa alcançar todos os outros em TCP 10250 (logs e comandos).
- Todos os servidores precisam se alcançar em UDP 51820 (WireGuard, que criptografa o tráfego entre eles).
- O Orbit abre essas portas no servidor principal só para os seus servidores. Quando o ufw está ativo num servidor, o Orbit também libera ali os endereços dos outros. Um servidor que entra depois não é adicionado às regras do ufw dos que entraram antes: rode
sudo ufw allow from <ip do novo servidor>neles.
A primeira entrada reinicia o K3s uma vez no servidor principal para ligar o WireGuard. As aplicações em execução continuam rodando.
Builds e atualizações
- Os builds rodam no servidor principal. Uma aplicação de repositório pode rodar num servidor da mesma arquitetura: o Orbit copia a imagem para lá antes de cada deploy.
- O
install.shatualiza o Orbit e o agente do servidor onde roda. Os agentes dos servidores adicionados ficam na versão em que foram instalados.
Agentes
O agente de cada servidor informa a saúde e o inventário dele por TLS mútuo. Um servidor fica offline cerca de 90 segundos depois do último sinal, e o console passa a mostrar os workloads dele como desconhecidos.
sudo orbit revoke-agent --server srv_… # recusa o agente daquele servidor na hora
sudo orbit enroll-agent --server srv_… # na mesma máquina: token novo, certificado novo, agente reiniciadoOs ids dos servidores estão no orbit status. Quando um agente se registra, os certificados que o servidor tinha antes são revogados, então só o registro mais novo vale.
Olhando o cluster
sudo k3s kubectl get nodes -L orbit.cortexlabs.dev/server
sudo k3s kubectl get pods -A -o wide
journalctl -u k3s-agent -f # no outro servidor