Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

K3s vs K8s: como escolher a distribuição Kubernetes certa para o seu workload

By Josh PalmerJun 12, 202611 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

TL;DR

K3s e K8s executam os mesmos workloads Kubernetes, mas se diferenciam em arquitetura, requisitos de recursos e complexidade operacional. O K3s empacota tudo em um único binário de menos de 70MB e usa SQLite por padrão, sendo a escolha certa para edge, desenvolvimento e produção em pequena escala. O Kubernetes padrão traz mais componentes, mais overhead e uma superfície operacional maior — e essa complexidade compensa em escala enterprise. A decisão se resume ao que o seu time realmente precisa rodar hoje, não ao que soa mais sofisticado.

Tanto o K3s quanto o K8s são distribuições Kubernetes certificadas. Os workloads escritos para um rodam no outro sem nenhuma alteração. A API é a mesma, o kubectl funciona do mesmo jeito e os Helm charts são implantados igual. As diferenças são arquiteturais, não funcionais, e essas diferenças arquiteturais criam realidades operacionais bem distintas para times de CloudOps. Entender a arquitetura do Kubernetes é pré-requisito para tomar essa decisão bem.

Qual é a diferença fundamental entre K3s e K8s?

O Kubernetes padrão (K8s) foi projetado para produção em escala enterprise desde o início. Seu control plane roda como processos separados (API server, scheduler, controller manager e etcd), cada um escalável e isolável contra falhas de forma independente. Essa separação amplia a superfície operacional, mas viabiliza a alocação granular de recursos e a resiliência por componente da qual a produção em larga escala depende.

O K3s nasceu na Rancher Labs em 2019, como um projeto sandbox da CNCF, para resolver um problema específico: rodar Kubernetes em ambientes onde o control plane completo do K8s era pesado demais. Ele empacota todos os componentes do control plane em um único binário, substitui o etcd por SQLite por padrão, remove componentes legados e opcionais e já traz Flannel, CoreDNS, Traefik e containerd na instalação. O resultado é uma instalação em poucos minutos em hardware no qual o K8s nem rodaria.

O Annual Survey 2024 da CNCF apontou que 93% das organizações usam, estão pilotando ou avaliando Kubernetes, e o K3s cresceu para 5.964 contribuidores, com aumento de 15% ano a ano em organizações contribuintes — o que reflete adoção real em produção, e não uso experimental (CNCF). As duas distribuições são production-grade. A questão é qual realidade de produção cada uma atende melhor.

K3s vs K8s em resumo. Atualizado em maio de 2026.

Dimensão K3s K8s (padrão)
Tamanho do binário Menos de 70MB Vários componentes
RAM mínima por nó 512MB 2GB+
Datastore padrão SQLite (nó único) / etcd embarcado (HA) etcd
Tempo de instalação Minutos Horas a dias
Componentes empacotados Flannel, CoreDNS, Traefik, containerd Escolher e configurar separadamente
Suporte a ARM ARM64 e ARMv7 nativos ARM64 suportado, menos otimizado

O que o K3s realmente muda em relação ao Kubernetes padrão?

O K3s não tira capacidades do Kubernetes. Ele tira peso. A API completa do Kubernetes continua intacta. O que muda é como os componentes internos são organizados e o que já vem pré-configurado.

Arquitetura de binário único vs. componentes distribuídos: o que muda na prática?

O Kubernetes padrão executa cada componente do control plane como um processo separado. API server, controller manager, scheduler e etcd rodam de forma independente, se comunicam pela rede e podem ser escalados e monitorados individualmente. Essa separação traz isolamento de falhas por componente, o que faz diferença em escala — um problema no controller manager não deveria afetar a disponibilidade do API server.

O K3s reúne todos os componentes do control plane em um único processo de servidor. Menos comunicação entre processos, gerenciamento de processos mais simples e consumo de recursos drasticamente menor. A contrapartida é menos isolamento por componente. Para clusters pequenos em que a simplicidade operacional pesa mais que o isolamento, esse trade-off é aceitável. Para grandes clusters de produção em que o control plane é infraestrutura crítica, não é.

SQLite por padrão vs. etcd obrigatório: quando a escolha do datastore importa?

O Kubernetes usa etcd como datastore por padrão. O etcd é um banco chave-valor distribuído, feito sob medida para alta disponibilidade e consistência forte. Ele lida com eleição de líder em um cluster de nós, tolera falhas de nó e escala bem conforme o estado do cluster cresce. Também consome memória e CPU significativos e exige gerenciamento adequado: rotinas de backup, compactação e rotação de certificados de peers para se manter saudável ao longo do tempo.

O K3s usa SQLite por padrão em deployments de nó único. O SQLite é embarcado no binário, tem overhead próximo de zero e não exige processo externo. Para um cluster de servidor único rodando um punhado de workloads, dá conta do recado. O projeto K3s adicionou suporte estável a etcd embarcado na v1.19, então times que precisam de HA podem rodar K3s com datastore baseado em etcd em três nós servidores. O K3s também suporta datastores externos via MySQL ou PostgreSQL pelo Kine, dando aos times que rodam bancos gerenciados um caminho para HA sem precisar operar etcd separadamente.

Quais componentes o K3s remove, e isso importa?

O K3s remove recursos alpha, plugins de armazenamento in-tree legados de cloud providers e add-ons não essenciais. Plugins de storage específicos de AWS, GCP e Azure são removidos em favor do CSI. O que sobra é o Kubernetes core com defaults pré-escolhidos: Flannel, Traefik, CoreDNS. Para a maioria dos workloads, nenhum dos componentes removidos faz falta. Para workloads efêmeros e jobs de curta duração, a superfície reduzida diminui tanto o overhead operacional quanto a superfície de ataque. Times com ferramentas que assumem drivers de storage in-tree específicos ou com requisitos de compliance em torno de admission controllers específicos precisam validar a compatibilidade antes de fechar a escolha.

Em que cada distribuição realmente se destaca em produção?

O Annual Survey 2024 da CNCF apontou que 80% das organizações rodam Kubernetes em produção, ante 66% em 2023 (CNCF). Essa adoção abrange uma ampla gama de contextos operacionais, e K3s vs K8s não é uma escolha binária. A resposta certa depende de onde os seus workloads se encaixam nesse intervalo.

Onde o K3s se encaixa em produção?

O K3s é a escolha certa para ambientes de produção em que simplicidade operacional e eficiência de recursos importam mais do que profundidade de ecossistema. Edge computing é o caso de uso clássico: lojas, plantas industriais e infraestrutura de telecom rodando workloads conteinerizados em hardware que não foi dimensionado para um control plane Kubernetes completo. O suporte do K3s a ARM64 e ARMv7 o torna a escolha prática para orquestração de IoT, onde o Kubernetes padrão simplesmente não caberia no dispositivo.

Clusters de produção em pequena escala, de cinco a vinte nós, rodando aplicações internas, pipelines de desenvolvimento ou microsserviços que não exigem o ecossistema Kubernetes completo, rodam bem no K3s. Ambientes de desenvolvimento e CI/CD em que velocidade de spin-up e custo de recursos importam ganham valor imediato com o tempo de instalação abaixo de um minuto do K3s.

O K3s também se encaixa em arquiteturas hub-and-spoke: Kubernetes padrão no centro e clusters K3s em locais distribuídos na borda. O mesmo ferramental kubectl, os mesmos manifestos YAML e os mesmos Helm charts funcionam dos dois lados. A otimização de custos do Kubernetes em uma frota de nós K3s de edge usa as mesmas ferramentas de inteligência de custos que se aplicam ao Kubernetes padrão.

Onde entra o Kubernetes padrão?

O Kubernetes padrão justifica sua complexidade em ambientes que de fato precisam do que ele oferece: clusters multi-tenant com requisitos rigorosos de isolamento, workloads que precisam de controles de compliance enterprise e audit logging, deployments em larga escala em que o isolamento por componente do control plane evita propagação de falhas e organizações que precisam de integração profunda com serviços de cloud providers via EKS, GKE ou AKS.

O ecossistema do Kubernetes padrão é mais profundo do que o do K3s. Milhares de operators, Helm charts e integrações foram construídos sobre o Kubernetes padrão. Service meshes, plugins de rede avançados, operators de scheduling de GPU e ferramentas de segurança enterprise assumem um deployment de Kubernetes padrão. Times que constroem plataformas internas de desenvolvedores precisam da configurabilidade do control plane e da profundidade de ecossistema que o Kubernetes padrão oferece. O custo de operá-lo é real, e a Kubernetes Intelligence e o right-sizing via PerfectScale by DoiT ajudam os times a gerenciar esse overhead, expondo quanto os clusters de fato custam.

Como ficam as operações day-2 em cada distribuição?

O setup do day-1 é onde a simplicidade do K3s mais aparece. Já as operações day-2 — especialmente upgrades, backup e alta disponibilidade — são onde as diferenças arquiteturais entre K3s e K8s geram cargas de trabalho contínuas bem distintas para times de CloudOps.

Como diferem os caminhos de upgrade e o gerenciamento de versões?

Upgrades do K3s substituem um único binário, atualizando todos os componentes do control plane em uma etapa. O system-upgrade-controller da Rancher automatiza isso para frotas de nós K3s por meio de um mecanismo baseado em planos. Para upgrades manuais: rode o script de instalação do K3s informando a versão alvo, atualize os nós servidores um a um e, depois, os nós agent.

Os caminhos de upgrade do Kubernetes padrão exigem coordenação entre vários componentes. Serviços gerenciados como EKS, GKE e AKS abstraem boa parte disso. Clusters auto-gerenciados exigem coordenação cuidadosa, passo a passo, em especial nos saltos entre versões minor. O K3s segue a mesma política de version skew do Kubernetes. Você não pode pular versões minor. Atualizar da v1.28 para a v1.33 exige passar por cada versão intermediária. Pular essa sequência expõe o cluster a problemas de consistência de dados nas transições de versão do etcd.

Como diferem as estratégias de backup e disaster recovery?

A estratégia de backup do K3s depende do datastore. Clusters de nó único com SQLite: faça backup do diretório de dados do K3s. Clusters HA com etcd embarcado: o K3s oferece um comando de snapshot embutido, com cron agendado, retenção configurável e restore point-in-time. Guarde os snapshots fora do nó. Um cluster com master único e snapshots só locais não tem proteção contra falha de disco do master.

O backup no Kubernetes padrão gira em torno do etcd. Ferramentas como o Velero cuidam de snapshots do etcd e backups de volumes persistentes para workloads stateful. Clusters etcd em HA replicam automaticamente, mas isso não substitui snapshots point-in-time quando uma corrupção se propaga entre réplicas. Nas duas distribuições, o disaster recovery deve separar a recuperação do control plane da recuperação dos workloads. Cloud management platforms que exibem o status de backup entre clusters reduzem o peso operacional de manter esses procedimentos.

Como difere a configuração de alta disponibilidade?

O HA do K3s exige três nós servidores para manter o quorum do etcd. A abordagem de etcd embarcado faz com que adicionar um nó servidor já adicione automaticamente um membro do etcd. Como alternativa, o K3s suporta datastores externos via PostgreSQL ou MySQL pelo Kine, e o cluster do banco cuida do próprio HA.

O HA do Kubernetes padrão separa as responsabilidades: o etcd roda como seu próprio cluster, os componentes do control plane rodam com eleição de líder e um load balancer fica na frente dos API servers. Serviços gerenciados como EKS, GKE e AKS abstraem boa parte disso. O HA do K3s é mais simples de configurar para times sem engenheiros dedicados de plataforma Kubernetes. O HA do Kubernetes padrão oferece mais flexibilidade arquitetural, mas exige mais expertise para configurar e mais atenção contínua para se manter saudável.

Como tomar a decisão certa entre K3s e K8s para o seu ambiente?

O framework de decisão se resume a três variáveis: restrições de recursos, capacidade operacional e trajetória de crescimento.

Escolha o K3s quando o deployment for para hardware com recursos limitados, locais de edge ou distribuídos, hardware ARM ou ambientes em que velocidade de spin-up e simplicidade operacional importam mais que profundidade de ecossistema. O K3s é o ponto de partida certo para clusters internos de desenvolvimento, ambientes de CI/CD e pequenos clusters de produção em que gerenciar um control plane Kubernetes completo consome uma capacidade de engenharia que deveria ir para a entrega da aplicação.

Escolha o Kubernetes padrão quando os workloads exigem o ecossistema completo, controles de compliance enterprise ou isolamento de componentes do control plane em escala, ou quando você está rodando em EKS, GKE ou AKS, onde a complexidade operacional fica em grande parte abstraída. É a escolha certa de longo prazo para times de plataforma que constroem plataformas internas de desenvolvedores e para organizações em que o Kubernetes é infraestrutura crítica de serviços que geram receita.

A terceira opção é usar os dois. Muitas organizações rodam Kubernetes padrão para workloads centrais e clusters K3s em locais distribuídos na borda, usando o mesmo ferramental e os mesmos manifestos em ambos. O 2024 Kubernetes Benchmark Report da CNCF apontou que 30% das organizações ainda precisam fazer right-sizing de containers para melhorar a eficiência (CNCF), ou seja, lacunas de alocação de recursos existem independentemente da distribuição escolhida. Escolher a distribuição certa resolve a questão do encaixe arquitetural; resolver a questão da eficiência de custo exige visibilidade do que os workloads de fato usam versus o que eles solicitam.

Fale com a DoiT sobre rodar Kubernetes sem transformar o seu time de CloudOps em uma operação Kubernetes em tempo integral — seja com K3s, K8s ou os dois. A DoiT Kubernetes Intelligence expõe dados de custo e performance em todos os seus clusters, independentemente da distribuição. O PerfectScale by DoiT faz otimização in-place de recursos para workloads Kubernetes sem restarts nem interrupções. Fale com a DoiT para ver como é a arquitetura Kubernetes certa para o seu contexto operacional.

Perguntas frequentes sobre K3s vs K8s

O K3s consegue rodar os mesmos workloads que o Kubernetes padrão?

Sim. O K3s é uma distribuição Kubernetes certificada pela CNCF e passa pela suíte de testes de conformidade do Kubernetes. Qualquer workload que roda no Kubernetes padrão roda no K3s sem nenhuma alteração. A API do Kubernetes é idêntica, os comandos kubectl funcionam do mesmo jeito e os Helm charts são implantados sem mudanças. As diferenças estão na arquitetura do control plane, nos requisitos de recursos e em quais componentes opcionais já vêm empacotados — não na compatibilidade de workloads.

O K3s está pronto para produção?

O K3s roda em produção em escala em edge computing, varejo, IoT e deployments de nuvem de pequeno e médio porte. A SUSE o mantém como um produto enterprise com suporte. Ele oferece alta disponibilidade com etcd embarcado, rolling upgrades e backup e restore automatizados. A prontidão para produção depende do encaixe com os requisitos do seu workload, não da distribuição em si. Um cluster K3s alinhado à sua escala e ao seu modelo operacional está mais pronto para produção do que um cluster Kubernetes padrão que o seu time não tem expertise para manter.

Como fazer upgrade do K3s?

Os upgrades do K3s substituem um único binário que inclui todos os componentes do control plane. O caminho recomendado usa o system-upgrade-controller da Rancher para upgrades automatizados, baseados em planos, em uma frota. Upgrades manuais rodam o script de instalação do K3s informando a versão alvo. Atualize primeiro os nós servidores, valide a saúde do cluster e depois atualize os nós agent. Siga a política de version skew do Kubernetes. Pular versões minor expõe o cluster a problemas de consistência de dados.

Qual a diferença entre os requisitos de recursos do K3s e do K8s?

O K3s roda com 512MB de RAM e um único núcleo de CPU. O Kubernetes padrão exige no mínimo 2GB de RAM e 2 núcleos de CPU por nó. A pegada menor do K3s o torna a única escolha prática para dispositivos ARM, hardware IoT e nós de edge com recursos limitados. Em infraestrutura de nuvem padrão, o fator mais relevante é o overhead operacional — e a arquitetura de binário único do K3s exige consistentemente menos esforço de gerenciamento.