SlideShare a Scribd company logo
1 of 27
Download to read offline
CRI-O: Nem só de Docker vivem
os containers
Uma visão geral do ecossistema de containers
Jonh Wendell
Sr. Software Engineer
TDC Florianópolis 20/Abr/2018
#nobigfatdaemons2
PDF
Linux
Containers
#nobigfatdaemons
O que você precisa para executar um container
3
● Definição do que é um container - Standard
○ OCI Image Bundle Definition
● Mecanismo para baixar imagens de um registry para o host
○ github.com/containers/image
● Capacidade de expandir imagens no disco - COW filesystem
○ github.com/containers/storage
● Forma padrão de executar um container
○ OCI runtime spec
○ runc: implementação padrão da OCI runtime spec (usado pelo Docker)
#nobigfatdaemons
#nobigfatdeamons
4
#nobigfatdaemons
O que o K8S precisa para executar um container
5
Quando Kubernetes diz para o CRI executar uma imagem:
● CRI precisa baixar a imagem de um registro
● CRI precisa armazenar essa imagem num COW FS
● CRI precisa executar a imagem (OCI Runtime)
CRI - Container Runtime Interface
#nobigfatdaemons
Introduzindo o CRI-O
6
CRI-O: Implementação baseada na OCI do Kubernetes CRI
● Escopo restrito à Kubernetes CRI
● Único usuário suportado é o Kubernetes
● Construído somente com componentes padrão
Nada mais, nada menos.
#nobigfatdaemons7
#nobigfatdaemons
Componentes
8
● oci-runtime-tools é uma biblioteca que gera as configurações OCI
para os containers
● CNI é usada para configurar a rede (coreos)
○ Testada com Flannel, Weave e openshift-sdn
● conmon é um utilitário para:
○ Monitoramento
○ Logging
○ Manipulação de TTY
○ Anexar clientes
○ Detectar e reportar OOM
#nobigfatdaemons
Arquitetura do Pod
9
#nobigfatdaemons
Arquitetura
10
#nobigfatdaemons
Status
11
● Todos os testes - e2e, integration (> 500) rodam com sucesso
○ Nenhum PR é aceito sem passar em todos os testes
● 1.0.x : Suporta kubernetes 1.7.x
● 1.8.x : Suporta kubernetes 1.8.x
○ Já é usado no Openshift online
● 1.9.x : Suporta kubernetes 1.9.x
○ CRI-O já é suportado no Openshift 3.9 junto com o Docker
● Alvo para Openshift 3.10: CRI-O instalado/suportado por default
● Mantenedores/Colaboradores da Red Hat, Intel, Lyft, Suse e outros
#nobigfatdaemons
Status
12
CRI-O está nos nós no Openshift Online!
“CRI-O just works for them, so they
haven’t had much to say”
Queremos que containers em produção
sejam tediosos
#nobigfatdaemons13
#nobigfatdaemons
Que mais o Openshift precisa?
14
● Capacidade de criar (build) containers
● Capacidade de enviar (push) imagens para um registro
#nobigfatdaemons
Introduzindo o Buildah
15
https://github.com/projectatomic/buildah
#nobigfatdaemons16
Coreutils para criação de containers. Interface simples.
# ctr = $(buildah from fedora)
# mnt = $(buildah mount $ctr)
#nobigfatdaemons17
#nobigfatdaemons18
Coreutils para criação de containers. Interface simples.
# ctr=$(buildah from fedora)
# mnt=$(buildah mount $ctr)
# cp -R src $mnt
# dnf install --installroot=$mnt httpd
# make install DESTDIR=$mnt
# buildah config --entrypoint=/usr/bin/test.sh $ctr
# buildah config --env foo=bar $ctr
# buildah commit $ctr myhttpd
# buildah push myhttpd docker://jwendell/myhttpd
#nobigfatdaemons19
Hey! E o Dockerfile???
Buildah também suporta Dockerfile
buildah build-using-dockerfile -f Dockerfile .
# ai que preguiça
buildah bud -F Dockerfile .
#nobigfatdaemons20
E sobre outra linguagem para criação de containers?
BASH
Queremos que outros construam ferramentas em cima do Buildah
Openshift pode usar Buildah para imagens S2I
Ansible-Containers também pode usar Buildah
#nobigfatdaemons
Que mais o Openshift precisa?
21
● Capacidade de diagnosticar problemas no host
● Se você não usa Docker para executar containers, como descobrir
o que tá acontecendo sem a CLI do docker?
#nobigfatdaemons
Introduzindo o podman
22
Gerenciamento de pods/containers baseada na cli Docker
# podman ps -a
# podman run -ti fedora sleep 2000
# podman exec -ti fedora sh
# podman images
https://github.com/projectatomic/libpod
#nobigfatdaemons
Introduzindo o Skopeo
23
#nobigfatdaemons
Skopeo
24
$ skopeo inspect docker://docker.io/fedora
$ skopeo copy docker://busybox:1-glibc atomic:myns/unsigned:streaming
$ skopeo copy docker://busybox:latest dir:existingemptydirectory
$ skopeo copy docker://busybox:latest oci:busybox_ocilayout:latest
$ skopeo delete docker://localhost:5000/imagename:latest
https://github.com/projectatomic/skopeo
#nobigfatdaemons
CRI-O é o melhor runtime para o K8S!
25
1. Open governance
2. Open source
3. Enxuto
4. Estável
5. Seguro
6. Chato!
http://www.projectatomic.io/blog/2017/06/6-reasons-why-cri-o-is-the-best-runtime-for-kubernetes/
#nobigfatdaemons
Perguntas?
26
Blog: https://medium.com/cri-o
Github:
● https://github.com/kubernetes-incubator/cri-o
● https://github.com/projectatomic/buildah
● https://github.com/projectatomic/skopeo
● https://github.com/projectatomic/libpod (podman)
● https://github.com/containers/storage
● https://github.com/containers/image
IRC: freenode: #cri-o
Site: https://cri-o.io
@jwendell | jonh.wendell@redhat.com
OBRIGADO
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat

More Related Content

What's hot

Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Renato Groff
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Renato Groff
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorMeetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorStefan Teixeira
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Renato Groff
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerLuís Bianchin
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerStefan Teixeira
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldThiago Soares
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoTobias Sette
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comandoRafael Gomes
 

What's hot (20)

Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
 
Desvendando o Docker
Desvendando o DockerDesvendando o Docker
Desvendando o Docker
 
Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorMeetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de Docker
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comando
 

Similar to CRI-O: Mais do que Docker para containers

Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engineHudson Brendon
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 RemarksRicardo Katz
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting dockerRafael Gomes
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Renato Groff
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresCarlos Andre Fernandes
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Renato Groff
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucaoFernando Ike
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao DockerGeorge Moura
 

Similar to CRI-O: Mais do que Docker para containers (20)

Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Meetup-Churrops
Meetup-ChurropsMeetup-Churrops
Meetup-Churrops
 
Docker: um linux container engine
Docker:  um linux container engineDocker:  um linux container engine
Docker: um linux container engine
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 Remarks
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 

CRI-O: Mais do que Docker para containers