Visão geral
Um cluster é a infraestrutura onde os apps, bancos e volumes de um ambiente rodam. Há dois tipos: o cluster GoShip, a infraestrutura compartilhada que o GoShip opera, e os clusters seus, em hardware que é seu. O GoShip roda a plataforma nos dois; muda de quem é a máquina e como ela é cobrada.
Um cluster é da organização. Qualquer ambiente de qualquer projeto da organização pode rodar nele, e o mesmo cluster pode servir vários ambientes ao mesmo tempo.
Cluster GoShip e cluster seu
| Cluster GoShip | Cluster seu | |
|---|---|---|
| A máquina | do GoShip, compartilhada | sua |
| Quem cobra a máquina | o GoShip, dentro do plano de cada app e banco | o seu provedor, direto de você |
| Cobrança do GoShip | por plano, em cada app e banco | por cluster, pela capacidade medida (Kubernetes conectado: beta, sem cobrança); os apps não têm cobrança extra |
| Sandbox | obrigatório | padrão, mas opcional, nas máquinas que o GoShip monta; não existe em Kubernetes conectado (Sandbox) |
| Volumes | não tem | tem, nas máquinas que o GoShip instala (Volumes) |
| Apps privados | sim | sim, exceto em Kubernetes conectado (Apps privados) |
Três jeitos de ter um cluster seu
- Criar na sua nuvem. Você conecta uma conta de nuvem (DigitalOcean, Hetzner Cloud, Latitude.sh, AWS ou Google Cloud) uma vez, escolhe região e tamanho, e o GoShip cria a máquina, instala o k3s nela e registra o cluster. Veja Criar na sua nuvem.
- Conectar um servidor. Você já tem a máquina, um VPS Linux de qualquer provedor. O GoShip entra por SSH, instala o k3s e registra o cluster. Veja Conectar um servidor.
- Conectar um Kubernetes. Você já roda um cluster Kubernetes e entrega o
kubeconfigdele. Veja Conectar Kubernetes.
goship cluster create meu-cluster --cloud minha-conta --region nyc3 --size s-2vcpu-4gb
goship cluster create meu-servidor --host 203.0.113.10 --ssh-key ~/.ssh/id_ed25519
goship cluster create meu-k8s --kubeconfig ~/.kube/config
goship clusters # os clusters que a organização pode usarAs duas primeiras formas dão uma máquina que o GoShip monta e conhece por inteiro. A terceira conecta um cluster que já existia, que o GoShip não montou: por isso ela tem algumas limitações, apontadas nas páginas.
Como um ambiente usa um cluster
Onde os apps rodam é decidido pelo ambiente, nunca por app. Um dono ou administrador da organização aponta o ambiente para um cluster ao criá-lo, pela CLI ou pelo painel (Environments):
goship environment create qa --cluster meu-cluster
goship cluster create meu-cluster --cloud minha-conta --region nyc3 --size s-2vcpu-4gb --environment developmentA segunda forma aponta um ambiente que já existe ao criar o cluster; ele passa a rodar nele assim que o cluster ficar active. Não existe escolher o cluster na hora de criar o app: o app roda no cluster do ambiente em que você está. Os detalhes, inclusive como trocar o cluster de um ambiente que já existe, estão em Ambientes.
Apps, bancos e volumes que já existem nunca mudam de cluster. Se você aponta para outro cluster um ambiente que já tem recursos, eles ficam onde estão e o projeto fica fixado no cluster antigo; para mudar, crie o recurso de novo no destino.
Um espaço por projeto
Num cluster seu, cada projeto ganha um namespace próprio por ambiente: os apps, bancos e volumes de um projeto ficam separados dos de outro projeto da organização que use o mesmo cluster. O espaço só é criado quando o projeto cria o primeiro app, banco ou volume no ambiente.
- Clusters que o GoShip monta (criados na sua nuvem ou conectados por SSH): além do namespace, há isolamento de rede entre os projetos.
- Kubernetes conectado: só o namespace. O GoShip não aplica isolamento de rede entre os projetos; a rede entre namespaces é a que o seu cluster já tem.
Clusters criados antes dos ambientes continuam como eram, sem namespace por projeto.
Se você já tinha um servidor conectado
O servidor aparece em Clusters com o nome que tinha. Os apps que rodavam nele continuam lá, sem mudar nada: mesmos nomes, mesmos endereços. No ambiente em que estão, o projeto aparece fixado a esse cluster em Project settings. Nada se move sozinho: o GoShip nunca muda um recurso de cluster (Fixar um projeto em outro cluster).
Quando faz sentido
- Cresceu além do cluster GoShip: precisa de mais do que ele oferece
- Compliance e soberania de dados: os dados precisam ficar em hardware específico, ou numa região onde o GoShip não opera
- Regulação setorial: fintech, healthtech, dados sensíveis
- Workloads especiais: GPU, eBPF, módulos de kernel, o que o sandbox compartilhado bloqueia
- Custo previsível em escala: quando o preço por recurso do cluster GoShip passa a custar mais que o seu hardware
- Ambientes separados: desenvolvimento e homologação numa máquina barata sua e produção no cluster GoShip, ou o contrário
Quem gerencia
O dono e os administradores da organização criam, redimensionam e removem clusters, e apontam os ambientes para eles. Os desenvolvedores publicam nos ambientes que já existem, em qualquer cluster. Veja Organizações e projetos.
Remover um cluster
goship cluster rm meu-cluster
goship cluster rm meu-cluster --destroy-server # cluster criado na nuvem: destrói a máquina tambémO GoShip recusa remover um cluster enquanto algum ambiente aponta para ele ou algum projeto ainda roda algo nele. Remover desconecta o cluster do GoShip. Num cluster criado na sua nuvem, a máquina continua rodando, e o provedor continua cobrando você, a menos que você use --destroy-server (ou marque a opção no painel).
Cobrança
- Por cluster: os clusters que o GoShip cria, na sua nuvem ou por SSH, custam de R$ 59,90 a R$ 239,00 por mês, conforme a capacidade medida
- Kubernetes conectado: em beta, não é cobrado enquanto o GoShip não mede a capacidade dele
- Sem assinatura de base: criou o cluster, começa a cobrar; removeu, para
- Apps e volumes nos seus clusters: não geram cobrança extra, porque você já paga o hardware
- Bancos: seguem o servidor onde ficam, não o cluster; num servidor de banco seu o GoShip não cobra, e no PostgreSQL do GoShip vale o plano do banco
Detalhes em Clusters → Cobrança.
Próximos passos
- Contas de nuvem: conectar DigitalOcean, Hetzner Cloud, Latitude.sh, AWS ou Google Cloud
- Criar na sua nuvem: o GoShip cria a máquina
- Conectar um servidor: uma máquina sua, via SSH
- Conectar Kubernetes: um cluster existente, via kubeconfig
- Suporte: como falar com a gente no beta