Kubernetes 1.20 chegou com 42 enhancements e um tema que domina a conversa operacional: o dockershim está oficialmente depreciado. A mudança sinaliza que clusters devem se alinhar a runtimes compatíveis com Container Runtime Interface, como containerd e CRI-O, em vez de depender da camada de compatibilidade com Docker Engine.1

Para usuários finais, containers Docker continuam sendo imagens OCI e seguem rodando em Kubernetes. A mudança está na camada do nó. O risco nasce quando equipes confundem Docker como formato de imagem, Docker CLI como ferramenta de desenvolvimento e Docker Engine como runtime dentro do cluster.

Dockershim cumpriu seu papel

Nos primeiros anos de Kubernetes, Docker era a escolha dominante para criar e executar containers. O dockershim serviu como ponte entre kubelet e Docker Engine, permitindo que o projeto avançasse enquanto o ecossistema amadurecia.

Com a estabilização da CRI, Kubernetes tem uma interface mais limpa para falar com runtimes. Manter uma camada específica para Docker Engine aumenta complexidade, testes e superfície de manutenção. A depreciação indica que o projeto quer reduzir acoplamentos históricos.

Isso não significa que desenvolvedores precisam abandonar docker build imediatamente. Imagens geradas por Docker continuam compatíveis com registries e runtimes modernos. O ponto é que o nó Kubernetes não precisa usar Docker Engine para executar esses artefatos.

Operação precisa inventariar os nós

A ação correta para plataformas é inventário. Qual runtime está em cada cluster? A distribuição gerenciada já usa containerd? Existem scripts que chamam docker ps no nó? Agentes de segurança, backup, log ou troubleshooting dependem do socket Docker? Playbooks de incidente assumem comandos específicos?

Essas perguntas importam porque a migração não é apenas trocar um binário. Observabilidade, coleta de logs, debugging, imagem base de nós, ferramentas de compliance e conhecimento de suporte podem depender de detalhes do runtime.

Kubernetes 1.20 também traz avanços como volume snapshots estáveis e melhorias em kubectl debug, API Priority and Fairness em beta e outras evoluções de operação.1 Mas a conversa sobre dockershim é a que mais deve aparecer em planejamento de upgrades.

Menos dependência histórica, mais padrão aberto

A depreciação reforça a maturidade do ecossistema cloud native. Kubernetes não é mais apenas o orquestrador que cresceu junto com Docker; é uma plataforma com interfaces próprias, runtimes especializados e fornecedores que precisam seguir contratos bem definidos.

Para empresas, a recomendação é tratar a mudança como programa de compatibilidade. Testar clusters com containerd ou CRI-O, atualizar documentação, treinar times de suporte e revisar ferramentas de nó antes que a remoção futura obrigue uma corrida.

Kubernetes 1.20 mostra uma plataforma disposta a retirar apoios históricos para reduzir complexidade. Essa é a marca de um projeto que amadurece: compatibilidade continua importante, mas não pode impedir que a arquitetura interna fique mais simples e sustentável.


  1. Kubernetes Blog, "Kubernetes 1.20: The Raddest Release", 8 dez. 2020.