Lanzamiento de Kata Containers 3.0 con aislamiento basado en virtualización

Después de dos años de desarrollo, se publicó el lanzamiento del proyecto Kata Containers 3.0, que desarrolla una pila para organizar la ejecución de contenedores mediante aislamiento basado en mecanismos de virtualización completos. El proyecto 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 está supervisado por un grupo de trabajo creado bajo los auspicios de la organización independiente OpenStack Foundation, que incluye empresas como Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE y ZTE. .

En el corazón de Kata está el tiempo de ejecución, que brinda la capacidad de crear máquinas virtuales compactas que se ejecutan usando un hipervisor completo, en lugar de usar contenedores tradicionales que usan un kernel de Linux común y están aislados usando espacios de nombres y cgroups. El uso de máquinas virtuales permite alcanzar un mayor nivel de seguridad que protege contra ataques provocados por la explotación de vulnerabilidades en el kernel de Linux.

Kata Containers se centra en la integración en infraestructuras de aislamiento de contenedores existentes con la capacidad de utilizar máquinas virtuales similares para mejorar la protección de los contenedores tradicionales. El proyecto proporciona mecanismos para garantizar la compatibilidad de máquinas virtuales livianas con varias infraestructuras de aislamiento de contenedores, plataformas de orquestación de contenedores y especificaciones como OCI (Open Container Initiative), CRI (Container Runtime Interface) y CNI (Container Networking Interface). Hay herramientas disponibles para la integración con Docker, Kubernetes, QEMU y OpenStack.

Lanzamiento de Kata Containers 3.0 con aislamiento basado en virtualización

La integración con los sistemas de gestión de contenedores se logra mediante una capa que simula la gestión de contenedores, que accede al agente de gestión en la máquina virtual a través de la interfaz gRPC y un proxy especial. Dentro del entorno virtual, que inicia el hipervisor, se utiliza un kernel de Linux especialmente optimizado, que contiene solo el conjunto mínimo de capacidades necesarias.

Como hipervisor, admite el uso de Dragonball Sandbox (una edición de KVM optimizada para contenedores) con el kit de herramientas QEMU, así como Firecracker y Cloud Hypervisor. El entorno del sistema incluye un demonio de inicialización y un agente. El agente proporciona ejecución de imágenes de contenedores definidas por el usuario en formato OCI para Docker y CRI para Kubernetes. Cuando se usa junto con Docker, se crea una máquina virtual separada para cada contenedor, es decir, El entorno que se ejecuta sobre el hipervisor se utiliza para el lanzamiento anidado de contenedores.

Lanzamiento de Kata Containers 3.0 con aislamiento basado en virtualización

Para reducir el consumo de memoria, se utiliza el mecanismo DAX (acceso directo al sistema de archivos, sin pasar por el caché de la página sin usar el nivel del dispositivo de bloque), y para deduplicar áreas de memoria idénticas, se utiliza la tecnología KSM (Kernel Samepage Merging), que le permite para organizar el intercambio de recursos del sistema host y conectarse a diferentes sistemas invitados, comparta una plantilla de entorno de sistema común.

Versículos nuevos:

  • Se propone un tiempo de ejecución alternativo (runtime-rs), que forma el llenado de contenedores, escrito en lenguaje Rust (el tiempo de ejecución suministrado anteriormente estaba escrito en lenguaje Go). Runtime es compatible con OCI, CRI-O y Containerd, lo que permite su uso con Docker y Kubernetes.
  • Se ha propuesto un nuevo hipervisor Dragonball basado en KVM y Rust-VMM.
  • Se agregó soporte para reenviar el acceso a la GPU mediante VFIO.
  • Se agregó soporte para cgroup v2.
  • Se implementó la compatibilidad para cambiar la configuración sin cambiar el archivo de configuración principal reemplazando bloques en archivos separados ubicados en el directorio “config.d/”.
  • Los componentes de Rust incluyen una nueva biblioteca para trabajar de forma segura con rutas de archivos.
  • El componente virtiofsd (escrito en C) ha sido reemplazado por virtiofsd-rs (escrito en Rust).
  • Se agregó soporte para componentes QEMU de espacio aislado.
  • QEMU utiliza la API io_uring para E/S asincrónicas.
  • Se ha implementado compatibilidad con 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, kernel de Linux 5.19.2.

Fuente: opennet.ru

Añadir un comentario