O Kubernetes não vai mais suportar o Docker! Veja algumas opções para a substituição do Docker.


Seja muito bem vindo a mais um vídeo do LINUXtips. E hoje nós vamos falar sobre uma coisa muito polêmica que você provavelmente, se você não mora aí dentro de uma caverna você ficou sabendo né?


O Kubernetes não vai mais suportar o Docker! Ou então o pessoal do desenvolvimento do Kubernetes anunciou que pretende parar de ser compatível com o Docker.



Então você vai começar a receber warning falando que o Docker não vai ser mais suportado.


Esse warning vai começar na versão 1.20 do Kubernetes, mas fica calmo, respira, vou te explicar o que vai acontecer.


Afinal, o que é o Docker hoje?


Para aprender sobre containers, primeiro precisamos de uma introdução ao universo Docker. Para você ter uma ideia, Docker é uma plataforma open source criada em 2013 por Solomon Hykes e foi desenvolvida na linguagem Go.

O Docker é um container runtime, ou seja, um carinha que vai executar contêineres , e vai conversar. Só que o Docker hoje não é mais somente um container runtime, que tem muita coisa no pacote Docker.


Quando você faz a instalação do Docker, vem mais coisas do que somente um container runtime, por exemplo.


Você tem lá várias opções muito bonitinhas para uma interface gráfica Bonitinha.


Lá pro Docker, já o Kubernetes não utiliza isso.


O Docker também tem o Swarm, que é o orquestrador de container.


Agora, se você está no Kubernetes, você não precisa do Swarm, afinal você quer utilizar o Kubernetes como um orquestrador de container.

Então quando Kubernetes fala que não vai mais suportar o Docker como container runtime, tem algum motivo para isso? Ou simplesmente eles decidiram assim?


Hoje há muita política de uso nas comunidades Kubernetes, Linux Foundation, e na Cloud Native.


E lógico que existem diversos fatores para essa mudança, mas o principal fator para o Kubernetes deixar de aceitar, ou então, de ser compatível com o Docker como container runtime, é porque o Docker não se adequou ao CRI, que é o Container Runtime Interface.


Ou seja, com isso o Docker sempre foi meio que um puxadinho ou o suporte do Docker sempre foi meio que um puxadinho lá dentro do Kubernetes, uma vez que o Kubernetes utilizava o Docker-shim, que seria a interface CRI pro Docker


Então sempre foi na base da gambiarra e o Docker não para estar aí de acordo com o CRI que é o Container Runtime Interface.


Esse foi o principal motivo para o Kubernetes falar assim: Docker não vai dar mais para seguirmos juntos nessa caminhada. E a partir de determinada versão eu não vou mais suportar você como container runtime.


Hoje, quando você fala que está utilizando Kubernetes com Docker instalado, o Kubernetes só utiliza o Containerd, lá dentro do Docker.


Certo? Ele não utiliza mais nada e não utiliza toda aquela interface gráfica, ou os outros recursos extras que tem lá no Docker. Então esse acaba sendo outro motivo também pelo qual Kubernetes não precisa do Docker.


Aí você fala: Ai Jeferson, mas agora o que eu faço, tem outras opções? Ai meus dels... Sim, tem outras opções, lembra.


Vamos falar sobre substitutos!


Aqui no canal eu já falei sobre o Containerd mesmo, que o próprio Docker utiliza. Também falei do Podman, que é uma opção lá da Red Hat. Fora isso, tem o CRI-O


Eu já falei que é uma implementação do CRI, do Container Runtime Interface, da própria OCI ou OCI, Open Container Initiative. Inclusive a Docker faz parte ainda da OCI. Bom, resumo da ópera então! O que aconteceu? O Kubernetes falou que não iria mais suportar o Docker porque o Docker não se adequou lá ao CRI, que é o Container Runtime Interface.


E por esse motivo, nós não vamos mais deixar essa gambeta que está aqui dentro do código Kubelet chamada Docker-shim, somente para continuar com o suporte ao Docker.


Fique tranquilo! Se você é um desenvolvedor e gera as suas imagens utilizando o Docker, não tem nenhum problema porque o Kubernetes vai continuar suportando tranquilamente as imagens que foram buildadas, utilizando o Docker, então é somente o runtime mesmo agora que não irá suportar, do resto é tranquilo.


Lembrando que é na versão 1.20 do Kubernetes que vai começar os warnings, os anúncios falando que mas é somente após a versão 1.22, é que o Docker, ou o Docker-shim finalmente vai sair lá do Kubernetes.


Então o suporte ao Docker vai sumir, certo? Lembrando que o que vai sair lá do Kubernetes é o Docker-shim, que é nada mais do que uma implementação do CRI. É uma gambeta para que o Docker funcione bem no padrão do CRI, do Container Runtime Interface.


Nós temos mais ou menos um ano para resolver esse “problema”.


Remover o Docker dos nossos Kubernetes e escolher um outro container runtime para colocar em execução.



Agora vamos lá saber qual a melhor opção para essa substituição!


Eu recomendo Containerd, agora assim, de bate pronto.


O Containerd, ou mais evidente que tem aí o Podman, mas também tem o CRI-O. Tem várias opções, hoje em dia para que você possa escolher, não são tão várias assim.


Mas tem algumas para que você possa escolher, mas o fato é que você precisa resolver isso agora para já começar a se planejar, porque para mexer nesse cara não é tão simples assim.


Afinal, o container runtime é uma peça super importante dentro desse ecossistema e do Kubernetes.


Veja um vídeo sobre o Containerd, ou de qualquer sistema que esteja rodando containers hoje em dia, veja também esse vídeo sobre Podman e comece a se planejar.



E o futuro? Quais serão as cenas dos próximos capítulos, uma vez que o Docker já não tem mais o Docker Swarm, que já foi vendido para uma outra empresa.


Agora que o Docker está perdendo o suporte. Ou então a compatibilidade com as próximas versões do Kubernetes.


Bem, eu acho que vale a pena a gente começar a analisar com cuidado os próximos passos. Se você é desenvolvedor ou sysadmin ou DevOps, que cria imagens utilizando o Docker, você pode começar a criar pelo BUILDAH! Veja aqui.



Agora, se você quer mudar isso aí no Kubernetes, começa a planejar porque no máximo em um ano, o Kubernetes não vai mais suportar o Docker.


Seja um embaixador da comunidade LINUXtips, compartilhe em suas redes sociais e com quem quer aprender tudo sobre sysadmin, DevOps, DBA ou qualquer que seja sua area!


linuxtips-logo-2018.png

Canal do Youtube criado para compartilhar o conhecimento adquirido ao longo de +16 anos de experiência. Vamos falar sobre Linux, Docker, Kubernetes, DevOps, Infra-ágil, automação e muito mais!

ÚLTIMOS VÍDEOS

slide01.png
slide04.png
slide03.png
slide02.png

ENTRE EM CONTATO

Dúvidas ou sugestões?

Caixa Postal  532

Taboão da Serra/SP CEP 06763-970

CNPJ: 11.085.988/0001-55

TREINAMENTOS