¿Cómo funciona yum con Red Hat Network Subscription dentro de las imágenes de rhel Docker?

10

Red Hat Enterprise Linux 7 incluye soporte oficial para ejecutar contenedores Docker, y Red Hat ofrece un conjunto de imágenes oficiales de rhel Docker. Una característica interesante de estas imágenes es que los paquetes se pueden instalar a través de la Suscripción de Red Hat Network del host sin tener que realizar ninguna configuración dentro del contenedor.

Para citar https://access.redhat.com/articles/881893#createimage :

"Para la versión actual de Red Hat Docker, la imagen predeterminada de RHEL 7 Docker que extraiga de Red Hat podrá aprovechar los derechos de RHEL 7 disponibles desde el sistema host. Por lo tanto, siempre que su host Docker esté debidamente suscrito y los repositorios estén habilitado para que necesite obtener el software que desea en su contenedor (y tener acceso a Internet desde su host Docker), debería poder instalar paquetes desde los repositorios de software de RHEL 7 ".

Mi preocupación es que el mecanismo por el cual se logra esto es bastante opaco. Al iniciar un nuevo contenedor con la imagen rhel7.1, por ejemplo, es posible ejecutarlo yum install foosin siquiera configurar las variables de entorno del proxy http. Sin comprender este mecanismo, el administrador del sistema está potencialmente a merced de interacciones desconocidas entre el sistema host, el demonio Docker y los contenedores en ejecución. Esto también sugiere que el aislamiento normal entre el host y el contenedor está de alguna manera comprometido (aunque de manera benigna).

Para aclararlo: ¿cómo se logra este soporte de suscripción y depende de la compilación personalizada del demonio Docker proporcionado por Red Hat a través de la red de suscripción?

Leynos
fuente
Gracias @michael. Desafortunadamente, no tengo acceso a la respuesta publicada en ese sitio, ya que personalmente no tengo una cuenta de suscripción a Red Hat. (La cuenta que usa mi empleador es mantenida por el personal en otra parte de la organización). Veré si alguien con el acceso relevante en la organización me puede proporcionar una copia de esta respuesta KB.
Leynos
@michael deberías publicar tu comentario como respuesta en mi humilde opinión.
Bram
@MichaelHampton He tenido la oportunidad de leer la respuesta en el sitio de Red Hat. Vale la pena señalar en cualquier respuesta publicada aquí que la funcionalidad en cuestión depende de la versión personalizada de Red Hat del demonio Docker.
Leynos

Respuestas:

4

Red Hat lleva un parche dockerllamado parche 'secretos' que monta la información de titularidad en contenedores cuando se ejecutan.

Puede ver una mejor descripción del parche y un enlace al PR aguas arriba en el repositorio de proyectores / docker :

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

Tenga en cuenta que deberá seleccionar una de las ramas (el enlace va a la rama 'docker-1.3.1-rhel') para ver toda la información del parche transportado.

rageear
fuente
Y, por lo tanto, si usa Try to Docker CE (que no tiene esa ruta) en lugar del Docker proporcionado por Red Hat, ¿no tendrá la información de derechos y los yumcomandos dentro de su compilación Docker o la imagen de Docker fallará?
Raedwald
2

Sabiendo cómo las máquinas virtuales administradas por Red Hat Satellite tienen licencia, y dejando de lado el comentario de @ Leynos, esperaría que haya algo similar virt-who, que es un servicio que habla con el host de virtualización (vSphere, KVM, etc.) y lo consulta a encontrar detalles de máquinas virtuales. Luego realiza las llamadas API necesarias en Satellite para permitir que la VM use la licencia del centro de datos del host.

Esperaría que el Docker Daemon de Red Hat proporcione algo similar, permitiendo que el contenedor sepa que se está ejecutando desde un host Docker suscrito y, por lo tanto, haga uso de esa suscripción.

También desde aquí :

IMPORTANTE: la ejecución de contenedores con el comando docker, como se describe en este tema, no requiere específicamente que registre el sistema RHEL Atomic Host y adjunte una suscripción. Sin embargo, si desea ejecutar comandos de instalación yum dentro de un contenedor, el contenedor debe obtener información de suscripción válida del host atómico RHEL o fallará.

Entonces, hay algo en el contenedor o en el demonio que puede consultar al host para encontrar información de suscripción (y probablemente también información de repositorio).

shearn89
fuente