Como o yum com Red Hat Network Subscription funciona dentro das imagens rhel Docker?

Como o yum com Red Hat Network Subscription funciona dentro das imagens rhel Docker?

O Red Hat Enterprise Linux 7 inclui suporte oficial para execução de contêineres Docker, e a Red Hat oferece um conjunto de imagens oficiais do rhel Docker. Uma característica interessante dessas imagens é que os pacotes podem ser instalados através do Red Hat Network Subscription do host sem a necessidade de realizar qualquer configuração dentro do contêiner.

Citarhttps://access.redhat.com/articles/881893#createimage:

"Para a versão atual do Red Hat Docker, a imagem padrão do RHEL 7 Docker que você extrai do Red Hat será capaz de aproveitar os direitos do RHEL 7 disponíveis no sistema host. Portanto, contanto que seu host Docker esteja devidamente inscrito e os repositórios sejam habilitado que você precisa obter o software que deseja em seu contêiner (e ter acesso à Internet a partir de seu host Docker), você poderá instalar pacotes dos repositórios de software RHEL 7. "

A minha preocupação é que o mecanismo através do qual isto é conseguido seja bastante opaco. Ao iniciar um novo container com a imagem rhel7.1, por exemplo, é possível rodar yum install foosem sequer configurar as variáveis ​​de ambiente do proxy http. Sem compreender esse mecanismo, o administrador do sistema fica potencialmente à mercê de interações desconhecidas entre o sistema host, o daemon Docker e os contêineres em execução. Isto também sugere que o isolamento normal entre o host e o contêiner está de alguma forma comprometido (embora de forma benigna).

Para esclarecer: como esse suporte de assinatura é alcançado e ele depende da construção personalizada do daemon Docker fornecido pela Red Hat por meio da Subscription Network?

Responder1

A Red Hat carrega um patch dockerchamado patch 'segredos' que monta as informações de direitos em contêineres quando eles são executados.

Você pode ver uma descrição melhor do patch e um link para o PR upstream noprojectatômico/dockerrepositório:

https://github.com/projectatomic/docker/tree/docker-1.13.1-rhel#add-rhel-super-secrets-patchpatch

Observe que você precisará selecionar uma das ramificações (o link vai para a ramificação 'docker-1.3.1-rhel') para ver todas as informações do patch transportado.

Responder2

Sabendo como as máquinas virtuais gerenciadas pelo Red Hat Satellite são licenciadas e seguindo o comentário de @Leynos, eu esperaria que houvesse algo semelhante a virt-who, que é um serviço que conversa com o host de virtualização (vSphere, KVM, etc) e o consulta para encontre detalhes de VMs. Em seguida, ele faz as chamadas de API necessárias no Satellite para permitir que a VM use a licença do datacenter do host.

Eu esperaria que o daemon docker do Red Hat fornecesse algo semelhante, permitindo que o contêiner soubesse que está sendo executado a partir de um host Docker inscrito e, portanto, faça uso dessa assinatura.

Também deaqui:

IMPORTANTE: A execução de contêineres com o comando docker, conforme descrito neste tópico, não requer especificamente que você registre o sistema RHEL Atomic Host e anexe uma assinatura. No entanto, se você quiser executar comandos yum install dentro de um contêiner, o contêiner deverá obter informações de assinatura válidas do RHEL Atomic Host ou falhará.

Portanto, há algo no contêiner ou no daemon que pode consultar o host para encontrar informações de assinatura (e provavelmente também informações de repositório).

informação relacionada