Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Entendendo o ecossistema de containers

Entendendo o ecossistema de containers

Lucas Santos

March 25, 2021
Tweet

More Decks by Lucas Santos

Other Decks in Technology

Transcript

  1. runtimes de containers_ porque não só de Docker vive o

    homem - O Docker é o que chamamos de um runtime de containers - Um runtime é o motor principal de execução dos containers - O Docker começou como um runtime completo - Hoje o Docker implementa o containerd
  2. open container initiative - A OCI foi criada pela junção

    de várias empresas líderes no mercado de containers em 2015 - Hoje funciona nos moldes da CNCF e da Linux Foundation - a OCI tem o objetivo de criar um padrão de mercado seguido por todas as empresas que trabalham com containers - A OCI tem duas especificações, uma para imagens (chamada image-spec) e outra para os runtimes (runtime-spec) - O runc é uma implementação de referência para a runtime-spec
  3. depois da OCI_ - Toda a imagem “OCI compliant” pode

    ser executada por qualquer runtime também “OCI compliant” - Outras empresas tem um norte para poder seguir quando desenvolvem seus próprios runtimes - O ecossistema de containers fica mais variado, mas ao mesmo tempo muito coeso e definido
  4. kubernetes e containers como o kuberentes lida com containers -

    O Kubernetes suporta, por padrão mais de um runtime de execução (Docker e RKT) - Trocar de runtime requeria a recompilação total do kubelet - Solução: abstrair a interface de containers
  5. dockershim o causador de todos os problemas - Shims são

    modificadores de chamada que atuam como proxies - O Docker não possuía um CRI pois ele era feito para usuários humanos - O time do Kubernetes teve que criar o próprio CRI para poder utilizar somente a parte programática do docker - Manter o shim era um trabalho complicado
  6. o mais famoso - Criado pela OCI como um runtime

    de alto nível - Também é dito como sendo um gerenciador do runc - Gerencia imagens - Inicia/para containers através de comandos para o runc - Faz parte do Docker - Criado para ser manipulado via APIs e código
  7. quem faz todo o trabalho - Wrapper ao redor da

    libcontainer - A libcontainers é a interface a nível de SO para criar containers - Especificação de referência para um runtime OCI - Utilizado pela maioria dos runtimes baseados em Linux