Recipientes do Linux (LXC) no Red Hat / CentOS EL6 - lxc-create versus libvirt?

13

É complicado tentar ficar dentro das boas graças da Red Hat e ainda planejar a longevidade do sistema ...

Sou proponente de Linux Containers (LXC) há mais de um ano. Minhas instalações iniciais foram baseadas em informações coletadas de tutoriais on-line, como este e este . Isso centralizou os comandos lxc-create , lxc-start|stop e lxc-destroy e modificou os modelos OpenVZ existentes.

Isso funciona bem e está sendo executado com prazer na produção. No entanto, estou criando alguns sistemas adicionais e decidi verificar a documentação atual da Red Hat sobre os contêineres no EL6. Fiquei surpreso ao ver sua posição oficial sobre isso.

Em o RHEL 6 fornece ferramentas LXC necessárias para usar containers Linux? , a Red Hat descreve o LXC como um < em> Technology Preview e sugere o uso do libvirt para gerenciar a criação e o gerenciamento de contêineres .

Ainda, o Oracle defende uma técnica de contêineres totalmente diferente em seu Unbreakable Linux.

Parece haver algumas funcionalidades ausentes no método libvirt, mas minha abordagem inicial com os comandos lxc- * era um processo manual ... não consigo dizer o que é certo ou o meio "aceito" de gerenciar recipientes em EL6.

  • Qual é a sabedoria convencional sobre os sistemas LXC e RHEL hoje?
  • Como você está implementando-os na sua organização?
  • Existem vantagens em uma abordagem versus as outras?
  • Eles podem coexistir?
por ewwhite 18.05.2014 / 00:09

3 respostas

7

What's the conventional wisdom regarding LXC and RHEL-like systems today?

Pessoalmente, acho que falta a configuração atual. O LXC parece mais na vanguarda - certamente mais mantido.

How are you implementing them?

Em termos de oferecer isso como uma opção de virtualização, não sou. Acho que falta a atual configuração tecnológica.

  • Nenhum namespace de nome de usuário.
  • Determinados pontos de montagem não estão cientes do namespace (cgroups, selinux)
  • Valores em / proc são elementos globais do sistema enganosos que não consideram o particionamento de recursos em namespaces.
  • Interrompe a auditoria.

Eu acho realmente boa ferramenta para contenção de nível de aplicativo no entanto. Usamos namespaces e cgroups diretamente para conter recursos de rede e IPC para determinados aplicativos da web executados pelo usuário. Nós fornecemos nossa própria interface para controlá-lo. No RHEL7, estou pensando em mover essa funcionalidade para libvirt-lxc , pois as revisões mais recentes de libvirt suportam o conceito de ACLs de usuário.

Para a virtualização em termos de um sistema totalmente inicializado, aguardo o que é oferecido no RHEL7, mas com toda a sinceridade, acho que só poderemos ver uma solução boa o suficiente quando estivermos em uma versão posterior do RHEL7. e talvez apenas em um estado de pré-visualização de tecnologia.

Fique de olho no systemd-nspawn algo me diz que, nos próximos 18 meses, a melhor ferramenta para fazer a virtualização totalmente linux contida é a de que os autores do sistema deixem claro o seu direito não seguro agora! Eu não ficaria surpreso se libvirt descartar libvirt-lxc eventualmente e apenas oferecer um wrapper em torno de systemd-nspawn com fatias do systemd definidas.

Além disso, tenha cuidado ao longo dos últimos 6 meses em relação à reimplementação do cgroups como uma interface de programador do kernel ao invés de uma interface de sistema de arquivos (talvez usando netlink ou algo assim, não verificado) ser muito quente na cauda de conseguir isso muito rapidamente.

Are there any advantages to one approach versus the other?

Acho que a opção LXC (não libvirt-lxc) é melhor mantida. Depois de ler o código-fonte libvirt-lxc , ele se sente apressado. LXC tradicional certamente tem recursos mais recentes que foram melhor testados. Ambos requerem um grau de compatibilidade pelo sistema init que está sendo executado neles, mas eu suspeito que você vai achar o LXC um pouco mais "turn-key" do que a opção libvirt-lxc particularmente no que diz respeito a obter distros para trabalhar neles.

Can these coexist?

Claro, lembre-se que, para todos os efeitos, ambos estão fazendo a mesma coisa. Organizando namespaces, cgroups e pontos de montagem. Todas as primitivas são tratadas pelo próprio kernel. Ambas as implementações lxc apenas oferecem um mecanismo para interagir com as opções do kernel disponíveis.

    
por 18.05.2014 / 00:30
9

A Red Hat está fazendo um push enorme de conteinerização. Eles estão construindo um novo produto, Host Atômico do Red Hat Enterprise Linux , em torno dele.

Para uma abordagem menos radical, dê uma olhada no RHEL7 beta Guia de Gerenciamento de Recursos e Contêineres Linux ; você notará que ele libera libvirt-lxc e não menciona as ferramentas lxc.

    
por 18.05.2014 / 17:38
1

Os executáveis lxc- * são empacotados no pacote lxc em EPEL . No entanto, é o antigo lançamento de "suporte a longo prazo". Você nem tem a opção "-f" em lxc-ls. Eu simplesmente instalaria o Ubuntu para meus hosts LXC.

O modo RHEL para gerenciar o LXC parece ser via libvirt-lxc, mas é aparentemente obsoleto .

Notou que o Ubuntu está suportando muitos dos novos desenvolvimentos do lxc / lxd, enquanto Redhat está se concentrando no KVM e no docker.

    
por 07.10.2015 / 16:00