Foi apresentado o terceiro lançamento do projeto Incus, no qual a comunidade Linux Containers desenvolve um fork do sistema de gerenciamento de contêineres LXD, criado pela antiga equipe de desenvolvedores que fundou o LXD. O código do Incus é escrito na linguagem Go e é distribuído sob a licença Apache 2.0.
Vale lembrar que a comunidade Linux Containers supervisionou o desenvolvimento do LXD até que a Canonical decidiu desenvolver o LXD de forma separada como um projeto corporativo. O objetivo do fork é fornecer uma alternativa gerida independentemente pela comunidade ao projeto LXD, controlado pela Canonical. No âmbito do projeto Incus, também está previsto corrigir alguns erros conceituais cometidos no desenvolvimento do LXD que antes não podiam ser corrigidos sem comprometer a compatibilidade retroativa.
O Incus oferece ferramentas para gerenciamento centralizado de contêineres e máquinas virtuais, implantadas tanto em um único host quanto em um cluster de vários. servidores. O projeto é implementado na forma de um processo em segundo plano que aceita solicitações pela rede através de uma API REST e suporta vários backends de armazenamento (árvore de diretórios, ZFS, Btrfs, LVM), snapshots de estados, migração ao vivo de contêineres em execução de uma máquina para outra e ferramentas para armazenamento de imagens de contêineres. Para executar os contêineres, utiliza-se a ferramenta LXC, que inclui a biblioteca liblxc, um conjunto de utilitários (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), templates para construção de contêineres e um conjunto de bindings para várias linguagens de programação. A isolação é realizada através dos mecanismos nativos do núcleo Linux (namespaces, cgroups, Apparmor, SELinux, Seccomp).
As mudanças mais notáveis:
- Foi adicionada a suporte ao gerenciamento de autorização de usuários com base no modelo de Controle de Acesso Baseado em Relacionamentos, implementado através de um processo em segundo plano OpenFGA, que é responsável por tomar decisões sobre a concessão de poderes a usuários. Combinado com o provedor OpenID Connect, o suporte ao OpenFGA permite formar uma pilha aberta de identificação e autorização, permitindo usar o Incus como uma substituição completa para as configurações LXD com o RBAC da Canonical. Para configurar o acesso ao OpenFGA foram propostas as opções openfga.api.token, openfga.api.url, openfga.store.id e openfga.store.model_id.
- A ferramenta lxd-to-incus foi aprimorada, automatizando a migração de LXD para Incus. A nova versão adicionou suporte a distribuições com sistema de inicialização OpenRC, implementou a possibilidade de migrar armazenamentos Ceph e redes OVN, garantiu o registro das migrações e a criação de backups.
- Em máquinas virtuais adicionado suporte para conexão e remoção a quente (hot-plug/hot-remove) de caminhos de arquivos ou partições individuais, passadas do ambiente host. Anteriormente, essa passagem utilizando o driver virtio-fs ou o FS 9p exigia a parada da máquina virtual. Para contornar essa limitação, foi utilizada a capacidade do QEMU de conectar dispositivos PCI a quente e montar o caminho dentro do sistema guest através do incus-agent.
Fonte: opennet.ru
