Kata Co­n­tai­ne­rs es un proyecto de una comunidad in­de­pe­n­die­n­te de código abierto que trabaja para combinar las ventajas de un sistema de co­n­te­ne­do­res con las de una máquina virtual.

A co­n­ti­nua­ción, te ex­pli­ca­mos en detalle quiénes son los re­s­po­n­sa­bles de este proyecto y cómo funcionan los Kata Co­n­tai­ne­rs. Asimismo, te pre­se­n­ta­mos sus ventajas y de­s­ve­n­ta­jas, y los casos de apli­ca­ción más populares del tiempo de ejecución seguro de los co­n­te­ne­do­res.

¿En qué consiste Kata Co­n­tai­ne­rs?

El proyecto Kata Co­n­tai­ne­rs, que se inició en diciembre de 2017, tiene por objeto de­sa­rro­llar una máquina virtual ligera con la apa­rie­n­cia y las funciones de un co­n­te­ne­dor. Los Kata Co­n­tai­ne­rs son muy sencillos de usar, son altamente co­m­pa­ti­bles 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 ai­s­la­mie­n­to hacia el exterior y, hacia el interior, por una te­c­no­lo­gía de vi­r­tua­li­za­ción de hardware como segunda línea de defensa.

El proyecto Kata Co­n­tai­ne­rs está fi­na­n­cia­do y ge­s­tio­na­do por la Fundación OpenStack (OSF), que trabaja para de­sa­rro­llar y ofrecer una in­frae­s­tru­c­tu­ra abierta para la co­mpu­tación en la nube a nivel global. Por esto, el código de conducta de la OSF es una obra de re­fe­re­n­cia esencial para la co­la­bo­ra­ció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 ar­qui­te­c­tu­ra de Kata incluye grandes co­r­po­ra­cio­nes como Google y Microsoft.

La Fundación OpenStack ha publicado en YouTube una pre­se­n­ta­ción detallada de 30 minutos acerca de los Kata Co­n­tai­ne­rs:

¿Cómo funcionan los Kata Co­n­tai­ne­rs?

¿Cuáles son exac­ta­me­n­te la ar­qui­te­c­tu­ra y fu­n­cio­na­li­dad de los Kata Co­n­tai­ne­rs? Para responder a esta pregunta, hay que re­mo­n­tar­se a los inicios del proyecto: en diciembre de 2017, la comunidad fusionó y amplió con éxito las mejores partes de Intel Clear Co­n­tai­ne­rs (proyecto de Intel para co­n­te­ne­do­res de Linux seguros) con Hyper runV (tiempo de ejecución basado en hi­pe­r­vi­sor para proyectos de la ini­cia­ti­va Open Container). En resumen: el re­n­di­mie­n­to de Intel se combinó con la in­de­pe­n­de­n­cia de la pla­ta­fo­r­ma de Hyper.

Uno de los aspectos más im­po­r­ta­n­tes en cualquier sistema de co­n­te­ne­do­res es la seguridad: puesto que los co­n­te­ne­do­res pueden apilarse o di­s­po­ne­r­se en capas, es difícil ga­ra­n­ti­zar que sean seguros. Por tanto, tanto Intel como Hyper pretenden, de di­fe­re­n­tes maneras, pero con re­su­l­ta­dos co­m­pa­ra­bles, lograr un alto grado de fle­xi­bi­li­dad en un entorno de co­n­te­ne­do­res: es posible apilar de forma simple formatos de co­n­te­ne­do­res como Ku­be­r­ne­tes sobre OpenStack o viceversa, como también es posible el api­la­mie­n­to complejo de Ku­be­r­ne­tes sobre OpenStack sobre Ku­be­r­ne­tes. Esta fle­xi­bi­li­dad en la co­n­s­tru­c­ción de la ar­qui­te­c­tu­ra si­m­pli­fi­ca eno­r­me­me­n­te el uso de Kata Co­n­tai­ne­rs sin suponer un riesgo para la seguridad.

Con Kata se puede im­ple­me­n­tar tanto un ai­s­la­mie­n­to de máquina virtual a nivel de co­n­te­ne­dor como un ai­s­la­mie­n­to de co­n­te­ne­dor mediante vi­r­tua­li­za­ción de hardware. En el caso de Ku­be­r­ne­tes, el ai­s­la­mie­n­to de máquina virtual no se pro­po­r­cio­na a nivel de co­n­te­ne­dor, sino a nivel de Podman o de pod, ya que los Ku­be­r­ne­tes son conocidos como vainas (pods) más que como co­n­te­ne­do­res. Sin embargo, en aras de si­m­pli­fi­car, en este texto uti­li­za­re­mos el término co­n­te­ne­do­res para re­fe­ri­r­nos a ellos.

Consejo

Co­n­fi­gu­rar y ejecutar un sistema de co­n­te­ne­do­res puede ser muy complejo, porque no­r­ma­l­me­n­te se deben poner varios co­n­te­ne­do­res a di­s­po­si­ción de varios or­de­na­do­res di­fe­re­n­tes. Con Ku­be­r­ne­tes as a service de IONOS podrás pla­ni­fi­car, organizar, lanzar y escalar tus co­n­te­ne­do­res de forma sencilla siempre que lo necesites.

¿Cuál es la ar­qui­te­c­tu­ra de Kata Co­n­tai­ne­rs?

La comunidad sigue la es­tra­te­gia de la máxima si­m­pli­ci­dad, lo que se refleja también en la ar­qui­te­c­tu­ra de Kata Co­n­tai­ne­rs, que prevé los si­guie­n­tes seis co­m­po­ne­n­tes:

  1. Agente
  2. Tiempo de ejecución
  3. Proxy
  4. Shim (extensión de co­m­pa­ti­bi­li­dad para cada apli­ca­ción)
  5. Núcleo (núcleo del sistema operativo)
  6. Paquete con QEMU 2.9 (software de vi­r­tua­li­za­ción libre)

Estas ca­ra­c­te­rí­s­ti­cas hacen a Kata in­de­pe­n­die­n­te, altamente co­m­pa­ti­ble y a la vez muy seguro. La ar­qui­te­c­tu­ra es co­m­pa­ti­ble no solo con x86_64, sino también con AMD64, ARM y las series p y z de IBM. Además, Kata Co­n­tai­ne­rs permite el uso de múltiples hi­pe­r­vi­so­res como QEMU, NEMU y Fi­re­cra­c­ker. También permite la in­te­gra­ción con el proyecto co­n­tai­ne­rd.

La co­m­pa­ti­bi­li­dad de Kata Co­n­tai­ne­rs

Kata 1.10 es co­m­pa­ti­ble con Docker Community Edition, pero es también co­m­pa­ti­ble con todos los demás es­tá­n­da­res de la industria, como el formato de co­n­te­ne­dor OCI, las in­te­r­fa­ces CRI de Ku­be­r­ne­tes y algunas te­c­no­lo­gías de vi­r­tua­li­za­ción más antiguas, in­clu­ye­n­do CRI-O (1.10 commit 393429 co­rre­s­po­n­die­n­te a CRI-Co­n­tai­ne­rd versión 1.0.0) o la OCI Runtime Spe­ci­fi­ca­tion (v1.0.0-rc5).

Estos son algunos de los sistemas ope­ra­ti­vos co­m­pa­ti­bles con Kata Co­n­tai­ne­rs:

  • CentOS (7)
  • Debian (9, 10)
  • Fedora (28, 29, 30)
  • Ubuntu (16.04, 18.04)
  • Red Hat En­te­r­pri­se Linux (7)
  • OpenSUSE (Leap, Tu­m­ble­weed)

Di­fe­re­n­cias entre Kata Co­n­tai­ne­rs y los co­n­te­ne­do­res co­n­ve­n­cio­na­les

La mayor ventaja de Kata Co­n­tai­ne­rs es que combina si­m­pli­ci­dad y re­n­di­mie­n­to, ya que elimina la necesidad de anidar co­n­te­ne­do­res en máquinas virtuales completas. La comunidad se ha centrado en crear in­te­r­fa­ces estándar que hacen que fa­mi­lia­ri­zar­se con el sistema y co­ne­c­tar­se sea mucho más sencillo. Su re­n­di­mie­n­to sigue siendo tan fiable como el de un co­n­te­ne­dor estándar de Linux, pero, gracias al mayor ai­s­la­mie­n­to, no tiene la re­gu­la­ción de potencia que pre­se­n­ta­ría una máquina virtual co­n­ve­n­cio­nal. El siguiente gráfico ilustra las ventajas de su es­tru­c­tu­ra.

Esto quiere decir que el proyecto de código abierto ya ha logrado su objetivo de crear un entorno de co­n­te­ne­do­res de código abierto cuyos co­m­po­ne­n­tes se comportan como co­n­te­ne­do­res, pero ofrecen el re­n­di­mie­n­to y la seguridad de las máquinas virtuales. Kata Co­n­tai­ne­rs ya ha podido superar algunos de los problemas más antiguos de los co­n­te­ne­do­res como, por ejemplo, los relativos al es­ca­la­mie­n­to.

La seguridad de Kata Co­n­tai­ne­rs

Los co­n­te­ne­do­res or­di­na­rios son ligeros, rápidos y fáciles de integrar. No obstante, presentan riesgos de seguridad, es­pe­cia­l­me­n­te si se en­cue­n­tran en un mismo sistema operativo: si los co­n­te­ne­do­res comparten un núcleo, una ruta de E/S, la misma red y la misma memoria, basta con atacar un solo co­n­te­ne­dor para poner en peligro a todos los demás.

Con los Kata Co­n­tai­ne­rs, la situación es co­m­ple­ta­me­n­te 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 ai­s­la­mie­n­to, el ai­s­la­mie­n­to reforzado por hardware se puede utilizar con ex­te­n­sio­nes de vi­r­tua­li­za­ción VT.

Kata Co­n­tai­ne­rs: resumen de sus ventajas e in­co­n­ve­nie­n­tes

Este ambicioso proyecto de código abierto de la Fundación OpenStack presenta numerosas ventajas. Incluso Clear Linux (Intel) ha aba­n­do­na­do su propia te­c­no­lo­gía de co­n­te­ne­do­res y se ha pasado, con buenos re­su­l­ta­dos, a Kata Co­n­tai­ne­rs. Ya hemos me­n­cio­na­do an­te­rio­r­me­n­te las razones decisivas:

  • excelente co­m­pa­ti­bi­li­dad,
  • manejo sencillo,
  • alto re­n­di­mie­n­to,
  • alto estándar de seguridad.

Otra ventaja es su bajo consumo de energía, incluso con un alto re­n­di­mie­n­to.

Sin embargo, Kata no es una di­s­tri­bu­ción apta para todos los pro­pó­si­tos. Es un sistema especial con li­mi­ta­cio­nes, algunas de las cuales se deben a sus pri­n­ci­pios. Esto incluye ope­ra­cio­nes que no se pueden realizar en una máquina virtual, pero también li­mi­ta­cio­nes que se eli­mi­na­rán en futuras ac­tua­li­za­cio­nes. La comunidad ha publicado una lista detallada de sus li­mi­ta­cio­nes en la do­cu­me­n­ta­ción oficial en GitHub. En la ac­tua­li­dad, los Kata Co­n­tai­ne­rs solo están di­s­po­ni­bles en di­s­tri­bu­cio­nes Linux.

Otro in­co­n­ve­nie­n­te no de­s­de­ña­ble es que Kata está en sus primeras fases. No obstante, sus fu­n­da­me­n­tos te­c­no­ló­gi­cos son pro­me­te­do­res y tienen ya muchos usos.

¿Dónde se emplean los Kata Co­n­tai­ne­rs?

Como hemos me­n­cio­na­do al principio, la comunidad se adhiere al código de conducta de la OSF, que incluye una gestión abierta de todo el proyecto, es­pe­cia­l­me­n­te del código fuente. La mejor manera de pro­po­r­cio­nar este grado de apertura es combinar las dos bases de código abierto in­te­gra­das y vi­r­tua­li­za­das. Entre sus muchos pa­r­ti­da­rios se en­cue­n­tran Ku­be­r­ne­tes, Docker, OCI, CRI, CNI, QEMU, KVM y OpenStack.

Clear Co­n­tai­ne­rs y runV, el fu­n­da­me­n­to te­c­no­ló­gi­co de Kata Co­n­tai­ne­rs, son uti­li­za­dos por im­po­r­ta­n­tes empresas de todo el mundo, entre ellas JD.com, una de las tiendas online más populares de China.

Los Kata Co­n­tai­ne­rs son pa­r­ti­cu­la­r­me­n­te re­co­me­n­da­bles si se requieren co­n­te­ne­do­res que no estén de­s­ti­na­dos a funcionar con un solo núcleo. Este puede ser el caso en ámbitos como la in­te­gra­ción y la di­s­po­si­ción continuas (CI/CD), el edge computing, las funciones de red vi­r­tua­li­za­das y el co­n­te­ne­dor como servicio (CaaS). Asimismo, Kata es ideal para im­ple­me­n­ta­cio­nes es­pe­cia­li­za­das, porque ningún otro co­n­te­ne­dor es tan simple, eficiente seguro y flexible.

Ir al menú principal