Um momento
Todos os artigos
Programação 5 min de leitura

A História do Kubernetes: do Google à Fundação Cloud Native

Conheça a trajetória do Kubernetes, da origem no Google e lançamento em 2014 à governança CNCF, aos padrões de runtime e à comunidade global, e entenda sua relação com Docker.

nbkhope
Nesta página

A História do Kubernetes: do Google à Fundação Cloud Native

O Kubernetes começou com uma pergunta prática e ambiciosa: quando um aplicativo é dividido em contêineres, quem mantém todas essas partes funcionando em um conjunto de máquinas? O projeto evoluiu da experiência do Google operando sistemas em grande escala para uma plataforma de código aberto mantida por uma comunidade ampla e global.

Sua história também é uma história de interfaces. No início, o Kubernetes trabalhava diretamente com Docker; depois, adotou formas padronizadas de conectar runtimes, armazenamento e rede. Essa evolução abriu espaço para um ecossistema muito maior.

Capa: um plano de controle coordena aplicativos em contêineres em várias máquinas, junto a uma comunidade crescente de código aberto.

Antes do Kubernetes: lições do Borg

O Google tinha anos de experiência gerenciando grandes cargas de trabalho de produção com sistemas internos como o Borg. O Kubernetes recebeu influência dessa experiência, e alguns de seus primeiros desenvolvedores haviam trabalhado no Borg. Mas o Borg não foi simplesmente lançado como Kubernetes; o Kubernetes foi um novo projeto de código aberto, construído com aprendizados do Google e contribuições da comunidade.

A palavra grega kybernētēs significa “timoneiro” ou “piloto”. O apelido K8s abrevia o nome substituindo por 8 as letras entre “K” e “s”. A metáfora combina: o Kubernetes ajuda a conduzir as aplicações até o destino declarado, reagindo às mudanças no cluster.

Ciclo simplificado de reconciliação: declare o estado desejado, o Kubernetes observa o estado atual, age e confere novamente.

2014–2015: um projeto de código aberto ganha forma

O primeiro commit do repositório do Kubernetes foi feito em 6 de junho de 2014. Quatro dias depois, o Google anunciou o projeto publicamente na DockerCon. O projeto inicial se concentrava em agendar e gerenciar contêineres em várias máquinas, aproveitando a experiência operacional e convidando desenvolvedores externos a participar da evolução do sistema.

O Kubernetes 1.0 foi lançado em 21 de julho de 2015. O Google anunciou que o projeto seria doado à recém-formada Cloud Native Computing Foundation (CNCF), criando uma casa neutra para a governança da comunidade. O escopo já ia além de iniciar contêineres: aplicativos também precisavam de serviços, armazenamento, gerenciamento de cluster e formas de descrever o estado desejado.

2016–2018: governança comunitária e graduação

O Kubernetes foi o primeiro projeto hospedado pela CNCF, em março de 2016. Um projeto iniciado no Google passou a ser construído e governado por pessoas de diferentes empresas e países. O Kubernetes 1.5 introduziu uma primeira versão da Container Runtime Interface (CRI), um passo importante para permitir a comunicação com mais de um runtime de contêiner.

Em março de 2018, o Kubernetes se tornou o primeiro projeto a se graduar na CNCF. A graduação reconheceu sua adoção e seus processos de governança e participação comunitária. Foi um marco para a infraestrutura de código aberto: uma plataforma usada por um ecossistema crescente tinha uma comunidade capaz de orientar seu desenvolvimento contínuo.

Linha do tempo do Kubernetes: primeiro commit, versão 1.0 e doação à CNCF, CRI, graduação, suporte a Windows, remoção do dockershim e marco de dez anos.

Crescimento por meio de interfaces

O Kubernetes continuou a adicionar suporte a diferentes cargas de trabalho e infraestruturas. Os nós Windows receberam suporte para produção no Kubernetes 1.14, em 2019. O projeto desenvolveu interfaces padronizadas para integrações importantes: CRI para runtimes de contêiner, CSI para armazenamento e CNI para rede. APIs extensíveis e controladores permitiram que a comunidade adicionasse recursos sem incluir cada funcionalidade de fornecedor no núcleo do projeto.

Essa abordagem explica um marco muito comentado da relação com Docker. As primeiras versões do Kubernetes usavam o Docker Engine por meio de um adaptador interno chamado dockershim. Depois de adotar suporte a CRI, o adaptador interno se tornou um caso especial que exigia manutenção. O projeto o descontinuou em 2020 e o removeu no Kubernetes 1.24, em 2022. Imagens criadas com Docker continuaram utilizáveis; a mudança dizia respeito à interface do runtime nos nós. Docker continua útil para criar e testar imagens, enquanto um cluster pode executá-las com um runtime compatível com CRI, como containerd ou CRI-O.

O que o Kubernetes coordena

Um cluster Kubernetes tem um plano de controle e nós de trabalho. Você descreve o resultado desejado — por exemplo, “mantenha três cópias deste aplicativo funcionando” — e os controladores comparam continuamente o estado desejado com o que está rodando. Se um contêiner ou nó falhar, o sistema pode agir para se aproximar do estado solicitado.

Arquitetura do Kubernetes: o plano de controle recebe uma declaração de estado desejado e coordena Pods nos nós de trabalho por meio de um runtime.

A mudança histórica foi de “ferramenta que inicia contêineres” para “plataforma com APIs para coordenar cargas de trabalho”. O Kubernetes é extensível e poderoso, mas não elimina o trabalho de infraestrutura. As equipes ainda precisam planejar segurança, rede, armazenamento, atualizações, observabilidade e responsabilidades operacionais. Para um projeto pequeno, uma implantação mais simples pode ser a melhor escolha.

De um projeto a um bem comum cloud native

Em 2024, a comunidade Kubernetes celebrou dez anos desde o primeiro commit do projeto. A trajetória — da experiência operacional do Google ao lançamento aberto e à governança da CNCF, chegando a uma grande rede de colaboradores — mostra como um software de infraestrutura pode evoluir por meio de interfaces compartilhadas e gestão comunitária.

O nome promete um piloto, não um avião no piloto automático. O Kubernetes ajuda um sistema declarado a chegar ao estado desejado, mas as pessoas escolhem esse estado, projetam o sistema e decidem como operá-lo com responsabilidade.

Para saber mais

Obrigado pela leitura!

Conhece alguém que vai gostar? Mande para essa pessoa.

Mais artigos

Read next

Programação 6 min de leitura

Autenticação em Servidores MCP: OAuth, Tokens e Confiança

Autenticar um servidor MCP vai muito além de colocar uma senha. Entenda como OAuth, público do token, escopos e verificações por ferramenta se combinam em servidores HTTP — e o que fazer em servidores locais stdio.

nbkhope
Python 8 min de leitura

Como Gerar Áudio a Partir de Texto com Texto para Fala (TTS)

Transforme um roteiro escrito em áudio falado: experimente a voz integrada do navegador e depois gere um MP3 com uma API moderna de texto para fala. Aprenda a escolher vozes, ajustar a pronúncia com SSML e revisar a qualidade.

nbkhope

Comentários

Be kind and specific. Comments with links from new accounts appear after a moderator reviews them.