Skip to content
Pular para o conteúdo
Voltar ao Blog
Shulker: Gerenciando Servidores Minecraft Com Kubernetes

Shulker: Gerenciando Servidores Minecraft Com Kubernetes

Alexandru Maftei
Alexandru Maftei
@ice
Atualizado
20 visualizações
TL;DR:Shulker é um operador Kubernetes que automatiza a infraestrutura de servidores Minecraft em larga escala. Destinado a empresas de hospedagem e grandes redes, não para jogadores casuais. Conheça como usá-lo, seus principais recursos, etapas de instalação e quando você realmente precisa deste nível de orquestração.
GitHub - Projeto da comunidade Minecraft

Shulker (jeremylvln/Shulker)

Um operador Kubernetes para gerenciar infraestruturas Minecraft complexas e dinâmicas, incluindo servidores de jogo e proxies.

Marcar com estrela no GitHub ↗
⭐ 378 estrelas💻 Rust📄 AGPL-3.0

Se você está gerenciando mais de um servidor Minecraft e tem conhecimento básico de Kubernetes, Shulker pode ser a ferramenta que você não sabia que precisava. É um operador Kubernetes que automatiza o provisionamento, dimensionamento e gerenciamento de servidores Minecraft e proxies em escala. Não é para jogadores casuais criando um único servidor no laptop. É para quem gerencia infraestrutura (empresas de hospedagem, grandes redes, qualquer um orquestrando dezenas de servidores) e quer deixar de fazer gerenciamento repetitivo de servidores manualmente.

O que Este Projeto Faz

Shulker fica no topo do Kubernetes e trata servidores Minecraft como cargas de trabalho containerizadas. Em vez de fazer SSH em máquinas, clicar em botões em um painel de hospedagem ou escrever scripts personalizados para iniciar-parar servidores, você define a infraestrutura Minecraft em manifestos Kubernetes. Shulker observa esses manifestos e cria ou destrói servidores reais para corresponder ao que você declarou.

Pense nisso como infraestrutura como código para Minecraft.

A arquitetura central usa agentes implantados ao lado dos seus servidores de jogo. Esses agentes se comunicam com um controlador central, que lida com o provisionamento de novas instâncias de servidor, gerenciamento de proxies (como Velocity ou Waterfall) e orquestração de toda a rede. É construído em Rust, o que significa que é rápido e eficiente em memória em comparação com ferramentas semelhantes escritas em outras linguagens.

O projeto agora está na v0.13.0 e inclui uma nova ferramenta CLI (shulker-cli) para gerenciar servidores programaticamente. Você pode criar servidores sob demanda a partir de uma definição de frota, ou gerenciar tudo através de objetos Kubernetes padrão. A versão mais recente também corrigiu bugs no gerenciamento de esquema LoadBalancer e resolveu um problema de SDK para criação manual de servidores.


Por Que Você Usaria Isto

A maioria dos servidores Minecraft roda em uma única máquina. Mas se você é uma empresa de hospedagem ou está gerenciando uma rede com 50+ servidores que precisam escalar durante picos de demanda e reduzir para economizar custos, o gerenciamento manual se torna impossível. É aí que Shulker resolve um problema real.

  • Dimensionamento dinâmico: Precisa de 10 servidores a mais para um evento? Defina no Kubernetes e Shulker os cria. Evento termina? Reduza automaticamente.
  • Sem SSH manual: Deixe de fazer login em cinquenta máquinas para atualizar configurações de servidor ou reiniciar processos. Envie as alterações para seu manifesto, Shulker cuida da implementação.
  • Infraestrutura auto-reparável: Um servidor quebra? Kubernetes o reinicia. Shulker mantém tudo funcionando sem sua vigilância constante.
  • Previsibilidade de custos: Execute exatamente quantos recursos você precisa. Se estiver em infraestrutura em nuvem, isso economiza dinheiro de verdade.

Se você está rodando um pequeno servidor de sobrevivência para amigos, não precisa disso. Se você é um provedor de hospedagem gerenciando infraestrutura para milhares de jogadores, Shulker elimina inteiras categorias de problemas operacionais.


Instalação e Pré-requisitos

Shulker requer Kubernetes. Não Docker Compose, não um VPS com acesso SSH. Kubernetes de verdade. Se ainda não está familiarizado com kubectl, definições de recursos personalizadas (CRDs) e manifestos YAML, você precisará aprender isso antes.

A documentação do projeto está em shulker.jeremylvln.fr com um guia de introdução cobrindo pré-requisitos.

A instalação básica fica assim:

bash
kubectl apply -f https://github.com/jeremylvln/Shulker/releases/download/v0.13.0/stable.yaml

Isso baixa o manifesto da versão estável v0.13.0. Há também uma variante com métricas Prometheus incluídas se você quiser monitoramento. Após aplicar o manifesto, o operador Shulker é implantado no seu cluster e fica observando objetos de infraestrutura Minecraft.

Você também vai precisar de imagens de container para servidores Minecraft. Shulker não fornece imagens pré-construídas; você as define separadamente, usando uma imagem de servidor Minecraft existente do Docker Hub ou criando a sua. O operador orquestra containers, mas não os cria para você.


Como Os Principais Recursos Funcionam

Em seu núcleo, Shulker usa recursos personalizados do Kubernetes (CRDs) para descrever a infraestrutura Minecraft. Você define uma Fleet (um template para servidores), depois cria objetos MinecraftServer que referenciam a frota. Quando você aplica esse manifesto, Shulker cria um Pod Kubernetes executando seu container de servidor. Vários servidores? Defina vários objetos MinecraftServer. Shulker cria tantos Pods quanto você declarar.

A arquitetura baseada em agentes é inteligente. Cada Pod de servidor executa um agente Shulker que mantém uma conexão gRPC de volta ao controlador central. O controlador fica informado sobre a saúde do servidor, contagem de jogadores e outras métricas sem precisar de SSH ou polling constante.

O gerenciamento de rede é outro ponto forte. Shulker cuida da configuração de proxy para você. Se você tem 20 servidores e jogadores se conectando por um proxy BungeeCord ou Velocity, Shulker atualiza as configurações de proxy automaticamente conforme servidores aparecem e desaparecem. Sem edições manuais de configuração.

A nova ferramenta shulker-cli (adicionada na v0.13.0) permite que você crie servidores programaticamente em vez de escrever manifestos manualmente. Isso é útil para plataformas de hospedagem que precisam de APIs de criação dinâmica de servidores. Você também pode gerenciar tudo através da API gRPC diretamente se preferir.


Armadilhas Reais e Erros Comuns

Curva de aprendizado acentuada é a primeira. Se você está pensando "vou aprender Kubernetes enquanto configuro meus servidores Minecraft", prepare-se para uma fase difícil. Shulker assume que você já conhece kubectl, compreende redes Kubernetes e consegue resolver problemas de container. Não é uma crítica ao projeto; é apenas ser honesto sobre qual é o público-alvo.

The End City
The End City

O gerenciamento de container adiciona mais uma camada de complexidade. Você precisa construir ou encontrar imagens de servidor Minecraft que funcionem com o agente Shulker. Se usar uma imagem Java Minecraft padrão mas esquecer de incluir o binário do agente, o servidor não permanecerá conectado ao cluster. Os erros que você vai debugar são em nível Kubernetes, nem sempre problemas óbvios em nível Minecraft.

Requisições de recurso importam mais do que você imagina. Configure incorretamente os limites de recurso do Kubernetes nos seus Pods Minecraft e os servidores ficam OOMKilled (falta de memória) sob carga. Shulker não oculta a complexidade do Kubernetes; ele espera que você entenda sua camada de infraestrutura.

O licenciamento AGPL é importante notar. Se você modificar Shulker e distribuir, deve compartilhar essas modificações. Para uso interno, isso não é um problema. Para oferecer Shulker como parte de um serviço de hospedagem, existem implicações legais que você deve discutir com um consultor jurídico. O mantenedor menciona estar aberto a discussões sobre licenciamento comercial no GitHub.


Alternativas e Como Shulker se Compara

Se você precisa de orquestração de servidor mais simples, Docker Compose em um único VPS coloca seus servidores em funcionamento sem a sobrecarga do Kubernetes. Mas não escala facilmente para dezenas de servidores, e o failover é manual.

Painéis de controle de hospedagem tradicionais (Pterodactyl, por exemplo) permitem gerenciar múltiplos servidores através de uma interface web. É menos declarativo que Shulker, mas também tem uma curva de aprendizado menor se você não estiver confortável com Kubernetes. Pterodactyl assume que você já tem VMs ou máquinas físicas; Shulker assume que você tem um cluster Kubernetes.

Escrever operadores Kubernetes personalizados para infraestrutura Minecraft é possível se você quiser algo personalizado para suas necessidades exatas. Mas isso significa construir e manter seu próprio código. Shulker é open-source e ativamente mantido, o que economiza esforço de engenharia se resolver seu problema.

O projeto GitHub com 378 estrelas tem uma comunidade ativa e desenvolvimento contínuo. Novas versões são lançadas regularmente. Se você já está rodando Kubernetes e gerenciando múltiplos servidores Minecraft, Shulker realmente vale a pena avaliar. Se você não está em Kubernetes, a barreira de entrada é alta o bastante para você questionar se realmente precisa deste nível de infraestrutura.

Construir infraestrutura Minecraft é uma habilidade à parte. Quer melhorar a visibilidade do seu servidor enquanto o constrói? Confira o Criador de MOTD Minecraft para criar descrições atraentes de servidor que apareçam no menu multijogador. E se está hospedando comunidades de jogadores, Procure Skins Minecraft para encontrar recursos que combinem com o tema do seu servidor.

jeremylvln/Shulker - AGPL-3.0, ★378
Sobre o autor
Alexandru Maftei
Alexandru MafteiRedator-chefe

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Comentários

Nenhum comentário ainda. Seja o primeiro a compartilhar sua opinião!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy