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

Entendendo o ecossistema de containers

Entendendo o ecossistema de containers

0a8f40c6cc23fb6c8aad4de732c5abaf?s=128

Lucas Santos

March 25, 2021
Tweet

Transcript

  1. Entendendo o Ecossistema de Containers muito além do Docker

  2. blog.lsantos.dev quem sou eu_ cloud advocate_ ludossan@microsoft.com

  3. docker e kubernetes_

  4. kubernetes sem docker?

  5. o ecossistema de containers_

  6. 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
  7. runtimes mais famosos

  8. muita gente para pouco padrão_

  9. 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
  10. 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
  11. CRI? Shim? containerd? runc?

  12. 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
  13. Antes da separação

  14. depois da separação

  15. 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
  16. depois da separação

  17. atualmente

  18. conhecendo as ferramentas_

  19. 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
  20. 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
  21. o Docker hoje_ como tudo realmente funciona

  22. diagrama geral

  23. um comando por baixo dos panos

  24. O ecossistema de containers é muito grande

  25. None
  26. demo

  27. demo o que vamos precisar - VM linux - Golang

    - containerd - runc
  28. None
  29. None
  30. um Docker menos “bonitinho”

  31. pro código

  32. /khaosdoctor @_staticvoid lsantos.dev /khaosdoctor obrigado_

  33. refs_ - http://bit.ly/lsantos-containers - http://bit.ly/lsantos-containerd - http://bit.ly/fcc-docker - http://bit.ly/ecossistema-slides