Pojemnik Linux - Container Linux

  (Przekierowano z Container Linux przez CoreOS )

pojemnik Linux
Pojemnik Linux logo
Deweloper czerwony kapelusz
rodzina OS Linux (oparty na Gentoo Linux )
stan roboczy w rozwoju
Model źródło Otwarte źródło
Pierwsze wydanie 03 października 2013 ; 6 lat temu ( 03.10.2013 )
Najnowsze wydanie 2247.5.0 / 15 października 2019 ; 5 miesięcy temu ( 15.10.2019 )
Najnowsze podgląd 2275.2.0 / 15 października 2019 ; 5 miesięcy temu ( 15.10.2019 )
target marketing Serwery i klastry
platformy x86-64
kernel typ Monolityczny ( Linux kernel )
Licencja Apache License 2.0
Oficjalna strona internetowa coreos .com / os / docs / latest /

Pojemnik Linux (dawniej CoreOS Linux ) jest open-source lekki system operacyjny oparty na jądrze Linuksa i zaprojektowany dla zapewnienia infrastruktury do skupionych wdrożeń, skupiając się na automatyzację, łatwość wdrażania aplikacji, bezpieczeństwo, niezawodność i skalowalność . Jako system operacyjny, Pojemnik Linux zapewnia tylko minimalną funkcjonalność wymaganą dla wdrażania aplikacji wewnątrz pojemników oprogramowania , wraz z wbudowanymi mechanizmami wykrywania usług i udostępnianie konfiguracji.

Pojemnik Linux akcji fundamenty z Gentoo Linux , Chrome OS i Chromium OS poprzez wspólny Software Development Kit (SDK). Pojemnik Linux dodaje nową funkcjonalność i dostosowanie do tego wspólnego fundamentu ze sprzętem i przypadków użycia serwera wsparcie. W styczniu 2015 r CoreOS jest aktywnie rozwijany głównie przez Alex Polvi, Brandon Phillips i Michaela Marineau z jej głównych funkcji dostępnych w wydaniu stabilnym .

Przegląd

Pojemnik Linux zapewnia żadnego menedżera pakietów jako sposób dystrybucji aplikacji ładowność, wymagając zamiast uruchomić wszystkie aplikacje w swoich pojemnikach. Służąc jako jednego hosta sterowania instancji Container Linux używa bazowy system operacyjny, poziom wirtualizacji cech jądra Linuksa do tworzenia i konfigurowania wielu pojemników, które wykonują jako pojedyncze linuksowych systemów. W ten sposób zasób podział pomiędzy pojemników odbywa się za pośrednictwem wielu odosobnionych użtykownika przypadkach zamiast stosowania hypervisor i zapewniając pełnoprawnym maszyn wirtualnych . Podejście to opiera się na Linux Kernel cgroups i obszary nazw funkcji, które razem zapewniają zdolności do limitu, konto i wykorzystania zasobów izolatu ( procesora , pamięci, dysku I / O , etc.) dla zbiorów użtykownika procesów .

Początkowo Pojemnik Linux wykorzystywane wyłącznie Döcker jako składnik zapewniając dodatkową warstwę abstrakcji i interfejs do wirtualizacji przez system operacyjny na poziomie cech jądra Linux, a także dostarczenie znormalizowanego formatu pojemników, które umożliwia uruchamianie aplikacji w różnych środowiskach. W grudniu 2014 r CoreOS zwolniony i zaczął wsparcia RKT (początkowo wydany jako Rocket ) jako alternatywa dla Döcker, zapewniając przez to inny znormalizowany format obrazów aplikacji kontenera, powiązanych definicji pojemnik środowiska wykonawczego oraz protokół do odkrywania i pobierania obrazów kontenerów. CoreOS zapewnia RKT jako realizacji tak zwanej aplikacji pojemnik (appc) Wartość wskazująca wymaganych właściwości obrazu zastosowanie pojemnika (ACI); CoreOS zainicjowany APPC i ACI jako niezależna komisja niekierowane zestaw specyfikacji, zmierzające do ich posiadania stać się częścią udostępnionej przez dostawcę systemu operacyjnego i niezależne otwarty pojemnik Initiative (OCI, początkowo nazwany otwarty pojemnik projektu lub OCP) norma containerization, który został ogłoszony w czerwcu 2015 r.

Pojemnik Linux używa marne skrypty z Gentoo Linux dla automatycznej kompilacji swoich komponentów systemu i wykorzystuje Systemd jako podstawowy Init systemu ze ścisłej integracji między Systemd i mechanizmów wewnętrznych różnych Container Linuksa.

dystrybucja aktualizacje

Pojemnik Linux osiąga dodatkowe bezpieczeństwo i niezawodność systemu operacyjnego aktualizacjach stosując FastPatch jako schemat podwójnego partycji dla odczytu tylko części jego instalacji, co oznacza, że aktualizacje są wykonywane jako całość i zainstalowane na pasywnym wtórnym rozruchowym partycji , które staje aktywne po ponownym uruchomieniu lub kexec . Takie podejście pozwala uniknąć ewentualnych problemów, wynikających z aktualizacji tylko niektórych części systemu operacyjnego, zapewnia łatwe staczania się do znanej-to-be-stabilna wersja systemu operacyjnego i pozwala każdemu partycja rozruchowa być podpisana do dodatkowego zabezpieczenia. Partycja, a jego system plików są automatycznie zmniejszane do zapełnienia całego dostępnego miejsca na dysku momencie ponownego uruchamiania; natomiast partycja zapewnia odczytu i zapisu przestrzeń pamięci, system operacyjny sam w sobie jest zamontowany tylko do odczytu pod / usr .

Aby zapewnić, że tylko pewną część klastra ponownym uruchomieniu od razu, gdy stosowane są aktualizacje systemu operacyjnego, zachowując W ten sposób zasoby niezbędne do uruchamiania aplikacji wdrożonych, CoreOS zapewnia ślusarza jako restart menedżer Container Linux. Korzystanie ślusarza, można wybierać między różnymi strategiami aktualizacji, które są określane przez jak restartuje wykonywane są jako ostatni krok w zastosowaniu aktualizacji; Na przykład, można skonfigurować ilu członków klastra są dozwolone, aby ponownie uruchomić jednocześnie. Wewnętrznie, ślusarz pracuje jako locksmithd demona , który działa na członków klastra, natomiast locksmithctl wiersza polecenia narzędzie zarządza parametrów konfiguracyjnych. Ślusarz został napisany w języku Go i rozpowszechniany na warunkach licencji Apache 2.0 .

System dystrybucji aktualizacje zatrudniony przez Container Linux jest oparty na Google „s open source Omaha projektu, który zapewnia mechanizm toczenia się aktualizacje i podstawowego żądanie-odpowiedź protokół oparty na XML . Dodatkowo CoreOS zapewnia CoreUpdate jako internetowego deski rozdzielczej do zarządzania aktualizacjach całego klastra. Operacje dostępne przez CoreUpdate to przypisanie członków klastra do różnych grup, które akcje niestandardowe zasady aktualizacji, przegląd klastra całej podziałów wersjach Pojemnik Linux, zatrzymanie i ponowne uruchomienie aktualizacji i przeglądu nagranych dzienniki aktualizacji. CoreUpdate zapewnia również HTTP -na API , który umożliwia jego integrację narzędzi innych firm lub systemów wdrażania .

infrastruktura klastra

Ilustracja wysoki poziom architektury klastrowej CoreOS

Pojemnik Linux zapewnia etcd, demona, który działa na wszystkich komputerach w klastrze i stanowi rejestr konfiguracyjny dynamiczne, umożliwiając różne dane konfiguracyjne być łatwo i niezawodnie dzielone pomiędzy członków klastra. Ponieważ dane klucz-wartość przechowywane w etcd jest automatycznie dystrybuowane i replikowane z automatycznym wyborem głównego i konsensusu przedsiębiorczości z wykorzystaniem Raft algorytmu, wszystkie zmiany przechowywanych danych znajdują odzwierciedlenie w całym klastrze, a osiągnięte redundancji Zapobiega awarie pojedynczych członków klastra z powodowania utrata danych. Oprócz zarządzania konfiguracją, etcd zapewnia również wykrywania usług poprzez umożliwienie aplikacji wdrożonych ogłosić siebie i oferowanych przez nich usług. Komunikacja z etcd odbywa się przez odsłoniętą odpoczynek -na API, wewnątrz której wykorzystuje JSON na wierzchu HTTP; API mogą być użyte bezpośrednio (poprzez zwinięcie lub wget , na przykład), albo pośrednio przez etcdctl , który jest wyspecjalizowany Narzędzie wiersza dostarcza także CoreOS .. Etcd stosowany jest również w Kubernetes oprogramowania.

Pojemnik Linux dostarcza również floty menedżera klastra, który steruje osobne instancje Systemd Container Linuksa na poziomie klastra. Począwszy od 2017 roku „floty” nie jest już aktywnie rozwijany i jest zastąpiona Kubernetes . Za pomocą fleetd Container Linux tworzy rozproszone init który łączy oddzielne przykłady Systemd i klastrów szeroki etcd wysunięciem; wewnętrznie fleetd demon łączy się z lokalnym Systemd przypadkach na D-Bus , oraz z etcd rozmieszczenia przez odkrytej API. Korzystanie fleetd pozwala na wdrożenie jednego lub wielu pojemników cluster-szerokie, z bardziej zaawansowanych opcji, w tym zwolnienia , failover , wdrażanie do poszczególnych członków klastra, zależnościami między pojemnikami, a zgrupowane rozmieszczenia pojemników. Narzędzie linii poleceń zwany fleetctl służy do konfigurowania i monitorowania tego rozproszonego systemu startowy; wewnętrznie, to łączy się z fleetd demon użyciu API JSON oparte na górze HTTP, który może być również stosowany bezpośrednio. Gdy stosuje się miejscowo na elemencie klastra fleetctl komunikuje się z lokalną fleetd przykład nad gniazdem domenie Unix ; gdy stosuje się z hostem zewnętrznym SSH tunelowy jest stosowany z uwierzytelniania dostarczonych przez klucze publiczne SSH .

Wszystkie wyżej wymienione demonów i narzędzi wiersza polecenia ( etcd , etcdctl , fleetd i fleetctl ) są napisane w języku Idź i rozpowszechniany na zasadach licencji Apache 2.0.

Rozlokowanie

Kiedy działa na dedykowanym sprzęcie, Pojemnik Linux może być na stałe zainstalowany w lokalnej pamięci masowej, takich jak dysk twardy (HDD) lub dysku SSD (SSD) lub uruchamiany zdalnie poprzez sieć z wykorzystaniem PXE (PXE) ogólnie lub iPXE jako jeden z jego implementacji. CoreOS obsługuje również na różnych wdrożeń wirtualizacji sprzętu platform, w tym Amazon EC2 , DigitalOcean , Google Compute Engine , Microsoft Azure , OpenStack , QEMU / KVM , Vagrant i VMware . Pojemnik Linux może być również zainstalowany na Citrix XenServer, zauważając, że „szablon” dla CoreOS istnieje.

Pojemnik Linux może być również stosowane przez jego dystrybucji handlowej nazwie tektoniczna , która dodatkowo integruje Google Kubernetes jako narzędzia do zarządzania klastrami. Począwszy od kwietnia 2015 roku, planowane jest tektoniczna być oferowane jako beta oprogramowania do wyboru klientów. Ponadto CoreOS zapewnia flanelowa jako element wdrożenia sieci nakładki wymaga przede wszystkim do integracji z Kubernetes.

W lutym 2015, Kontener Linux obsługuje tylko x86-64 architektury.

Pochodne

Po jego nabyciu CoreOS, Inc., w styczniu 2018, Red Hat ogłosił, że będzie łączenie CoreOS Container Linuksa z Red Hata projektu Atomowej, w celu utworzenia nowego systemu operacyjnego Red Hat CoreOS, podczas wyrównywania upstream Fedora projekt open source społeczność wokół Fedora CoreOS , łączące technologie z obu poprzedników.

W dniu 6 marca 2018 roku, Kinvolk GmbH ogłosiła flatcar Linux , pochodna CoreOS Container Linux. Uwzględnia to powyżej CoreOS alfa / beta / stabilne komunikatów kanału, z uwalniania eksperymentalnego kanału krawędź dodanego w maju 2019 r.

Przyjęcie

LWN.net przeglądowi CoreOS w 2014 roku:

Dla tych, którzy łącząc duże, rozproszone systemy aplikacji web-bycie najlepszym przykładem-CoreOS wydaje się mieć wiele ciekawych funkcjonalności. Powinno to pozwolić aplikacji tego typu rosnąć i kurczyć się w miarę potrzeb z popytem, ​​jak również stanowić platformę stabilną gdzie aktualizacje nie są stałym ból głowy. Dla „masywnych wdrożeń serwerów”, CoreOS albo coś z wielu takich samych cechach, wygląda na przyszłość.

Zobacz też

Bibliografia

Zewnętrzne linki