Kata Containers: conceptos básicos, funcionalidad y áreas de aplicación

Kata Containers es un proyecto de una comunidad independiente de código abierto que trabaja para combinar las ventajas de un sistema de contenedores con las de una máquina virtual.

A continuación, te explicamos en detalle quiénes son los responsables de este proyecto y cómo funcionan los Kata Containers. Asimismo, te presentamos sus ventajas y desventajas, y los casos de aplicación más populares del tiempo de ejecución seguro de los contenedores.

¿En qué consiste Kata Containers?

El proyecto Kata Containers, que se inició en diciembre de 2017, tiene por objeto desarrollar una máquina virtual ligera con la apariencia y las funciones de un contenedor. Los Kata Containers son muy sencillos de usar, son altamente compatibles y pueden, además, manejar altas cargas de trabajo y mantener a su vez un alto estándar de seguridad. Para lograrlo, la comunidad apuesta por un mayor aislamiento hacia el exterior y, hacia el interior, por una tecnología de virtualización de hardware como segunda línea de defensa.

El proyecto Kata Containers está financiado y gestionado por la Fundación OpenStack (OSF), que trabaja para desarrollar y ofrecer una infraestructura abierta para la computación en la nube a nivel global. Por esto, el código de conducta de la OSF es una obra de referencia esencial para la colaboración en la comunidad de código abierto. El código del proyecto está alojado en GitHub con una licencia Apache 2. El comité de arquitectura de Kata incluye grandes corporaciones como Google y Microsoft.

La Fundación OpenStack ha publicado en YouTube una presentación detallada de 30 minutos acerca de los Kata Containers:

Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

¿Cómo funcionan los Kata Containers?

¿Cuáles son exactamente la arquitectura y funcionalidad de los Kata Containers? Para responder a esta pregunta, hay que remontarse a los inicios del proyecto: en diciembre de 2017, la comunidad fusionó y amplió con éxito las mejores partes de Intel Clear Containers (proyecto de Intel para contenedores de Linux seguros) con Hyper runV (tiempo de ejecución basado en hipervisor para proyectos de la iniciativa Open Container). En resumen: el rendimiento de Intel se combinó con la independencia de la plataforma de Hyper.

Uno de los aspectos más importantes en cualquier sistema de contenedores es la seguridad: puesto que los contenedores pueden apilarse o disponerse en capas, es difícil garantizar que sean seguros. Por tanto, tanto Intel como Hyper pretenden, de diferentes maneras, pero con resultados comparables, lograr un alto grado de flexibilidad en un entorno de contenedores: es posible apilar de forma simple formatos de contenedores como Kubernetes sobre OpenStack o viceversa, como también es posible el apilamiento complejo de Kubernetes sobre OpenStack sobre Kubernetes. Esta flexibilidad en la construcción de la arquitectura simplifica enormemente el uso de Kata Containers sin suponer un riesgo para la seguridad.

Con Kata se puede implementar tanto un aislamiento de máquina virtual a nivel de contenedor como un aislamiento de contenedor mediante virtualización de hardware. En el caso de Kubernetes, el aislamiento de máquina virtual no se proporciona a nivel de contenedor, sino a nivel de Podman o de pod, ya que los Kubernetes son conocidos como vainas (pods) más que como contenedores. Sin embargo, en aras de simplificar, en este texto utilizaremos el término contenedores para referirnos a ellos.

¿Cuál es la arquitectura de Kata Containers?

La comunidad sigue la estrategia de la máxima simplicidad, lo que se refleja también en la arquitectura de Kata Containers, que prevé los siguientes seis componentes:

  1. Agente
  2. Tiempo de ejecución
  3. Proxy
  4. Shim (extensión de compatibilidad para cada aplicación)
  5. Núcleo (núcleo del sistema operativo)
  6. Paquete con QEMU 2.9 (software de virtualización libre)

Estas características hacen a Kata independiente, altamente compatible y a la vez muy seguro. La arquitectura es compatible no solo con x86_64, sino también con AMD64, ARM y las series p y z de IBM. Además, Kata Containers permite el uso de múltiples hipervisores como QEMU, NEMU y Firecracker. También permite la integración con el proyecto containerd.

La compatibilidad de Kata Containers

Kata 1.10 es compatible con Docker Community Edition, pero es también compatible con todos los demás estándares de la industria, como el formato de contenedor OCI, las interfaces CRI de Kubernetes y algunas tecnologías de virtualización más antiguas, incluyendo CRI-O (1.10 commit 393429 correspondiente a CRI-Containerd versión 1.0.0) o la OCI Runtime Specification (v1.0.0-rc5).

Estos son algunos de los sistemas operativos compatibles con Kata Containers:

  • CentOS (7)
  • Debian (9, 10)
  • Fedora (28, 29, 30)
  • Ubuntu (16.04, 18.04)
  • Red Hat Enterprise Linux (7)
  • OpenSUSE (Leap, Tumbleweed)

Diferencias entre Kata Containers y los contenedores convencionales

La mayor ventaja de Kata Containers es que combina simplicidad y rendimiento, ya que elimina la necesidad de anidar contenedores en máquinas virtuales completas. La comunidad se ha centrado en crear interfaces estándar que hacen que familiarizarse con el sistema y conectarse sea mucho más sencillo. Su rendimiento sigue siendo tan fiable como el de un contenedor estándar de Linux, pero, gracias al mayor aislamiento, no tiene la regulación de potencia que presentaría una máquina virtual convencional. El siguiente gráfico ilustra las ventajas de su estructura.

Esto quiere decir que el proyecto de código abierto ya ha logrado su objetivo de crear un entorno de contenedores de código abierto cuyos componentes se comportan como contenedores, pero ofrecen el rendimiento y la seguridad de las máquinas virtuales. Kata Containers ya ha podido superar algunos de los problemas más antiguos de los contenedores como, por ejemplo, los relativos al escalamiento.

La seguridad de Kata Containers

Los contenedores ordinarios son ligeros, rápidos y fáciles de integrar. No obstante, presentan riesgos de seguridad, especialmente si se encuentran en un mismo sistema operativo: si los contenedores comparten un núcleo, una ruta de E/S, la misma red y la misma memoria, basta con atacar un solo contenedor para poner en peligro a todos los demás.

Con los Kata Containers, la situación es completamente diferente: la máquina virtual funciona en un núcleo dedicado (núcleo del sistema operativo), que separa los procesos de la red y la E/S, así como de la memoria. Además del ya fuerte aislamiento, el aislamiento reforzado por hardware se puede utilizar con extensiones de virtualización VT.

Kata Containers: resumen de sus ventajas e inconvenientes

Este ambicioso proyecto de código abierto de la Fundación OpenStack presenta numerosas ventajas. Incluso Clear Linux (Intel) ha abandonado su propia tecnología de contenedores y se ha pasado, con buenos resultados, a Kata Containers. Ya hemos mencionado anteriormente las razones decisivas:

  • excelente compatibilidad,
  • manejo sencillo,
  • alto rendimiento,
  • alto estándar de seguridad.

Otra ventaja es su bajo consumo de energía, incluso con un alto rendimiento.

Sin embargo, Kata no es una distribución apta para todos los propósitos. Es un sistema especial con limitaciones, algunas de las cuales se deben a sus principios. Esto incluye operaciones que no se pueden realizar en una máquina virtual, pero también limitaciones que se eliminarán en futuras actualizaciones. La comunidad ha publicado una lista detallada de sus limitaciones en la documentación oficial en GitHub. En la actualidad, los Kata Containers solo están disponibles en distribuciones Linux.

Otro inconveniente no desdeñable es que Kata está en sus primeras fases. No obstante, sus fundamentos tecnológicos son prometedores y tienen ya muchos usos.

¿Dónde se emplean los Kata Containers?

Como hemos mencionado al principio, la comunidad se adhiere al código de conducta de la OSF, que incluye una gestión abierta de todo el proyecto, especialmente del código fuente. La mejor manera de proporcionar este grado de apertura es combinar las dos bases de código abierto integradas y virtualizadas. Entre sus muchos partidarios se encuentran Kubernetes, Docker, OCI, CRI, CNI, QEMU, KVM y OpenStack.

Clear Containers y runV, el fundamento tecnológico de Kata Containers, son utilizados por importantes empresas de todo el mundo, entre ellas JD.com, una de las tiendas online más populares de China.

Los Kata Containers son particularmente recomendables si se requieren contenedores que no estén destinados a funcionar con un solo núcleo. Este puede ser el caso en ámbitos como la integración y la disposición continuas (CI/CD), el edge computing, las funciones de red virtualizadas y el contenedor como servicio (CaaS). Asimismo, Kata es ideal para implementaciones especializadas, porque ningún otro contenedor es tan simple, eficiente seguro y flexible.