Jak działa yum z subskrypcją sieciową Red Hat w obrazach Docker?

10

Red Hat Enterprise Linux 7 zawiera oficjalną obsługę uruchamiania kontenerów Docker, a Red Hat oferuje zestaw oficjalnych obrazów Rhel Docker. Ciekawą cechą tych obrazów jest to, że pakiety mogą być instalowane za pośrednictwem subskrypcji Red Hat Network bez konieczności przeprowadzania jakiejkolwiek konfiguracji w kontenerze.

Aby zacytować https://access.redhat.com/articles/881893#createimage :

„W bieżącej wersji Red Hat Docker domyślny obraz dokowania RHEL 7 pobierany z Red Hat będzie mógł czerpać z uprawnień RHEL 7 dostępnych z systemu hosta. Tak długo, jak host Docker jest poprawnie subskrybowany, a repozytoria są po włączeniu musisz mieć potrzebne oprogramowanie w swoim kontenerze (i mieć dostęp do Internetu z hosta Docker), powinieneś być w stanie zainstalować pakiety z repozytoriów oprogramowania RHEL 7 ”.

Obawiam się, że mechanizm, dzięki któremu można to osiągnąć, jest raczej niejasny. Na przykład podczas uruchamiania nowego kontenera z obrazem rhel7.1 można uruchomić yum install foonawet bez konfigurowania zmiennych środowiskowych proxy HTTP. Bez zrozumienia tego mechanizmu administrator systemu jest potencjalnie na łasce nieznanych interakcji między systemem hosta, demonem Docker i uruchomionymi kontenerami. Sugeruje to również, że normalna izolacja między hostem a kontenerem jest w jakiś sposób zagrożona (choć w łagodny sposób).

Mówiąc krótko: W jaki sposób osiąga się tę obsługę subskrypcji i czy zależy ona od niestandardowej wersji demona Docker dostarczanego przez Red Hat za pośrednictwem sieci subskrypcji?

Leynos
źródło
Dzięki @ Michael. Niestety nie mam dostępu do odpowiedzi opublikowanej na tej stronie, ponieważ osobiście nie mam konta subskrypcji Red Hat. (Konto, z którego korzysta mój pracodawca, jest prowadzone przez personel w innej organizacji). Zobaczę, czy ktoś z odpowiednim dostępem w organizacji może dostarczyć mi kopię tej odpowiedzi z bazy wiedzy.
Leynos
@michael ty możesz zamieścić komentarz jako odpowiedź imho.
Bram
@MichaelHampton Miałem okazję przeczytać odpowiedź na stronie Red Hat. W każdej zamieszczonej tutaj odpowiedzi warto zauważyć, że przedmiotowa funkcjonalność zależy od niestandardowej wersji demona Docker firmy Red Hat.
Leynos,

Odpowiedzi:

4

Red Hat przenosi łatkę do tak dockerzwanej łatki „tajemnic”, która umieszcza informacje o uprawnieniach w kontenerach po ich uruchomieniu.

Lepszy opis łaty i link do wcześniejszego PR znajduje się w repozytorium projectatomic / docker :

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

Uwaga: musisz wybrać jedną z gałęzi (link prowadzi do gałęzi „docker-1.3.1-rhel”), aby zobaczyć wszystkie informacje o przeniesionej łatce.

wściekłość
źródło
A zatem, jeśli użyjesz metody Docker CE (która nie ma tej ścieżki) zamiast Dockera dostarczonego przez Red Hat, nie będziesz mieć informacji o uprawnieniach i yumkomendach w kompilacji Docker lub obraz Dockera zawiedzie?
Raedwald
2

Wiedząc, w jaki sposób maszyny wirtualne zarządzane przez Red Hat Satellite są licencjonowane, i wychodząc z komentarza @ Leynos, spodziewałbym się, że istnieje coś podobnego do virt-who, czyli usługa, która rozmawia z hostem wirtualizacji (vSphere, KVM itp.) I wysyła do niej zapytania znaleźć szczegóły dotyczące maszyn wirtualnych. Następnie wykonuje niezbędne wywołania API w satelicie, aby umożliwić maszynie wirtualnej korzystanie z licencji centrum danych hosta.

Spodziewałbym się, że demon dokera Red Hat zapewnia coś podobnego, pozwalając kontenerowi wiedzieć, że działa z subskrybowanego hosta Docker, a zatem korzysta z tej subskrypcji.

Również stąd :

WAŻNE: Uruchamianie kontenerów za pomocą polecenia docker, jak opisano w tym temacie, nie wymaga konkretnej rejestracji systemu hosta atomowego RHEL i dołączenia subskrypcji. Jeśli jednak chcesz uruchomić yum komendy instalacyjne w kontenerze, kontener musi uzyskać prawidłowe informacje o subskrypcji od hosta atomowego RHEL, inaczej zawiedzie.

Jest więc coś w kontenerze lub demonie, które może wysłać zapytanie do hosta w celu znalezienia informacji o subskrypcji (i prawdopodobnie również informacji repo).

shearn89
źródło