Distribuições do Kubernetes - visão rápida de kubeadm, k3s, MicroK8s, Minikube, Talos Linux e RKE2

Breve visão geral das variantes do Kubernetes

Conteúdo da página

Comparando distribuições de self-hosting Kubernetes para hospedagem em servidores bare-metal ou domésticos, com foco na facilidade de instalação, desempenho, requisitos do sistema e conjuntos de recursos.

Na comparação abaixo, estamos prestando atenção principalmente à simplicidade, aos requisitos do sistema e ao conjunto de recursos de cada distribuição do Kubernetes. A comparação detalhada pode ser vista aqui: Comparação de Distribuições do Kubernetes para um Homelab com 3 Nós.

discussão no escritório

🧪 Tabela de Comparação / TL;DR

Funcionalidade kubeadm k3s MicroK8s Minikube Talos Linux RKE2
Facilidade de Instalação ❌ Difícil ✅ Muito Fácil ✅ Muito Fácil ✅ Fácil ⚠️ Moderada ⚠️ Moderada
Uso de Recursos ⚠️ Moderado ✅ Baixo ⚠️ Moderado ✅ Baixo ⚠️ Moderado ⚠️ Moderado
Suporte a Múltiplos Nós ✅ Manual ✅ Integrado ✅ Integrado ❌ Limitado ✅ Declarativo ✅ Integrado
Amigável para Servidor Doméstico ⚠️ Sim ✅ Excelente ✅ Excelente ⚠️ Limitado ⚠️ Sim ✅ Sim
Rede Integrada ❌ (CNI req) ✅ (flannel/klipper-lb) ✅ flannel ✅ containerd bridge ✅ sim ✅ sim
Runtime de Container Sua escolha containerd containerd containerd containerd containerd
Dependência do Sistema Operacional Qualquer Linux Qualquer Linux Ubuntu ideal Qualquer OS Talos apenas Qualquer Linux

Aqui está uma análise detalhada:

🧩 Principais Variantes do Kubernetes para Self-Hosting

1. Kubernetes (vanilla) – kubeadm

  • Descrição: Kubernetes oficial upstream usando kubeadm como ferramenta de inicialização.

  • Melhor para: Aprender Kubernetes de forma difícil, clusters DIY semelhantes a produção.

  • Requisitos do Sistema:

    • CPU: ≥2 núcleos por nó.
    • RAM: ≥2GB (≥4GB recomendado).
    • Disco: 20GB+.
    • SO: Linux (Ubuntu, CentOS, Debian, etc.)
  • Dificuldade de Instalação: ⚠️ Avançado

    • Exige configuração do runtime de container (containerd, CRI-O), rede (plugins CNI) e mais.
    • Flexível, mas muito manual.
  • Adequação para Baremetal: Boa, mas alto esforço.


2. k3s (por Rancher)

  • Descrição: K3s é uma distribuição leve do Kubernetes otimizada para IoT, edge e laboratórios domésticos.

  • Melhor para: Laboratórios domésticos, Raspberry Pis, máquinas com recursos limitados.

  • Requisitos do Sistema:

    • CPU: 1 núcleo mínimo.
    • RAM: 512MB mínimo (1GB+ recomendado).
    • Disco: 1GB mínimo (10GB+ ideal).
  • Dificuldade de Instalação: ✅ Muito Fácil

    • Único binário, instala com um único script.
    • Inclui containerd, rede simplificada, etc.
  • Adequação para Baremetal: Excelente.

  • Funcionalidades Especiais:

    • SQLite como armazenamento padrão (pode usar etcd ou banco de dados externo).
    • Balanceador de carga integrado (klipper-lb).
    • Implantação automática de manifestos via /var/lib/rancher/k3s/server/manifests.

3. MicroK8s (por Canonical)

  • Descrição: MicroK8s é uma distribuição do Kubernetes em único pacote, projetada para simplicidade e modularidade.

  • Melhor para: Desenvolvedores, clusters de teste, ambientes de produção pequenos.

  • Requisitos do Sistema:

    • CPU: 1+ núcleos.
    • RAM: 2GB mínimo (4GB+ ideal).
    • Disco: 20GB+.
    • SO: Linux (melhor em Ubuntu).
  • Dificuldade de Instalação: ✅ Muito Fácil

    • snap install microk8s --classic
    • Vem com add-ons integrados (dashboard, Istio, Knative, etc.)
  • Adequação para Baremetal: Excelente, especialmente no Ubuntu.

  • Notas:

    • Usa sua própria rede (flanneld).
    • Tem clustering HA automático com microk8s add-node.

4. Minikube

  • Descrição: Minikube é uma ferramenta para executar Kubernetes localmente usando VMs ou containers.

  • Melhor para: Desenvolvimento local apenas.

  • Requisitos do Sistema:

    • CPU: 2+ núcleos.
    • RAM: 2GB+.
    • Disco: 20GB+.
  • Dificuldade de Instalação: ✅ Muito Fácil

    • Instala via minikube start.
  • Adequação para Baremetal: Limitada (requer virtualização).

  • Não ideal para implantação multi-nó ou real.


5. Talos Linux

  • Descrição: Talos Linux é um sistema operacional seguro e imutável projetado para executar apenas Kubernetes.

  • Melhor para: Usuários avançados buscando configuração segura e orientada a GitOps.

  • Requisitos do Sistema:

    • CPU: 2+ núcleos.
    • RAM: 2GB+.
    • Disco: 8GB+.
  • Dificuldade de Instalação: ⚠️ Moderada a Difícil

    • Exige geração de configurações, inicialização do Talos OS e instalação do Kubernetes via talosctl.
  • Adequação para Baremetal: Boa para profissionais; não amigável para iniciantes.

  • Notas:

    • O sistema operacional é gerido de forma declarativa via API do Talos.
    • Nenhuma SSH, nenhum gerenciador de pacotes.

6. Flatcar Container Linux + kubeadm

  • Descrição: Flatcar Container Linux é um sistema operacional imutável projetado para containers, como o CoreOS.

  • Melhor para: Segurança e footprint do sistema operacional mínimo.

  • Requisitos do Sistema: Semelhantes aos de kubeadm.

  • Dificuldade de Instalação: ⚠️ Avançado

    • Você gerencia a instalação do Kubernetes via kubeadm sobre o Flatcar.
  • Adequação para Baremetal: Boa para configurações avançadas.


7. RKE / RKE2 (Rancher Kubernetes Engine)

  • Descrição: Instalador próprio do Rancher para Kubernetes.

  • Melhor para: Clusters gerenciados pelo Rancher, ambientes híbridos.

  • Requisitos do Sistema:

    • Semelhantes aos de kubeadm.
  • Dificuldade de Instalação: ⚠️ Moderada

    • RKE é baseado em Docker.
    • RKE2 é mais novo e reforçado (usa containerd, SELinux, etc.).
  • Adequação para Baremetal: Boa para usuários familiarizados com o Rancher.


🔧 Recomendações

Iniciantes / Laboratórios Domésticos / Clusters de Raspberry Pi

  • Use: k3s ou MicroK8s
  • Por quê: Muito simples, uso baixo de recursos, instalação rápida.

Usuários Intermediários / Querem Aprender os Internos do Kubernetes

  • Use: kubeadm ou RKE2
  • Por quê: Mais próximo do upstream; mais manual, mas altamente educativo e personalizável.

Foco em Segurança / Infraestrutura Imutável

  • Use: Talos Linux
  • Por quê: Seguro, nativo de GitOps, controle no nível do sistema operacional, mas curva de aprendizado acentuada.

⚙️ Exemplo de Instalação – k3s

curl -sfL https://get.k3s.io | sh -

Feito. O kubeconfig está em /etc/rancher/k3s/k3s.yaml

Distribuições do Kubernetes mencionadas neste post