A história do Kubernetes e do Docker

Na versão 1.5 no final de 2016, o Kubernetes introduziu um novo padrão de interface: CRI, Container Runtime Interface.

O CRI usa ProtoBuffer e gPRC para especificar como o kubelet chama o tempo de execução do contêiner para gerenciar contêineres e imagens, mas essa é uma interface totalmente nova e totalmente incompatível com as chamadas anteriores do Docker.

 O Kubernetes pode fornecer apenas uma solução de "compromisso" ao mesmo tempo, adicionando um "adaptador" entre o kubelet e o Docker para converter a interface do Docker em uma interface que esteja em conformidade com o padrão CRI.

E o Docker dividiu o Docker Engine de arquitetura única original em vários módulos, e a parte do daemon do Docker foi doada ao CNCF para formar o containerd.

Como projeto gerido pelo CNCF, o containerd deve cumprir as normas do CRI. No entanto, por motivos próprios, o Docker apenas chama o containerd no Docker Engine, e a interface externa permanece inalterada, o que significa que ainda não é compatível com o CRI.

 Existem duas cadeias de chamadas no Kubernetes:

  • A primeira é usar a interface CRI para chamar o dockershim, depois o dockershim chama o Docker e o Docker usa o containerd para operar o contêiner.
  • A segunda é usar a interface CRI para chamar diretamente o containerd para operar o contêiner.

Como o containerd é usado para gerenciar containers, o efeito final das duas cadeias de chamadas é exatamente o mesmo, mas o segundo método salva os dois links do dockershim e do Docker Engine, que é mais conciso e claro, com menos perdas e melhor desempenho Melhore alguns .

Portanto, "abandonar o Docker" não terá muito impacto no Kubernetes e no Docker, pois ambos já alteraram a camada inferior para open source containerd, e a imagem original do Docker e o container ainda rodarão normalmente, a única mudança é que o Kubernetes ignora Docker e chama diretamente o containerd dentro do Docker.

O Docker é uma linha completa de produtos de software, não apenas containerd, mas também inclui construção de espelhos, distribuição, teste e muitos outros serviços, e até mesmo Kubernetes integrado no Docker Desktop.

Este artigo é uma nota de estudo para o dia 10 de julho. O conteúdo vem do Geek Time "Kubernetes Introductory Practical Course". Este curso é recomendado.

Acho que você gosta

Origin blog.csdn.net/key_3_feng/article/details/131649030
Recomendado
Clasificación