Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
Um Container Runtime com ênfase em simplicidade, robustez e portabilidade
© 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.
© 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/
© 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/
© 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/
© 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
© 2019 Cloud Native Computing Foundation7
Arquitetura
© 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
© 2019 Cloud Native Computing Foundation9
Arquitetura
© 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”
© 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
© 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
© 2019 Cloud Native Computing Foundation13
Executando
© 2019 Cloud Native Computing Foundation14
Conectando com Containerdmain.go
Criação de um novo Cliente Containerd
Contexto com namespace
© 2019 Cloud Native Computing Foundation15
Obtendo uma Imagemmain.go
Pull da Imagem no DockerHub
© 2019 Cloud Native Computing Foundation16
Criando um Spec e um Container OCImain.go
© 2019 Cloud Native Computing Foundation17
Executando o Containermain.go
Task em Estado “Criado”
Task Executando
© 2019 Cloud Native Computing Foundation18
Adotando
© 2019 Cloud Native Computing Foundation19
Integração do Containerd com Kubernetes
© 2019 Cloud Native Computing Foundation20
Testes de Performance
Fonte: https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/
© 2019 Cloud Native Computing Foundation21
Provedores
© 2019 Cloud Native Computing Foundation22
Paulo Alberto SimoesPrincipal Cloud Solution Engineer at Oracle
@pasimoes
Obrigado