Kata Containers 3.0 incluye soporte para GPU, Linux 5.19.2, QEMU 6.2.0 y mas
Después de dos años de desarrollo, se ha publicado el lanzamiento del proyecto Kata Containers 3.0, que desarrolla una pila para organizar la ejecución de contenedores utilizando aislamiento basado en mecanismos de virtualización completos.
En el corazón de Kata está el runtime, que brinda la capacidad de crear máquinas virtuales compactas que se ejecutan usando un hypervisor completo, en lugar de usar contenedores tradicionales que usan un kernel Linux común y se aíslan usando espacios de nombres y cgroups.
El uso de máquinas virtuales permite alcanzar un mayor nivel de seguridad que protege frente a ataques provocados por la explotación de vulnerabilidades en el kernel de Linux.
Sobre Kata Containers
Kata Containers se centra en integrarse en las infraestructuras de aislamiento de contenedores existentes con la capacidad de utilizar dichas máquinas virtuales para mejorar la protección de los contenedores tradicionales.
El proyecto proporciona mecanismos para hacer que las máquinas virtuales livianas sean compatibles con varios marcos de aislamiento de contenedores, plataformas de orquestación de contenedores y especificaciones como OCI, CRI y CNI. Las integraciones con Docker, Kubernetes, QEMU y OpenStack están disponibles.
La integración con los sistemas de gestión de contenedores se logra mediante una capa que simula la gestión de contenedores, la cual, a través de la interfaz gRPC y un proxy especial, accede al agente de control en la máquina virtual. Como hypervisor, se admite el uso de Dragonball Sandbox (una edición KVM optimizada para contenedores) con QEMU, así como Firecracker y Cloud Hypervisor. El entorno del sistema incluye el demonio de inicialización y el agente.
El agente ejecuta imágenes de contenedores definidas por el usuario en formato OCI para Docker y CRI para Kubernetes. Para reducir el consumo de memoria, se usa el mecanismo DAX y se usa la tecnología KSM para deduplicar áreas de memoria idénticas, lo que permite compartir los recursos del sistema host y conectarse a diferentes sistemas invitados con una plantilla de entorno de sistema común.
Principales novedades de Kata Containers 3.0
En la nueva versión se propone un runtime alternativo (runtime-rs), que forma el relleno de contenedores, escrito en el lenguaje Rust (el tiempo de ejecución proporcionado anteriormente está escrito en el lenguaje Go). Runtime es compatible con OCI, CRI-O y Containerd, lo que lo hace compatible con Docker y Kubernetes.
Otro de los cambios que se destaca de esta nueva, versión de Kata Containers 3.0, es que ahora también tiene soporte para GPU. Esto incluye soporte para E/S de función virtual (VFIO), que permite controladores de espacio de usuario y dispositivos PCIe seguros y sin privilegios.
Tambien se destaca que se implementó soporte para cambiar la configuración sin cambiar el archivo de configuración principal al reemplazar bloques en archivos separados ubicados en el directorio «config.d/». Los componentes de Rust usan una nueva biblioteca para trabajar con rutas de archivos de forma segura.
Además, ha surgido un nuevo proyecto de Kata Containers. Se trata de Confidential Containers, un proyecto de espacio aislado de Cloud-Native Computing Foundation (CNCF) de código abierto. Esta consecuencia del aislamiento de contenedores de Kata Containers, integra la infraestructura de Trusted Execution Environments (TEE) .
De los demás cambios que se destacan:
- Se ha propuesto un nuevo hipervisor de dragonball basado en KVM y rust-vmm .
- Se agregó soporte para cgroup v2.
- Componente virtiofsd (escrito en C) reemplazado por virtiofsd-rs (escrito en Rust).
- Se agregó soporte para el aislamiento de la zona de pruebas de los componentes QEMU.
- QEMU usa la API io_uring para E/S asíncrona.
- Se ha implementado la compatibilidad con las extensiones Intel TDX (Trusted Domain Extensions) para QEMU y Cloud-hypervisor.
- Componentes actualizados: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux 5.19.2.
Finalmente para los que estén interesados en el proyecto, deben saber que fue creado por Intel e Hyper combinando Clear Containers y tecnologías runV.
El código del proyecto está escrito en Go y Rust y se distribuye bajo la licencia Apache 2.0. El desarrollo del proyecto es supervisado por un grupo de trabajo creado bajo los auspicios de la organización independiente OpenStack Foundation.
Puedes consultar más al respecto, en el siguiente enlace.