Usługi sieciowe w kontenerach systemu operacyjnego CoreOS



Podobne dokumenty
Tworzenie maszyn wirtualnych przy pomocy systemu FAI

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Aplikacja webowa do zarządzania maszynami wirtualnymi

System Clonezilla archiwizacja i odtwarzanie partycji dyskowych

Opracowanie dodatkowego rodzaju pytań dla systemu Moodle

Webowy generator wykresów wykorzystujący program gnuplot

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

27/13 ZAŁĄCZNIK NR 4 DO SIWZ. 1 Serwery przetwarzania danych. 1.1 Serwery. dostawa, rozmieszczenie i zainstalowanie 2. serwerów przetwarzania danych.

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Zarządzanie certyfikatami w systemie OpenVPN

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Zapytanie ofertowe nr 03/05/2014. Zakup licencji na oprogramowanie do wirtualizacji Działanie POIG 8.2

Wirtualizacja zasobów informatycznych w pracowni komputerowej

Jednolite zarządzanie użytkownikami systemów Windows i Linux

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Szczegółowy opis przedmiotu zamówienia

Linux -- u mnie działa!

Charakterystyka sieci klient-serwer i sieci równorzędnej

System wspomagania zarządzania wirtualizacją

Wirtualizacja. Metody, zastosowania, przykłady

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

Działanie komputera i sieci komputerowej.

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

PLAN KONSPEKT. do przeprowadzenia zajęć z przedmiotu. Konfigurowanie systemu Linux do pracy w sieci IP

Skrócony konspekt lekcji prowadzonej w ramach Mobilnego Instytutu Kompetencji. Technologia informacyjna

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Przełączanie i Trasowanie w Sieciach Komputerowych

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Wstęp do Informatyki. Klasyfikacja oprogramowania

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA

Licencjonowanie w środowiskach wirtualnych

Bezpieczeństwo systemów i lokalnej sieci komputerowej

Laboratorium Chmur obliczeniowych. Paweł Świątek, Łukasz Falas, Patryk Schauer, Radosław Adamkiewicz

WWQ. Wakacyjne Warsztaty QNAP. Zaczynamy o 11:00. Prowadzący: Łukasz Milic Certyfikowany Trener QNAP

Wirtualizacja w praktyce.

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Opis przedmiotu zamówienia. Część IV. Dostawa niewyłącznej, nieograniczonej czasowo licencji oprogramowania Microsoft Serwer 2012 R2 DataCenter x64.

Procedura wdrożeniowa program MERKURY QUATTRO wer. 1.0

Webowy generator wykresów oparty na programie gnuplot

Sposób funkcjonowania

WZÓR UMOWY. Zawarta w Białymstoku, w dniu.. pomiędzy:

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA. CZĘŚĆ NR 1: Dostawa oprogramowania

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Konwersja maszyny fizycznej na wirtualną.

VMware. Prezentacja na Systemy Operacyjne

Szczegółowy Opis Przedmiotu Zamówienia

Linux Contextualization

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Outsourcing. IT Commerce Sp. z o.o Warszawa Ul.Łomiańska 14a/3. mirek.domin@itcommerce.pl

Program szkolenia. Jak zorganizować szkolna infrastrukturę informatyczną (sieć informatyczną)

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Postępowanie prowadzone w trybie przetargu nieograniczonego pn. Usługi poczty elektronicznej (rozbudowa poczty elektronicznej w Resorcie Finansów).

Wirtualizacja zasobów IPv6 w projekcie IIP

Wykorzystanie regionalnej biblioteki cyfrowej do tworzenia repozytorium instytucjonalnego

Szkolenie autoryzowane. MS Instalacja i konfiguracja Windows Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

2. Jakie i ile licencji Oracle 10g posiada zamawiający i czy posiada do tych licencji wsparcie techniczne?

Wprowadzenie do sieciowych systemów operacyjnych. Moduł 1

AE/ZP-27-16/14. Załącznik nr Z2

(kody CPV: i )

Serwerowy system operacyjny musi spełniać następujące wymagania minimalne:

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Zwiększanie bezpieczeństwa usług sieciowych poprzez wirtualizację systemu operacyjnego

AE/ZP-27-16/14. Oprogramowanie do wykonywania kopii zapasowych oraz zarządzania maszynami wirtualnymi

Opis przedmiotu zamówienia

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. Opis oferowanego przedmiotu zamówienia

Wirusy w systemie Linux. Konrad Olczak

Prezentacja systemu plików NFS

Nowe zasady licencjonowania Red Hat Enterprise Linux i JBoss Enterprise Middleware. Grzegorz Niezgoda

System zdalnego nadzoru i zarządzania małą elektrownią wodną

1. Zakres modernizacji Active Directory

str. 1 Informacja o zmianie treści specyfikacji istotnych warunków zamówienia Oświęcim, dnia r.

Opis przedmiotu zamówienia / Formularz Oferty Technicznej (dokument należy złożyć wraz z ofertą)

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI 2 CELE LEKCJI. 2.1 Wiadomości. 2.2 Umiejętności 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE

Tomasz Greszata - Koszalin

Szybki start instalacji SUSE Linux Enterprise Server 11 SP1

Program szkolenia KURS SPD i PD Administrator szkolnej pracowni internetowej Kurs MD1 Kurs MD2 Kurs MD3 (dla szkół ponadgimnazjalnych)

Warszawa, 6 lutego Case Study: Chmura prywatna HyperOne dla Platige Image dzięki Microsoft Hyper-V Server. Wyzwanie biznesowe

Systemy Operacyjne Wirtualizacja

Archiwum Prac Dyplomowych

LPAR - logiczne partycjonowanie systemów

ZAŁOŻENIA PROJEKTOWE I SPECYFIKACJA USŁUG

Licencjonowanie pytania i odpowiedzi

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Oprogramowanie do wirtualizacji

Planista całkowicie sprawiedliwy. Algorytm, śledzenie działania i strojenie

Wirtualizacja sieci - VMware NSX

Dni: 5. Opis: Adresaci szkolenia

Podstawy sieci komputerowych. Technologia Informacyjna Lekcja 19

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Przetwarzanie danych w chmurze

"Administrowanie Sieciami Komputerowymi"

VMware vsphere: Automation Fast Track

Szkolenie operatorów Wirtualnego Serwera Egzaminacyjnego 24 maja Prowadzący: Bartłomiej Boryń Robert Michalski

Transkrypt:

Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Maciej Janczyk nr albumu: 259014 Praca inżynierska na kierunku informatyka stosowana Usługi sieciowe w kontenerach systemu operacyjnego CoreOS Opiekun pracy dyplomowej dr hab. Jacek Kobus Instytut Fizyki Toruń 2016 Pracę przyjmuję i akceptuję... data i podpis opiekuna pracy Potwierdzam złożenie pracy dyplomowej... data i podpis pracownika dziekanatu

Dziękuję promotorowi za poświęcony czas i udzieloną pomoc. 1

Uniwersytet Mikołaja Kopernika zastrzega sobie prawo własności niniejszej pracy inżynierskiej w celu udostępniania dla potrzeb działalności naukowo-badawczej lub dydaktycznej

Spis treści 1 Wstęp 3 2 System operacyjny CoreOS 5 2.1 Podsystem etcd................................. 6 2.2 Kontenery dockera............................... 8 2.3 System inicjalizacji fleet........................... 12 3 Budowa klastra i obsługa wybranych usług 16 3.1 Instalacja i konfiguracja systemu........................ 16 3.2 Zestawienie klastra............................... 18 3.3 Usługi sieciowe................................. 21 3.3.1 Usługa WWW............................. 22 3.3.2 Usługa DHCP............................. 25 3.3.3 Usługa LDAP.............................. 27 4 Podsumowanie 32 5 Dodatek 33 Bibliografia 38 Spis listingów 39 Spis rysunków 40 2

Rozdział 1 Wstęp Od wielu lat administratorzy serwerów używają technik wirtualizacyjnych w celu efektywnego zarządzania usługami sieciowymi. Zwykle przeznacza się jedną oddzielną maszynę wirtualną, by dostarczała odpowiedniego środowiska dla funkcjonowania pojedynczej aplikacji. Rozwiązanie takie pozwala na skuteczne odizolowanie od siebie działających usług, ułatwia zarządzanie nimi, w tym planowanie i wdrażanie skutecznej polityki bezpieczeństwa. Jednak realizacja tego podejścia na większą skalę, np. w zastosowaniach chmurowych, czy dużych sieciach, wymaga użycia potężnych serwerów, gdyż każda maszyna wirtualna musi otrzymać swój przydział pamięci dyskowej, pamięci operacyjnej oraz czasu procesora. Ten problem można w znacznej mierze ograniczyć, jeżeli wybierzemy sposób wirtualizacji na poziomie aplikacji. Technologia ta znana jest już od przeszło 40 lat i była pierwotnie wykorzystywana przez twórców gier komputerowych w celu przystosowania do działania na różnych architekturach sprzętowych, m.in. firma Infocom opracowała Z-machine [1]. Innym przykładem wykorzystania tego typu wirtualizacji może być znany użytkownikom systemu Linux program Wine, który umożliwia uruchamianie w ramach systemu linuksowego programów przeznaczonych dla systemu Windows [2]. W roku 2008 zespół programistów z firm Parallel, IBM i Google powołał do życia projekt Linux Containers, który zakładał, że wirtualizacja pojedynczej aplikacji będzie realizowana poprzez umieszczenie jej w specjalnym izolowanym środowisku (sandbox) [3]. Tego typu podejście było wykorzystywane już wcześniej. Firma Sun Microsystems przedstawiła w 2004 roku strefy dla systemu Solaris, które umożliwiały wirtualizowanie zasobów systemu operacyjnego i uruchamianie programów w izolowanych i bezpiecznych środowiskach [4]. Rok później pojawił się system FreeBSD w wersji 4 zawierający mechanizm Jails, który pozwala na podział systemu na mini-instancje nazywane celami [5]. Innym ważnym przykładem wirtualizacji na tym poziomie jest znane użytkownikom systemów linuksowych środowisko chroot [6]. Polecenie te daje możliwość uruchomienia procesu izolując go od najważniejszych plików systemowych. Osadzanie aplikacji w klatkach przynosi te same korzyści co używanie maszyn wirtualnych. Klatki jednak nie uruchamiają własnego jądra linuksowego i nie potrzebują do działania hipernadzorcy, więc ich użycie prowadzi do wydatnego ograniczenia zużycia zasobów sprzętowych. Pojedyncza klatka LXC oprócz samej usługi musi zawierać wszelkie pakiety potrzebne do jej poprawnego działania. Dzięki takiemu podejściu każdy program działa we właściwym dla niego środowisku, co nie zawsze jest łatwe do zagwarantowania w typowym podejściu, kiedy wszystkie procesy mają dostęp do wspólnych zasobów. 3

ROZDZIAŁ 1. WSTĘP 4 Klatki LXC są wspierane przez wiele systemów operacyjnych, m.in. przez opracowany w 2013 roku i stale intensywnie rozwijany system operacyjny CoreOS. W ramach tego podejścia do zarządzania klatkami używa się platformy Docker, która umożliwia tworzenie i zarządzanie klatkami, a także uruchamianie osadzonych w nich aplikacji. Docker jako zarządca kontenerów umożliwia pełną przenaszalność klatek pomiędzy różnymi systemami operacyjnymi, które wspierają ten system [7]. Celem niniejszej pracy inżynierskiej była szczegółowa analiza działania systemu CoreOS i jego najważniejszych składowych: podsystemów Docker, etcd i fleet. W tym systemie procesy działające w klatkach mają dostęp do wspólnych zasobów przechowywanych w magazynach danych typu klucz-wartość (dzięki odpowiedniemu interfejsowi programista ma dostęp do tych danych w formacie JSON). Dzięki podsystemowi fleet można uruchamiać kontenery odpowiedzialne za poszczególne usługi przy wykorzystaniu demona systemd. Do głównych zadań podsystemu fleet należą: wybór węzła klastra, na którym będzie uruchomiona usługa oraz ewentualne przeniesienie serwisu z węzła, na którym był pierwotnie uruchomiany (a który uległ awarii), na inny, sprawny węzeł. Analiza systemu CoreOS wymagała zbudowania małej, testowej infrastruktury chmurowej dostarczającej wybrane usługi sieciowe. W tym celu zainstalowano system CoreOS na trzech maszynach i połączono je w taki sposób, aby utworzyły oddzielny klaster o minimalnym rozmiarze. Dwa takie klastry zbudowano wykorzystując różne środowiska wirtualizacyjne, mianowicie na komputerze autora pracy w ramach środowiska VirtualBox oraz na serwerach wydziałowych środowiska QEMU/KVM. Dzięki temu możliwa stała się szczegółowa analiza procesu instalacji i konfiguracji poszczególnych węzłów klastra, a także działania podsystemów etcd oraz fleet. Następnie przystąpiono do uruchamiania w ramach klastra kilku podstawowych usług sieciowych. Przygotowano i testowano kontenery wspierające takie usługi jak DHCP, WWW oraz LDAP. Wybór usług był podyktowany ich znaczeniem dla funkcjonowania wydziałowej sieci komputerowej: konfigurowania hostów w lokalnej sieci, dostępu do stron www wydziału oraz zagadnienia uwierzytelniania użytkowników przy dostępie do rozmaitych usług oferowanych przez serwery uczelniane (centralny punkt logowania) i wydziałowe. Uruchomienie tych usług na klastrze wydziałowym wymagało dodatkowych prac związanych z automatycznym przenoszeniem danych wyjściowych przygotowywanych przez centralny serwer zarządzający usługami na poszczególne węzły, aby były one dostępne we właściwych kontenerach. Do chwili składania pracy udało się uruchomić na klastrze wydziałowym usługi DHCP oraz LDAP. Z uwagi na tempo rozwoju systemu CoreOS jego dokumentacja nie zawsze była aktualna i często trzeba było rozwiązywać problemy przez odwoływanie się do informacji zamieszczanych na odpowiednich listach dyskusyjnych. Układ niniejszej pracy jest następujący. Po wstępie, w rozdziale 2. zostaną omówione najważniejsze elementy składające się na system operacyjny CoreOS. Rozdział 3. zawiera: instrukcję instalacji tego systemu, opis metod umożliwiających przekształcanie oddzielnych węzłów pracujących pod nadzorem systemu CoreOS w klaster oraz sposoby uruchamiania wybranych usług w chmurze. Pracę kończy krótkie podsumowanie wraz ze spisem wykorzystanej w pracy literatury przedmiotu.