Buscar

Kubernetes: O Que É e Para Que Serve

Kubernetes explicado para iniciantes. O que é, como funciona, quando usar, diferença Docker vs Kubernetes, arquitetura básica.

Gabriel Pedroso9 min de leitura
Kubernetes

Kubernetes (K8s) é um orquestrador de containers: ele gerencia muitos containers ao mesmo tempo, escala conforme a demanda, atualiza sem derrubar o serviço e reinicia o que falha — tudo automaticamente. A tese em uma frase: se o Docker resolve "rodar um container", o Kubernetes resolve "manter mil containers de pé, sozinho, enquanto você dorme". Criado pelo Google em 2014 e hoje mantido pela CNCF, virou o padrão de fato da indústria.

Se você já domina o Docker mas trava no Kubernetes — ou está avaliando se vale a pena adotá-lo — este guia explica o essencial sem jargão: o que é, como funciona e, principalmente, quando (e quando não) usar.

O Problema Que Kubernetes Resolve

Imagine uma aplicação Docker com 50 containers rodando. Alguns problemas aparecem quase de imediato:

Problema 1: Um container cai

Um dos seus 50 containers sai do ar (um erro, falta de memória) e os usuários ficam sem serviço. Você vai perceber e reiniciar na mão, de madrugada? O Kubernetes detecta e reinicia sozinho.

Problema 2: O tráfego dispara (Black Friday)

Você tem 50 containers e, na Black Friday, o tráfego sobe 10x. Seria preciso subir 450 containers novos em minutos — impossível manualmente. O Kubernetes escala automaticamente conforme a carga.

Problema 3: Deploy sem downtime

Saiu uma versão nova. Se você parar os 50 containers de uma vez, a aplicação cai. O certo é atualizar aos poucos, conferindo a cada lote. O Kubernetes faz esse rolling update sozinho, sem tirar o serviço do ar.

Problema 4: Balanceamento de carga

São 50 containers espalhados por 5 servidores. Quando chega uma requisição, quem atende? O Kubernetes distribui as requisições de forma inteligente entre os containers saudáveis.

Todos esses problemas são resolvidos automaticamente — é para isso que o orquestrador existe.

Analogia: Docker = você dirigindo um carro. Kubernetes = você tendo motorista automático que dirige múltiplos carros, substitui carros com problema, adiciona carros em congestionamento, tudo sem você fazer nada.

Kubernetes vs Docker: Qual a Diferença

AspectoDockerKubernetes
PropósitoContainerizar 1 appOrquestrar múltiplos containers
Escala1-10 containers100+ containers
AutomaçãoManual (você comanda)Automática (você define regras)
EscalabilidadeManual (você sobe mais containers)Automática (baseada na carga)
DeployManual ou scriptsAutomático (rolling updates)
Health ChecksVocê monitoraAutomático (reinicia se cair)
Curva AprendizadoBaixa (2-4h)Alta (6+ meses)
ComplexidadeSimplesComplexa

Conclusão: Docker não rivaliza com Kubernetes. Docker + Kubernetes = combinação perfeita. Docker containeriza, Kubernetes orquestra.

Como o K8s Funciona por Dentro (Arquitetura Básica)

Componentes Principais

1. Master (Control Plane)

Cérebro do Kubernetes. Recebe ordens (“rode 50 containers, se um cair reinicia, escalona quando tráfego sobe”).

  • API Server: Recebe comandos do usuário
  • Scheduler: Decide qual nó (servidor) roda qual container
  • Controller Manager: Garante estado desejado (se disse 50 containers, sempre há 50)
  • etcd: Banco de dados que guarda config/estado

2. Nodes (Servidores)

Máquinas físicas (ou VMs) que rodam containers.

  • Kubelet: Agente que roda em cada node, executa ordens do master
  • Docker/Container Runtime: Engine que roda containers

3. Pods

O pod é a menor unidade do Kubernetes — um invólucro em torno de um ou mais containers (quase sempre um). Você não gerencia containers diretamente; gerencia pods.

Fluxo de Execução

1Você declara'quero 50 réplicas do app'
2API Serverrecebe e registra o pedido
3Schedulerdistribui os pods pelos nós
4Kubeletroda os containers em cada nó
5Controllervigia e recria o que cair
O ciclo declarativo do Kubernetes: você diz o estado desejado e o cluster trabalha sem parar para mantê-lo — recriando o que cai.
  1. Você diz ao Kubernetes: “Quero 50 réplicas do meu app”
  2. API Server recebe comando
  3. Scheduler distribui 50 pods nos 10 nodes (5 pods por node)
  4. Kubelet em cada node executa pods (roda containers)
  5. Se um pod cair, Controller Manager nota e cria novo pod
  6. Se o tráfego sobe, o Autoscaler sobe mais pods automaticamente

Conceitos Principais do K8s

1. Deployment

Deployment = receita de como rodar seu app. Especifica:

  • Qual image Docker usar
  • Quantas réplicas (pods) rodar
  • Como fazer update (rolling, blue-green)
  • Recursos (CPU, memória) que cada pod precisa

Exemplo:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: meu-app
spec:
  replicas: 50
  template:
    spec:
      containers:
      - name: app
        image: seu-docker-hub/meu-app:1.0
        ports:
        - containerPort: 3000

2. Service

Service = expõe seus pods para o mundo externo. É um balanceador de carga que distribui as requisições.

Sem Service: Cada pod tem IP diferente, muda constantemente (impossível acessar).

Com Service: Um endereço IP/DNS que distribui requisições entre todos pods.

3. Ingress

Ingress = roteador HTTP/HTTPS avançado. Permite:

  • Múltiplos subdomínios (api.seusite.com, app.seusite.com)
  • Path-based routing (seusite.com/api, seusite.com/app)
  • SSL/HTTPS termination

4. Persistent Volume (PV)

Persistent Volume = armazenamento permanente. Pods são efêmeros (desaparecem), PVs persistem.

Exemplo: Seu banco de dados MySQL roda em pod. Pod cai e é recriado, mas dados persistem em PV.

5. ConfigMap e Secrets

ConfigMap = guarda config (variáveis de ambiente, arquivos de config).

Secrets = guarda dados sensíveis (passwords, API keys) criptografados.

Quando Usar Kubernetes (e Quando Não Usar)

Use o K8s se:

  • App tem 100+ containers
  • Precisa alta disponibilidade (99.9%+ uptime)
  • Tráfego flutua muito (precisa escalar automaticamente)
  • Equipe tem DevOps dedicado
  • Precisa fazer múltiplos deploys/dia

Não use o K8s se:

  • App é pequena (startup, MVP)
  • Tráfego é previsível (não flutua)
  • Equipe é muito pequena (<5 devs)
  • Budget é apertado (K8s custa mais que simple hosting)

Alternativas ao K8s

SoluçãoComplexidadeMelhor Para
Docker SwarmBaixa10-50 containers, simples
AWS ECSMédiaEmpresas AWS
Heroku/RenderMuito baixaStartups, sem DevOps
Google Cloud RunBaixaServerless containers

Aviso: não adote o K8s por modinha. Muita startup mergulha nele, gasta meses em configuração e teria resolvido com Docker Swarm + Render numa semana. Seja honesto sobre a real necessidade.

Kubernetes Gerenciado (menos dor de cabeça)

Rodar o Kubernetes por conta própria é trabalhoso. Por isso, a maioria das empresas usa uma versão gerenciada, em que o provedor cuida da parte mais crítica e chata — o control plane:

Google Kubernetes Engine (GKE)

  • O Google cuida do control plane; você paga pelos nós
  • Integração nativa com o Google Cloud
  • O modo Autopilot gerencia até os nós por você

Amazon EKS (Elastic Kubernetes Service)

  • A AWS cuida do control plane (cobrado por hora, à parte dos nós)
  • Integração com todo o ecossistema AWS

Azure AKS (Azure Kubernetes Service)

  • A Microsoft cuida do control plane
  • Integração com o Azure

DigitalOcean Kubernetes (DOKS)

  • Não cobra pelo control plane — você paga só os nós
  • Mais simples e, em geral, mais barato que os três grandes

Recomendação: prefira sempre a versão gerenciada. Rodar o K8s do zero costuma custar bem mais no total, quando você soma o tempo de engenharia de operação e manutenção.

Começando com o K8s (Roadmap)

Mês 1-2: Conceitos Básicos

  • Entenda pods, deployments, services, ingress
  • Rode o K8s localmente (minikube, kind)
  • Faça 10 tutoriais simples

Mês 2-3: Deploy Real

  • Deploy seu app em GKE/EKS/AKS
  • Configure CI/CD (GitLab CI, GitHub Actions)
  • Monitore com Prometheus/Grafana

Mês 3-6: Avançado

  • StatefulSets (aplicações com estado)
  • Helm (o gerenciador de pacotes do K8s)
  • Network Policies (segurança)
  • Custom Resources (estender o K8s)

Perguntas Frequentes sobre Kubernetes

Kubernetes é complexo demais?

Sim, é complexo — mas é uma complexidade que existe por um motivo: automatizar o que seria impossível fazer na mão em escala. Aprenda aos poucos e comece pelo Kubernetes gerenciado (GKE), não pelo auto-hospedado.

Posso usar o K8s com app monolítico?

Dá, mas não é o ideal. O K8s brilha com microsserviços. Um monólito nele funciona, só que você paga o overhead sem colher os benefícios. Para um monólito, prefira Docker + máquina simples.

Quanto custa rodar Kubernetes?

Na versão gerenciada, o custo principal são os nós (as máquinas) mais, em alguns provedores, uma taxa pelo control plane. Rodar por conta própria costuma sair mais caro no total, porque entra o tempo de engenharia de operação. A menos que a aplicação seja enorme, o gerenciado compensa.

Kubernetes vs Serverless (AWS Lambda): qual melhor?

Serverless para funções curtas, com escala automática do zero ao pico. O K8s para aplicações contínuas que querem controle fino. Na prática, muita gente usa os dois (K8s + Lambda).

Como aprender o K8s rapidamente?

  1. Instale minikube (K8s local). 2) Rode 10 exemplos. 3) Deploy seu app em GKE. 4) Configure auto-scaling. 5) Aprenda CI/CD. 6+ meses para proficiência, 4 semanas para funcionar.

Preciso do K8s se meu app é simples?

Não. App simples e tráfego previsível pedem Docker num servidor único ou uma PaaS. O K8s é para problemas avançados — não resolva um problema que você ainda não tem.

Conclusão

Em 2026, o Kubernetes é o padrão de fato para aplicações em escala. Se você trabalha com infraestrutura, DevOps ou engenharia, é uma competência praticamente obrigatória.

Mas seja honesto consigo mesmo: você precisa de K8s agora — ou um Docker numa máquina simples resolve? Se a resposta for sim, comece pela versão gerenciada (o GKE é uma boa porta de entrada) e não tente subir um cluster do zero.

O roadmap é claro: mês 1, conceitos; mês 2, o primeiro deploy real; meses 3 a 6, os recursos avançados. É um investimento de tempo — e uma das competências mais valorizadas em infraestrutura hoje.

Para começar direto na fonte, a documentação oficial em kubernetes.io está em português. E para ampliar a visão de infraestrutura, veja o comparativo entre AWS, Azure e Google Cloud.