O Que É Kubernetes? Orquestração de Containers Explicada
Kubernetes é um orquestrador de containers: você declara o desired state das suas aplicações, e ele trabalha continuamente para fazer a realidade coincidir.
Rodar um container é fácil; rodar centenas através de muitas máquinas, mantê-los saudáveis, escalá-los e lançar atualizações sem downtime não é. Kubernetes (frequentemente "K8s") automatiza isso. Você descreve o que quer em manifests declarativos, e o Kubernetes faz o trabalho de chegar lá e permanecer lá.
Modelo declarativo de desired state
Você não diz ao Kubernetes como agir passo a passo. Você declara um desired state ("rode 3 réplicas desta imagem"), e os controllers reconciliam continuamente o estado atual em direção a ele - reiniciando containers travados, substituindo nodes falhos e escalando conforme configurado.
O control plane e os nodes
O control plane (API server, scheduler, controllers, etcd) é o cérebro que armazena o estado e toma decisões. Os worker nodes rodam o kubelet e suas workloads de container reais. Juntos, formam um cluster.
Objetos centrais
- Pod - a menor unidade, um ou mais containers co-localizados.
- Deployment - gerencia réplicas e rolling updates de pods.
- Service - um endpoint de rede estável para um conjunto de pods.
- ConfigMap e Secret - configuração e dados sensíveis.
Por que os times o adotam
Autocorreção, escalonamento horizontal, rolling deploys e uma API uniforme entre nuvens. O custo é a complexidade operacional - Kubernetes tem uma curva de aprendizado real.
Kubernetes e CI/CD
Pipelines constroem imagens, depois aplicam manifests (frequentemente via kubectl ou GitOps) para deployá-las em um cluster. O CI também frequentemente constrói as próprias imagens que o Kubernetes roda; runners gerenciados mantêm esses builds de imagem rápidos e confiáveis.
Principais conclusões
- Kubernetes é um orquestrador de containers declarativo que reconcilia para o desired state.
- Um cluster tem um control plane (o cérebro) e worker nodes (o músculo).
- CI constrói imagens; CD aplica manifests para lançá-las no cluster.