Após dois anos de desenvolvimento, foi publicado o lançamento do projeto Kata Containers 3.0, que desenvolve uma pilha para organizar a execução de containers utilizando isolamento baseado em mecanismos de virtualização completos. O projeto foi criado pela Intel e Hyper combinando Clear Containers e tecnologias runV. O código do projeto é escrito em Go e Rust e é distribuído sob a licença Apache 2.0. O desenvolvimento do projeto é supervisionado por um grupo de trabalho criado sob os auspícios da organização independente OpenStack Foundation, que inclui empresas como Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE e ZTE. .
No coração do Kata está o tempo de execução, que fornece a capacidade de criar máquinas virtuais compactas que rodam usando um hipervisor completo, em vez de usar contêineres tradicionais que usam um kernel Linux comum e são isolados por meio de namespaces e cgroups. A utilização de máquinas virtuais permite atingir um maior nível de segurança que protege contra ataques causados pela exploração de vulnerabilidades no kernel Linux.
Kata Containers está focada na integração em infraestruturas de isolamento de contêineres existentes com a capacidade de usar máquinas virtuais semelhantes para aprimorar a proteção de contêineres tradicionais. O projeto fornece mecanismos para garantir a compatibilidade de máquinas virtuais leves com diversas infraestruturas de isolamento de contêineres, plataformas de orquestração de contêineres e especificações como OCI (Open Container Initiative), CRI (Container Runtime Interface) e CNI (Container Networking Interface). Estão disponíveis ferramentas para integração com Docker, Kubernetes, QEMU e OpenStack.
A integração com sistemas de gerenciamento de containers é feita por meio de uma camada que simula o gerenciamento de containers, que acessa o agente gerenciador na máquina virtual por meio da interface gRPC e um proxy especial. Dentro do ambiente virtual iniciado pelo hipervisor, é utilizado um kernel Linux especialmente otimizado, contendo apenas o conjunto mínimo de recursos necessários.
Como hipervisor, suporta o uso do Dragonball Sandbox (uma edição do KVM otimizada para contêineres) com o kit de ferramentas QEMU, bem como Firecracker e Cloud Hypervisor. O ambiente do sistema inclui um daemon de inicialização e um agente. O agente fornece execução de imagens de contêiner definidas pelo usuário no formato OCI para Docker e CRI para Kubernetes. Quando usado em conjunto com o Docker, uma máquina virtual separada é criada para cada contêiner, ou seja, O ambiente executado no hipervisor é usado para inicialização aninhada de contêineres.
Para reduzir o consumo de memória, é utilizado o mecanismo DAX (acesso direto ao sistema de arquivos, ignorando o cache da página sem usar o nível do dispositivo de bloco), e para desduplicar áreas de memória idênticas, é utilizada a tecnologia KSM (Kernel Samepage Merging), que permite você para organizar o compartilhamento de recursos do sistema host e conectar-se a diferentes sistemas convidados, compartilhe um modelo de ambiente de sistema comum.
Na nova versão:
- É proposto um runtime alternativo (runtime-rs), que forma o preenchimento de containers, escrito na linguagem Rust (o runtime fornecido anteriormente foi escrito na linguagem Go). Runtime é compatível com OCI, CRI-O e Containerd, permitindo sua utilização com Docker e Kubernetes.
- Um novo hipervisor Dragonball baseado em KVM e Rust-VMM foi proposto.
- Adicionado suporte para encaminhamento de acesso à GPU usando VFIO.
- Adicionado suporte para cgroup v2.
- O suporte para alterar configurações sem alterar o arquivo de configuração principal foi implementado substituindo blocos em arquivos separados localizados no diretório “config.d/”.
- Os componentes Rust incluem uma nova biblioteca para trabalhar com segurança com caminhos de arquivos.
- O componente virtiofsd (escrito em C) foi substituído por virtiofsd-rs (escrito em Rust).
- Adicionado suporte para sandbox de componentes QEMU.
- QEMU usa a API io_uring para E/S assíncrona.
- O suporte para extensões Intel TDX (Trusted Domain Extensions) foi implementado para QEMU e Cloud-hypervisor.
- Componentes atualizados: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, kernel Linux 5.19.2.
Fonte: opennet.ru