Samuel Karp, engenheiro da Amazon, que trabalha no desenvolvimento da distribuição Linux Bottlerocket e de tecnologias de isolamento de containers para a AWS, está criando um novo runtime runj baseado em jail do FreeBSD para garantir a execução isolada de containers alinhados às especificações da OCI (Open Container Initiative). O projeto é posicionado como experimental, sendo desenvolvido em seu tempo livre e ainda estando na fase de protótipo. O código é escrito em Go e distribuído sob a licença BSD.
Após o desenvolvimento atingir o nível adequado, o projeto poderá evoluir para permitir o uso do runj como substituto do runtime padrão em sistemas Docker e Kubernetes, utilizando o FreeBSD em vez do Linux para executar containers. No runtime da OCI, atualmente, estão implementados comandos para criação, exclusão, execução, término forçado e avaliação do estado dos containers. O conteúdo do container é criado com base em um ambiente padrão ou reduzido do FreeBSD.
Como a especificação da OCI ainda não suporta o FreeBSD, uma série de parâmetros adicionais relacionados à configuração do jail e do FreeBSD foi desenvolvida no âmbito do projeto, com a intenção de incorporá-los na especificação principal da OCI. Para gerenciar o jail, são usadas as utilitários jail, jls, jexec, kill e ps do FreeBSD, sem acesso direto a chamadas de sistema. Entre os planos futuros, destaca-se a adição de suporte para gerenciamento de limitação de recursos através da interface RCTL do núcleo.
Além do próprio runtime, o repositório do projeto também está desenvolvendo uma camada experimental para uso junto com o runtime containerd (usado no Docker), modificado para suporte ao FreeBSD. Para converter o rootfs do FreeBSD em uma imagem de container compatível com a OCI, uma utilitário especial é proposto. Posteriormente, a imagem criada pode ser importada para o containerd.
Fonte: opennet.ru
