Come funziona yum con Red Hat Network Subscription all'interno delle immagini di rhel Docker?


10

Red Hat Enterprise Linux 7 include il supporto ufficiale per l'esecuzione dei container Docker e Red Hat offre un set di immagini rhel Docker ufficiali. Una caratteristica interessante di queste immagini è che i pacchetti possono essere installati tramite l'abbonamento Red Hat Network dell'host senza dover eseguire alcuna configurazione all'interno del contenitore.

Per citare https://access.redhat.com/articles/881893#createimage :

"Per l'attuale versione di Red Hat Docker, l'immagine Docker di RHEL 7 predefinita estratta da Red Hat sarà in grado di attingere alle autorizzazioni RHEL 7 disponibili dal sistema host. Pertanto, purché l'host Docker sia correttamente abbonato e i repository siano abilitato alla necessità di ottenere il software desiderato nel contenitore (e di avere accesso a Internet dall'host Docker), si dovrebbe essere in grado di installare pacchetti dai repository di software RHEL 7 ".

La mia preoccupazione è che il meccanismo attraverso il quale ciò è ottenuto sia piuttosto opaco. Quando si avvia un nuovo contenitore con l'immagine rhel7.1, ad esempio, è possibile eseguire yum install foosenza nemmeno configurare le variabili di ambiente proxy http. Senza comprendere questo meccanismo, l'amministratore di sistema è potenzialmente in balia di interazioni sconosciute tra il sistema host, il daemon Docker e i container in esecuzione. Ciò suggerisce anche che il normale isolamento tra host e container è in qualche modo compromesso (anche se in modo benigno).

Per precisare: come si ottiene questo supporto per l'abbonamento e dipende dalla build personalizzata del demone Docker fornito da Red Hat tramite la rete di abbonamento?



Grazie @michael. Sfortunatamente, non ho accesso alla risposta pubblicata su quel sito, dal momento che non ho un account di abbonamento Red Hat. (L'account utilizzato dal mio datore di lavoro è gestito da personale di altre parti dell'organizzazione). Vedrò se qualcuno con il relativo accesso nell'organizzazione può fornirmi una copia di questa risposta KB.
Leynos,

@michael potresti pubblicare il tuo commento come una risposta imho.
Bram,

@MichaelHampton Ho avuto la possibilità di leggere la risposta sul sito Red Hat. Vale la pena notare in qualsiasi risposta pubblicata qui che la funzionalità in questione dipende dalla versione personalizzata del demone Docker di Red Hat.
Leynos,

Risposte:


4

Red Hat porta una patch dockerchiamata patch "segreti" che monta le informazioni sul diritto nei container quando vengono eseguite.

È possibile visualizzare una descrizione migliore della patch e un collegamento al PR upstream nel repository projectatomic / docker :

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

Nota, dovrai selezionare uno dei rami (il collegamento va al ramo 'docker-1.3.1-rhel') per vedere tutte le informazioni sulla patch trasportata.


E quindi, se usi provare su Docker CE (che non ha quel percorso) piuttosto che su Docker fornito da Red Hat, non avrai le informazioni sui diritti e i yumcomandi all'interno della build Docker o l'immagine Docker fallirà?
Raedwald,

2

Sapendo come vengono concesse in licenza le macchine virtuali gestite da Red Hat Satellite e andando fuori dal commento di @ Leynos, mi aspetto che esista qualcosa di simile virt-who, ovvero un servizio che parla all'host di virtualizzazione (vSphere, KVM, ecc.) E lo interroga a trova i dettagli delle macchine virtuali. Quindi effettua le chiamate API necessarie in Satellite per consentire alla VM di utilizzare la licenza del datacenter dell'host.

Mi aspetterei che il demone docker di Red Hat fornisca qualcosa di simile, consentendo al contenitore di sapere che è in esecuzione da un host Docker sottoscritto e quindi fare uso di tale abbonamento.

Anche da qui :

IMPORTANTE: l'esecuzione di contenitori con il comando docker, come descritto in questo argomento, non richiede specificamente di registrare il sistema RHEL Atomic Host e allegare un abbonamento. Tuttavia, se si desidera eseguire i comandi yum install all'interno di un contenitore, il contenitore deve ottenere informazioni di sottoscrizione valide dall'host atomico RHEL, altrimenti non funzionerà.

Quindi, c'è qualcosa nel contenitore o nel demone che può interrogare l'host per trovare le informazioni sull'abbonamento (e probabilmente anche le informazioni sul repository).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.