Aquesta és una revisió antiga del document
contenedores
Contenedores
Contenedores (I)
- virtualización ligera o de SO
- todos los sistemas comparten núcleo (kernel)
- usados desde hace mucho en Solaris (Containers y Zones) y FreeBSD (Jails)
- hosting compartido
- Limitado en Linux: vservers, OpenVZ, chroot, …
- contenedor más sencillo existente: chroot
Contenedores (II)
- Homogeneización del centro de datos
- «El Software libre ganó»
- SO que llenan los centros de datos son Linux
- facilita el uso de un sistema de contenedores, evita el uso de virtualización completa
- herramientas integradas en kernel que me garantizan seguridad, control recursos, etc..
- Linux cgroups (control groups)
- acceso controlado a recursos de sistema
- Linux namespaces
- LXC
LXC
- Integrado en el kernel de Linux
- se apoya en cgroups y namespaces
- cgroups: grupos de control, gestión a recursos
- namespaces : aislamiento
- los sistemas se instalan desde plantillas
- orientado al uso en sistemas
- docker le da una vuelta de tuerca al uso de los contenedores
Docker
- Muy similar a LXC «por abajo»
- se aprovecha del trabajo de LXC y añade capas
- orientado al despliegue en microservicios
- mover aplicaciones
- proporciona versionado
- proporciona capas (aufs o overlayfs)
- parto de cierta imagen y los cambios se almacenan como capas
- proporciona imágenes preconfiguradas
- dockerhub
- muy… «Infraestructure as a Code»
- muy… «devops»
- ¿de verdad usas bien docker?
- implica cambio de paradigma… orientado a microservicios
- sin sentido para aplicaciones monolíticas
rkt
- alternativa a docker
- desarrollado por CoreOS
LXD
- hipervisor de contenedores
- muy relacionado con LXC
- ¿LXC 2.0?
- basado en el uso de imágenes
- bien integrado con Ubuntu
- Canonical
Sistemas Operativos Ligeros
- más allá en el mundo de los contenedores:
- instalo SO
- todo lo que monto después está conteneizado
- ¿me hace falta un sistema de gestión de paquetes? ¿necesito «instalar»?
- monto un container, que se comporta como un Linux «normal», donde monto la aplicación que quiero
- CoreOS: «rolling release» → siempre usando la versión actualizada
Sistemas ligeros
- Container Linux (CoreOS)
- Project Atomic (RedHat)
- Ubuntu Core (Canonical)
- standar de aplicaciones → inapi
- RancherOS
- Photon (VMWare)
- DCOS (Mesosphere) = Data Center Operating System
- para desplegar aplicaciones «contenerizadas»
- sin paquetes de aplicaciones
- aplicaciones sobre contenedores (snaps en Ubuntu)
- suelen utilizarse para clusters
- RancherOS: el propio sistema «contenerizado»
Orquestación con contenedores