22
Um Container Runtime com ênfase em simplicidade, robustez e portabilidade

Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

Um Container Runtime com ênfase em simplicidade, robustez e portabilidade

Page 2: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation2

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.

Page 3: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation3

Fonte: https://blog.docker.com/2017/08/what-is-containerd-runtime/

• Originalmente construído como um ponto de integração para runtimesOCI* (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 Initiativehttps://www.opencontainers.org/

Page 4: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation4

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)

Abr2016Containerd “0.2”, Docker 1.11https://blog.docker.com/2016/04/docker-engine-1-11-runc/

Dez2015Containerd - Daemon Controle para runChttps://blog.docker.com/2015/12/containerd-daemon-to-control-runc/

Dez2016 Expansão do Projeto #OSS Containerd 1.0https://blog.docker.com/2016/12/introducing-containerd/

Mar2017Containerd doado para a CNCFhttps://blog.docker.com/2017/03/docker-donates-containerd-to-cncf/

Page 5: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation5

Cloud Native Computing Foundation Anuncia a Graduação do Projeto containerd

https://www.cncf.io/announcement/2019/02/28/cncf-announces-containerd-graduation/

Page 6: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation6

Cloud Native Computing Foundation

• Parte da Fundação Linux, Sem fins lucrativos; foundada em Dez 2015

• Membros Platinum :

Encubados

Service Mesh ArmazenamentoDescoberta de Serviços

Rastreabilidade Distribuída

Software UpdateSpec

Segurança

Graduados

Gerenciamento de Pacotes

API de RedeRemote Procedure Call

APIRastreabilidade

Distribuída

Container Runtime

Mensageria

Orquestração Serviço de Proxy

Monitoramento

Registro

Armazenamento

Armazenamento Chave/Valor

Política Container Runtime

Container Runtime Logging

Page 7: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation7

Arquitetura

Page 8: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation8

Direcionadores da ArquiteturaRequisitos• 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

Page 9: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation9

Arquitetura

Page 10: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation10

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”

Page 11: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation11

Modulos• Além dos subsistemas, existem vários componentes que podem cruzar

os limites do subsistemaExecutor 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

Page 12: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation12

Criação de um Bundle

Nome da ImagemApontamentos p/ Root Manifest

Contaúdo da Imagem Camadas da ImagemSnapshot do rootfs(ready)

Bundle preparado

Page 13: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation13

Executando

Page 14: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation14

Conectando com Containerdmain.go

Criação de um novo Cliente Containerd

Contexto com namespace

Page 15: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation15

Obtendo uma Imagemmain.go

Pull da Imagem no DockerHub

Page 16: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation16

Criando um Spec e um Container OCImain.go

Page 17: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation17

Executando o Containermain.go

Task em Estado “Criado”

Task Executando

Page 18: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation18

Adotando

Page 19: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation19

Integração do Containerd com Kubernetes

Page 20: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation20

Testes de Performance

Fonte: https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/

Page 21: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation21

Provedores

Page 22: Container Runtime com ênfase em simplicidade e portabilidade · Jun2015 Docker doou runCpara a Open Container Initiative (OCI) Containerd“0.2 ... Orquestração Serviço de Proxy

© 2019 Cloud Native Computing Foundation22

Paulo Alberto SimoesPrincipal Cloud Solution Engineer at Oracle

@pasimoes

Obrigado