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

Containerd - O futuro dos Containers?

Containerd - O futuro dos Containers?

O Containerd, um container runtime com enfase em simplicidade e portabilidade, porém mantendo a robustes. Um projeto Open Source inclubado na Cloud Native Computing Foundation que pode ser a base para o futuro da "containerização".

Apresentação realizada no TDC 2019 - Florianopolis, na trilha de Containers.

Paulo Simoes

April 26, 2019
Tweet

More Decks by Paulo Simoes

Other Decks in Technology

Transcript

  1. © 2019 Cloud Native Computing Foundation 2 Um container runtime

    disponibilizado como um projeto de Software de Código Aberto (#OSS) que gerencia o Ciclo de Vida Completo do contêiner, desde a transferência e armazenamento de imagens para a execução de contêineres até a supervisão do armazenamento de baixo nível, e das configurações de network.
  2. © 2019 Cloud Native Computing Foundation 3 Fonte: https://blog.docker.com/2017/08/what-is-containerd-runtime/ •

    Originalmente construído como um ponto de integração para runtimes OCI* (runC) mas absorveu funcionalidades necessárias para plataformas como Docker e K8s. • Fornece uma “camada cliente” para as aplicações se abstraírem do nível de Kernel (API-driven) OCI – Open Container Initiative https://www.opencontainers.org/
  3. © 2019 Cloud Native Computing Foundation 4 Uma Breve História

    Sir Robert Dudley’s Dell’ Arcano Del Mar, 1646. Image courtesy of the Harvard Map Collection. Jun2015 Docker doou runC para a Open Container Initiative (OCI) Abr2016 Containerd “0.2”, Docker 1.11 https://blog.docker.com/2016/04/docker-engine-1-11-runc/ Dez2015 Containerd - Daemon Controle para runC https://blog.docker.com/2015/12/containerd-daemon-to-control-runc/ Dez2016 Expansão do Projeto #OSS Containerd 1.0 https://blog.docker.com/2016/12/introducing-containerd/ Mar2017 Containerd doado para a CNCF https://blog.docker.com/2017/03/docker-donates-containerd-to-cncf/
  4. © 2019 Cloud Native Computing Foundation 5 Cloud Native Computing

    Foundation Anuncia a Graduação do Projeto containerd https://www.cncf.io/announcement/2019/02/28/cncf-announces-containerd-graduation/
  5. © 2019 Cloud Native Computing Foundation 6 Cloud Native Computing

    Foundation • Parte da Fundação Linux, Sem fins lucrativos; foundada em Dez 2015 • Membros Platinum : Encubados Service Mesh Armazenamento Descoberta de Serviços Rastreabilidade Distribuída Software Update Spec Segurança Graduados Gerenciamento de Pacotes API de Rede Remote Procedure Call API Rastreabilidade Distribuída Container Runtime Mensageria Orquestração Serviço de Proxy Monitoramento Registro Armazenamento Armazenamento Chave/Valor Política Container Runtime Container Runtime Logging
  6. © 2019 Cloud Native Computing Foundation 8 Direcionadores da Arquitetura

    Requisitos • Just Enough : Use apenas o necessário • Just in Time : Agilidade runtime • Desacoplamento • Compatibilidade OCI e relação configuração direta com OCI • Métricas com Prometheus • Tecnologias conhecidas Objetivos Técnicos • Estabilidade e desempenho nas funções principais para os containers • Desacoplamento e modularidade nos sistemas principais (imagens, filesystem, runtime) permitindo reuso e conectividade • Suporte total a OCI • API baseada em gRPC
  7. © 2019 Cloud Native Computing Foundation 10 Subsistemas Conjunto de

    Componentes da Arquitetura Distruibuição Pacotes Bundles Runtime Funções para pulling e pushing de imagens Controlador Funções manipulação de “pacotes (bundles)” que são representações em disco de um container executando Controlador Suportam as execução de “pacotes (bundles)”, incluindo a criação da execução do container Controlador Lado Cliente Lado “Runtime”
  8. © 2019 Cloud Native Computing Foundation 11 Modulos • Além

    dos subsistemas, existem vários componentes que podem cruzar os limites do subsistema Executor Realmente implementa o mecanismo de execução Supervisor Monitora e reporta o estado dos containers Metadata Armazena os metadados (images e bundles) Conteúdo Fornece o acesso ao armazenamento de conteúdos (como imagem) Snapshotter Gerencia os sistemas de “snapshot” para as imagens de containers Eventos Suporta a coleção e consumo de eventos (orientado a eventos, pub/sub pattern) Tarefas Permitem ao cliente gerenciar o estado de um container executando
  9. © 2019 Cloud Native Computing Foundation 12 Criação de um

    Bundle Nome da Imagem Apontamentos p/ Root Manifest Contaúdo da Imagem Camadas da Imagem Snapshot do rootfs (ready) Bundle preparado
  10. © 2019 Cloud Native Computing Foundation 14 Conectando com Containerd

    main.go Criação de um novo Cliente Containerd Contexto com namespace
  11. © 2019 Cloud Native Computing Foundation 17 Executando o Container

    main.go Task em Estado “Criado” Task Executando
  12. © 2019 Cloud Native Computing Foundation 20 Testes de Performance

    Fonte: https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/
  13. © 2019 Cloud Native Computing Foundation 22 Paulo Alberto Simoes

    Principal Cloud Solution Engineer at Oracle @pasimoes Obrigado