SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
Introducción a Kata
Containers
Julio Montes
Disclaimer
The views, thoughts, and opinions expressed in the text belong solely to the
author, and not necessarily to the author’s employer, organization, committee or
other group or individual.
Acerca de mi
● Universidad de Guadalajara (CUCEI) (2009-2013)
○ Gubian Linux (GNU/Linux OS)
● Gameloft (2013-2014)
● Intel (2014)
○ Clear Linux project
■ Clearstack (setup openstack)
■ Micro-config drive (setup VMs at boot time)
○ Containers
■ cc-oci-runtime
■ Clear Containers
■ Kata Containers
Containers
Containers
Containers
● Namespace: capa de software que
hace creer a los procesos que están
dentro que tienen una instancia
propia de un recurso global
(Network devices, ports, mount
points, hostname, etc), cambios a
esta instancia global son invisibles
para otros procesos.
http://man7.org/linux/man-pages/man7/namespaces.7.html
Containers
● Cgroup: un grupo de procesos a los
cuales se les puede limitar y
monitorear el uso de algún recurso
(CPU, Memory, disk, etc)
http://man7.org/linux/man-pages/man7/cgroups.7.html
Containers
Containers
CVE-2019-5736: Permite
sobreescribir el binario de
runC y consecuentemente
ejecutar cualquier comando
como root (administrador) en
el host.
Máquinas Virtuales
Reducir la superficie de ataque e impacto en caso de
vulnerabilidades
Containers dentro de VMs
Containers dentro de VMs
Containers dentro de VMs
Kata Containers
Máquinas virtuales ligeras que se sienten y desempeñan
como containers
Kata Containers
Kata Containers
Kata Containers &
PODs
Dos o más containers en el mismo namespace y cgroup
Kata Containers & PODs
Aplicaciones
Interesantes
Máquina Virtual + Emulación + Custom Kernel
Con las máquinas virtuales se
puede emular casi cualquier
dispositivo.
● Streaming de videojuegos
o aplicaciones móviles
Kata Containers corriendo Android
Kata Containers
Componentes
Lo que se necesita para correr Kata Containers
Kata Layer
Kata Components
runtime (Host): Es el punto de entrada,
crea los kata containers.
proxy: (Host): Multiplexa la
comunicación entre el agente y los
shims.
agent (Guest): crea, monitorea y
comunica la comunicación los shims
con los containers.
shim (Host): es un espejo del container
que está dentro de la VM.
Kata Components
Hypervisor: El encargado de crear la
máquina virtual, actualmente Kata
Containers soporta varios
hipervisores:
● QEMU
● Firecracker
● NEMU
● ACRN
Canales de
comunicación
El reto de comunicar Guest y Host
Serial Port
QEMU
Pros:
● Device soportado desde hace
mucho tiempo. No se necesita un
kernel reciente.
Cons:
● Un solo canal. Se necesita
multiplexar el canal.
● Bottleneck.
Virtio Sockets (vsock)
QEMU 2.8+
Pros:
● Es como un unix socket
● No es necesario multiplexor
Cons:
● Nuevo tecnología, se necesita
un kernel reciente (4.8+) en el
host (Usuario no quieren
actualizar)
vsocks
Ya no se necesita un multiplexor,
memory footprint pequeño
Hybrid vsocks
Firecracker 0.18+
Pros:
● Tecnología nueva, pero no se
necesita un kernel reciente en el
Host, solo en el Guest.
● No se necesita un multiplexor
Cons:
● Se tiene que especificar el puerto
con el cual se quiere conectar:
CONNECT <port>
Filesystems
compartidos
El reto de compartir archivos entre Guest y Host
Compartiendo directorios y archivos
Cualquier cambio debe ser visible
tanto en el guest como en el host
9p
Pros:
● No se necesita un kernel
reciente
Cons:
● Inseguro
● No es totalmente compatible
con POSIX
● Algunas distros no incluyen el
driver en su kernel
● Mal performance (lento)
virtio filesystem (virtiofs)
Usa FUSE y un demonio corre en el host para sincronizar los directorios
compartidos
Pros:
● ~10 veces mejor performance que 9p
Cons:
● “Aún no es estable”
● Un no es upstream
● Se necesitara versiones de QEMU & Kernel muy recientes
https://virtio-fs.gitlab.io/design.html
Cloud Hypervisors
Ligeros, Rápidos y Limitados
Cloud hypervisors
Virtual Machine Monitor (VMM) con soporte para KVM.
Diseñados para correr cargas de trabajo en la nube.
Creación rápida de máquinas virtuales ligeras, con una arquitectura limitada para
reducir el consumo de memoria y la superficie de ataque.
Firecracker
● Desarrollado y mantenido por Amazon
● Escrito en Rust
● Basado en crossvm
(https://chromium.googlesource.com/chromiumos/platform/crosvm/)
● Diseñado para correr máquinas virtuales ligeras, llamadas microVM
● https://firecracker-microvm.github.io/
QEMU
● Machine type: microvm
● Desarrollado y mantenido por RedHat
● Escrito en C/C++
● Sin soporte para PCI ni ACPI
● Los parches aún están siendo revisados
● https://www.qemu.org/
Cloud Hypervisor
● Desarrollado y mantenido por Intel
● Escrito en Rust
● Extender la funcionalidad de firecracker
○ Hot plug block devices, Memory and CPU
● Aún en desarrollo
● https://github.com/intel/cloud-hypervisor/
Kata Community
Como contribuir a Kata Containers
● Licencia Apache 2.0
● Juntas
○ Kata Containers AC meeting - Todos los martes de 10 - 11 am GDL timezone
■ https://zoom.us/j/837139405
● Pull requests
○ https://github.com/kata-containers
○ https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md
Gracias

Más contenido relacionado

La actualidad más candente

Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
sergiovier
 

La actualidad más candente (20)

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Virtualizacion libre para sistemas Linux
Virtualizacion libre para sistemas LinuxVirtualizacion libre para sistemas Linux
Virtualizacion libre para sistemas Linux
 
Virtualizacion8
Virtualizacion8Virtualizacion8
Virtualizacion8
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)
[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)
[Run Reloaded] SCVMM 2008 R2 a fondo (Antonio Scuotto + Alejandro Ponicke)
 

Similar a Introduccion a kata containers

El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
betabeers
 

Similar a Introduccion a kata containers (20)

Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Informe laboratorio 1 kvm
Informe laboratorio 1 kvmInforme laboratorio 1 kvm
Informe laboratorio 1 kvm
 
Consolidacion
ConsolidacionConsolidacion
Consolidacion
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Cloud Computing. Contenedores
Cloud Computing. ContenedoresCloud Computing. Contenedores
Cloud Computing. Contenedores
 
Presentacio virtualització
Presentacio virtualitzacióPresentacio virtualització
Presentacio virtualització
 
OpenInfra Meetup 27082019 / Kata Containers
OpenInfra Meetup 27082019 / Kata ContainersOpenInfra Meetup 27082019 / Kata Containers
OpenInfra Meetup 27082019 / Kata Containers
 
Introduccion a la Virtualización.pdf
 Introduccion a la Virtualización.pdf Introduccion a la Virtualización.pdf
Introduccion a la Virtualización.pdf
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
MAQUINA VIRTUAL
MAQUINA VIRTUALMAQUINA VIRTUAL
MAQUINA VIRTUAL
 
Presentacin3 090720202939-phpapp01
Presentacin3 090720202939-phpapp01Presentacin3 090720202939-phpapp01
Presentacin3 090720202939-phpapp01
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
Tema 02 virtualizacion
Tema 02 virtualizacionTema 02 virtualizacion
Tema 02 virtualizacion
 
Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informática
 
Maquina virtual ⒽⓈⒽ
Maquina virtual ⒽⓈⒽMaquina virtual ⒽⓈⒽ
Maquina virtual ⒽⓈⒽ
 

Último

QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (18)

10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

Introduccion a kata containers

  • 2. Disclaimer The views, thoughts, and opinions expressed in the text belong solely to the author, and not necessarily to the author’s employer, organization, committee or other group or individual.
  • 3. Acerca de mi ● Universidad de Guadalajara (CUCEI) (2009-2013) ○ Gubian Linux (GNU/Linux OS) ● Gameloft (2013-2014) ● Intel (2014) ○ Clear Linux project ■ Clearstack (setup openstack) ■ Micro-config drive (setup VMs at boot time) ○ Containers ■ cc-oci-runtime ■ Clear Containers ■ Kata Containers
  • 6. Containers ● Namespace: capa de software que hace creer a los procesos que están dentro que tienen una instancia propia de un recurso global (Network devices, ports, mount points, hostname, etc), cambios a esta instancia global son invisibles para otros procesos. http://man7.org/linux/man-pages/man7/namespaces.7.html
  • 7. Containers ● Cgroup: un grupo de procesos a los cuales se les puede limitar y monitorear el uso de algún recurso (CPU, Memory, disk, etc) http://man7.org/linux/man-pages/man7/cgroups.7.html
  • 9. Containers CVE-2019-5736: Permite sobreescribir el binario de runC y consecuentemente ejecutar cualquier comando como root (administrador) en el host.
  • 10. Máquinas Virtuales Reducir la superficie de ataque e impacto en caso de vulnerabilidades
  • 14. Kata Containers Máquinas virtuales ligeras que se sienten y desempeñan como containers
  • 17. Kata Containers & PODs Dos o más containers en el mismo namespace y cgroup
  • 19. Aplicaciones Interesantes Máquina Virtual + Emulación + Custom Kernel
  • 20. Con las máquinas virtuales se puede emular casi cualquier dispositivo. ● Streaming de videojuegos o aplicaciones móviles Kata Containers corriendo Android
  • 21. Kata Containers Componentes Lo que se necesita para correr Kata Containers
  • 23. Kata Components runtime (Host): Es el punto de entrada, crea los kata containers. proxy: (Host): Multiplexa la comunicación entre el agente y los shims. agent (Guest): crea, monitorea y comunica la comunicación los shims con los containers. shim (Host): es un espejo del container que está dentro de la VM.
  • 24. Kata Components Hypervisor: El encargado de crear la máquina virtual, actualmente Kata Containers soporta varios hipervisores: ● QEMU ● Firecracker ● NEMU ● ACRN
  • 25. Canales de comunicación El reto de comunicar Guest y Host
  • 26. Serial Port QEMU Pros: ● Device soportado desde hace mucho tiempo. No se necesita un kernel reciente. Cons: ● Un solo canal. Se necesita multiplexar el canal. ● Bottleneck.
  • 27. Virtio Sockets (vsock) QEMU 2.8+ Pros: ● Es como un unix socket ● No es necesario multiplexor Cons: ● Nuevo tecnología, se necesita un kernel reciente (4.8+) en el host (Usuario no quieren actualizar)
  • 28. vsocks Ya no se necesita un multiplexor, memory footprint pequeño
  • 29. Hybrid vsocks Firecracker 0.18+ Pros: ● Tecnología nueva, pero no se necesita un kernel reciente en el Host, solo en el Guest. ● No se necesita un multiplexor Cons: ● Se tiene que especificar el puerto con el cual se quiere conectar: CONNECT <port>
  • 30. Filesystems compartidos El reto de compartir archivos entre Guest y Host
  • 31. Compartiendo directorios y archivos Cualquier cambio debe ser visible tanto en el guest como en el host
  • 32. 9p Pros: ● No se necesita un kernel reciente Cons: ● Inseguro ● No es totalmente compatible con POSIX ● Algunas distros no incluyen el driver en su kernel ● Mal performance (lento)
  • 33. virtio filesystem (virtiofs) Usa FUSE y un demonio corre en el host para sincronizar los directorios compartidos Pros: ● ~10 veces mejor performance que 9p Cons: ● “Aún no es estable” ● Un no es upstream ● Se necesitara versiones de QEMU & Kernel muy recientes https://virtio-fs.gitlab.io/design.html
  • 35. Cloud hypervisors Virtual Machine Monitor (VMM) con soporte para KVM. Diseñados para correr cargas de trabajo en la nube. Creación rápida de máquinas virtuales ligeras, con una arquitectura limitada para reducir el consumo de memoria y la superficie de ataque.
  • 36. Firecracker ● Desarrollado y mantenido por Amazon ● Escrito en Rust ● Basado en crossvm (https://chromium.googlesource.com/chromiumos/platform/crosvm/) ● Diseñado para correr máquinas virtuales ligeras, llamadas microVM ● https://firecracker-microvm.github.io/
  • 37. QEMU ● Machine type: microvm ● Desarrollado y mantenido por RedHat ● Escrito en C/C++ ● Sin soporte para PCI ni ACPI ● Los parches aún están siendo revisados ● https://www.qemu.org/
  • 38. Cloud Hypervisor ● Desarrollado y mantenido por Intel ● Escrito en Rust ● Extender la funcionalidad de firecracker ○ Hot plug block devices, Memory and CPU ● Aún en desarrollo ● https://github.com/intel/cloud-hypervisor/
  • 40. Como contribuir a Kata Containers ● Licencia Apache 2.0 ● Juntas ○ Kata Containers AC meeting - Todos los martes de 10 - 11 am GDL timezone ■ https://zoom.us/j/837139405 ● Pull requests ○ https://github.com/kata-containers ○ https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md