Architektura ITPolecane tematy
Atomowe hosty dla kontenerów Dockera
Projekt Atomic, nawet w fazie koncepcyjnej, jest jedną z najbardziej ekscytujących inicjatyw w społeczności open source. Jednym z powodów są systemy Atomic Host budowane na bazie Red Hat Enterprise Linux, CentOS lub Fedory – dobrze znanych i przetestowanych dystrybucji.
Czym więc są kontenery Dockera i o co tyle szumu w społeczności open source? Kontenery te są oparte na szybkiej wirtualizacji na poziomie procesów. Nie tworzą dodatkowych instancji jądra systemu operacyjnego i są „lżejsze” od maszyn wirtualnych. W praktyce pozwalają osiągnąć większą gęstość, a to oznacza, że na tym samym hoście można uruchomić większą ilość kontenerów, niż maszyn wirtualnych. Uruchamianie i zamykanie kontenera jest również znacznie szybsze, niż uruchamianie i zamykanie maszyny wirtualnej. Wszystkie kontenery w hoście działają pod kontrolą tego samego jądra. Deweloperzy nie muszą też martwić się o to, że aktualizacja systemu operacyjnego zmieni biblioteki, od których zależne są ich aplikacje.
Kontenery i drzewo systemu plików
Błędem byłoby jednak ograniczanie Projektu Atomic wyłącznie do technologii kontenerów. Tak naprawdę jego unikatową cechą jest narzędzie rpm-ostree, które podczas aktualizacji dostarcza całe drzewo systemu plików. Drzewa przypominają pakiety, ponieważ są niezależne od systemu plików. Równocześnie są one podobne do obrazów, gdyż drzewo występuje jako całość, a nie jako zestaw osobnych pakietów, jak we współczesnych systemach operacyjnych. To właśnie ta „jedność” kształtuje ideę „atomowości” — jednostki aktualizacji dostarczanej w niepodzielny sposób.
Kontenery Dockera, dla których powstał Atomic Host, oparte są na szybkiej wirtualizacji na poziomie procesów. Nie tworzą dodatkowych instancji jądra systemu operacyjnego i są „lżejsze” od maszyn wirtualnych. W praktyce pozwalają osiągnąć większą gęstość, a to oznacza, że na tym samym hoście można uruchomić większą ilość kontenerów, niż maszyn wirtualnych.
Atomic Host składa się ze zbioru pakietów systemu operacyjnego, takiego jak Fedora lub Red Hat Enterprise Linux, pobieranego za pomocą narzędzia rpm-ostree w celu stworzenia drzewa systemu plików, które można wdrażać i aktualizować jako atomową jednostkę. Oznacza to, że bazowy system operacyjny aktualizowany jest jako całość i że w razie potrzeby można przywrócić go do wcześniejszej wersji. Podobnie jest w przypadku kontenerów Dockera.
Hosty ograniczone do kluczowych komponentów
Jedną z największych korzyści dla użytkowników jest fakt, że system Atomic Host ma wszystkie zalety bazowej dystrybucji (np. Red Hat Enterprise Linux). Użytkownicy mają jednak do dyspozycji tylko jej kluczowe komponenty, co usprawnia dostarczanie aplikacji. Rezultatem jest system hosta z dokładnie tymi narzędziami, które są faktycznie niezbędne, takimi jak systemd do zarządzania zależnościami między kontenerami i do usuwania skutków awarii, journald do bezpiecznej agregacji logów diagnostycznych kontenerów oraz SELinux do izolowania kontenerów i pracujących w nich aplikacji.
Unikatową cechą Projektu Atomic jest narzędzie rpm-ostree, które podczas aktualizacji dostarcza całe drzewo systemu plików. Drzewa te przypominają pakiety, ponieważ są niezależne od systemu plików. Równocześnie są one podobne do obrazów, gdyż drzewo występuje jako całość, a nie jako zestaw osobnych pakietów, jak we współczesnych systemach operacyjnych.
Ponadto w systemach Atomic Host dostępne będą narzędzia, których wielu administratorów używa do zarządzania systemami, np. instalator Anaconda. Ważną funkcją zintegrowaną z Atomic Host będą również technologie instrumentacji GearD i Kubernetes, zaczerpnięte z projektu OpenShift Origin, które pomogą powiązać systemd z Dockerem, co z kolei ułatwi konfigurację i zarządzanie kontenerami.
Ponieważ systemy Atomic Host są budowane za pomocą narzędzia rpm-ostree, korzystają z ekosystemu RPM, producenci będą mogli udostępniać aktualizacje razem z główną dystrybucją. Kiedy zatem np. Fedora wyda aktualizację OpenSSL, te same pakiety RPM będzie można wykorzystać do szybkiego wygenerowania nowego drzewa dla użytkowników Atomic.
Atomic Host posiada wszystkie zalety bazowej dystrybucji. Użytkownicy mają jednak do dyspozycji tylko jej kluczowe komponenty, co usprawnia dostarczanie aplikacji. Rezultatem jest system hosta z dokładnie tymi narzędziami, które są faktycznie niezbędne, takimi jak journald do bezpiecznej agregacji logów diagnostycznych kontenerów oraz SELinux do izolowania kontenerów i pracujących w nich aplikacji.
Wreszcie systemy Atomic Hosts oferują kokpit – menedżer serwerów, który umożliwia centralne zarządzanie hostami, usługami i kontenerami. Kokpit trafi również do Fedory, CentOS i RHEL, zapewniając kolejne narzędzie działające we wszystkich systemach.
Atomowa rodzina
Między Projektem Atomic a systemami Atomic Host może wystąpić pewne niezrozumienie co do relacji. Warto tutaj podkreślić, że Projekt Atomic nie przygotowuje konkretnych odmian Linuksa. Te będą pochodzić z dystrybucji CentOS, Fedora, Red Hat i potencjalnie innych.
Atomic Host są budowane za pomocą narzędzia rpm-ostree, korzystają z ekosystemu RPM, dzięki czemu producenci będą mogli udostępniać aktualizacje razem z główną dystrybucją. Kiedy zatem np. Fedora wyda aktualizację OpenSSL, te same pakiety RPM będzie można wykorzystać do szybkiego wygenerowania nowego drzewa dla użytkowników Atomic.
Cykl wydawniczy Red Hat Enterprise Linux Atomic Host (RHEL Atomic Host) nie będzie pokrywał się z cyklem oferty Atomic w projekcie Fedora. Będzie on raczej dostosowany do wdrożeń korporacyjnych, podczas gdy cykl Fedory będzie uwzględniał potrzeby tych, którzy prowadzą eksperymenty i testują nowsze, mniej „wygrzane” technologie. Rozwiązania te mogą następnie trafić do przyszłych wersji RHEL Atomic Host, podobnie jak Fedora wnosi wkład w przyszłe wersje Red Hat Enterprise Linux.
Kilka prostych rad na początekProjekt Atomic wciąż znajduje się na wczesnym etapie, ale już teraz dostępne są obrazy Fedory i Red Hat Enterprise Linux, które można wypróbować. Dobra wiadomość dla tych, którzy nie są wielkimi fanami wiersza poleceń, jest taka, że Atomic oferuje przeglądarkowy interfejs graficzny – kokpit. Po stworzeniu maszyny wirtualnej hosta z pobranego obrazu qcow2 lub vdi wystarczy skonfigurować hasło roota i włączyć usługę cockpit poprzez wprowadzenie kilku prostych poleceń na konsoli.
Następnie można otworzyć cockpit poprzez wprowadzenie adresu http://:1001 w przeglądarce internetowej.
Cockpit pozwala użytkownikom zarządzać wieloma systemami Atomic Host z poziomu prostego interfejsu w przeglądarce, np. aktywacja i deaktywacja usług systemowych.
Podstawowe wykresy wydajności pokazują bieżący stopień wykorzystania zasobów.
Administratorzy mogą zmieniać podstawowe elementy konfiguracyjne, w tym zarządzać kontenerami — uruchamiać je, zatrzymywać lub usuwać, a także przydzielać albo ograniczać zasoby używane przez nie.
Jeśli zajdzie potrzeba skorzystania z wiersza poleceń, można użyć terminala awaryjnego, który również jest dostępny w interfejsie cockpitu.
Zachęcamy do wypróbowania systemu Atomic Host, a także do aktywnego uczestnictwa w projekcie. Dzięki niemu praca może stać się przyjemniejsza, życie łatwiejsze, a środowisko IT bardziej elastyczne. Więcej informacji można znaleźć w witrynie Project Atomic.
Wojciech Furmakiewicz jest Senior Solution Architect w polskim oddziale Red Hat.