Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



26.05.2020

Cloud Native Universe

Jako patron medialny zapraszamy programistów wdrażających lub integrujących się z dowolną...
26.03.2020

Koniec certyfikatów...

MCSA, MCSD i MCSA
26.03.2020

Odświeżony OS

FortiOS 6.4
26.03.2020

Bezpieczeństwo w chmurze

Cisco SecureX
26.03.2020

Modernizacja IT

Nowości w VMware Tanzu
26.03.2020

Krytyczne zagrożenie dla...

Nowa groźna podatność
26.03.2020

Laptopy dla wymagających

Nowe ThinkPady T, X i L
26.03.2020

Serwerowe ARM-y

Ampere Altra
26.03.2020

Energooszczędny monitor

Philips 243B1

Orkiestracja kontenerów z Docker Swarm

Data publikacji: 22-01-2020 Autor: Grzegorz Adamowicz

Konteneryzacja aplikacji zyskała na popularności dzięki Dockerowi wykorzystującemu zaawansowane funkcje izolacji procesów w Linuksie: automatyzuje je, upraszczając pracę. Szybko jednak się okazało, że samo uruchamianie aplikacji w kontenerze nie wystarczy i potrzebujemy zaawansowanej obsługi takich zamkniętych procesów – orkiestracji.

 

Przez orkiestrację rozumiemy między innymi uruchamianie wielu takich samych kontenerów w tym samym czasie, najlepiej na wielu serwerach, monitorowanie aplikacji, liczby kontenerów, dodawanie lub usuwanie kontenerów bez konieczności ingerencji ze strony administratora, zastępowanie nieprawidłowo działających aplikacji i kontenerów nowymi oraz aktualizację aplikacji poprzez jej podmianę na nową wersję i przywracanie starszych wersji. Docker Swarm należy do rozwiązań, które łatwo i szybko można skonfigurować nawet na własnej maszynie.

 

> INSTALACJA I WSTĘPNA KONFIGURACJA

 

1. Usuwamy poprzednią instalację Dockera z domyślnych repozytoriów apt.

 

 

2. Instalujemy zależności, między innymi pakiet GPG i dodatek dla apt, który umożliwia korzystanie z repozytoriów za pośrednictwem HTTPS.

 

 

3. Dodajemy klucz GPG repozytorium Dockera do apt.

 

 

4. Dodajemy samo repozytorium.

 

 

5. W końcu instalujemy także silnik.

 

 

6. Po instalacji, dla ułatwienia sobie pracy, możemy dodać wykorzystywane konto użytkownika do grupy docker. Dzięki temu nie będzie konieczności używania konsolowego klienta przy użyciu sudo. Krok ten wymaga wylogowania się z sesji użytkownika i zalogowania się ponownie lub po prostu restartu.

 

 

Na tak przygotowanym systemie możemy uruchomić Docker Swarm. Służy do tego komenda docker swarm init. Należy przy tym pamiętać, że inicjalizować Swarm można tylko na jednym serwerze – będzie to host nadrzędny, tzw. manager, z którego będziemy sterować działaniem całego klastra. W omawianym scenariuszu będzie to tylko jedna maszyna, ale gdyby zachodziła potrzeba dodania kolejnych, to możemy wykonać na nich polecenie docker swarm join --token ABCDEF, gdzie token to losowe znaki wygenerowane na serwerze nadrzędnym, które, aby móc do niego dołączyć, musimy podać na pozostałych serwerach w klastrze. Innym przydatnym parametrem dla obu komend jest --advertise-addr służący do uściślenia, którego adresu IP będziemy używali do komunikacji wewnątrz klastra. Jest to konieczne, jeśli nasza maszyna ma wiele adresów IP. Warto także znać opcję --listen-addr, dzięki której można określić, na którym adresie i porcie będzie odbywała się komunikacja z hostem nadrzędnym (managerem). Domyślnie będzie to IP, który podamy w opcji powyżej.
 
Przykładowy wydruk z tworzenia klastra na jednym serwerze prezentuje się następująco:
 
 
Jak widać, Docker od razu podpowiada, w jaki sposób możemy dodać kolejne serwery do utworzonego klastra. Aby sprawdzić, ile serwerów w danej chwili działa w klastrze, należy wydać komendę docker node list lub docker node ls.
Jeśli dojdzie do utraty tokena, dzięki któremu możliwe jest dodawanie kolejnych serwerów, to jego otrzymanie jest możliwe po wydaniu na serwerze nadrzędnym komendy docker swarm join-token -q worker. Parametr -q powoduje wyświetlenie tokena. Ostatnim elementem komendy mogą być słowa kluczowe worker lub manager, które poskutkują wyświetleniem tokena do dodawania zwykłych hostów do klastra, lub dodanie kolejnego hosta nadrzędnego. Mamy również możliwość wygenerowania nowych kluczy, używając opcji --rotate.
 
> TWORZENIE USŁUG
 
W tak przygotowanym klastrze można już uruchamiać usługi. Najłatwiejszą i najszybszą formą będzie dokonanie tego za pomocą wiersza poleceń. Utworzymy na początek usługę, który wyświetla prosty komunikat:
 
 
Komenda tworzy z użyciem obrazu Ubuntu 18.04 usługę o nazwie hello-it-professional. Parametr replicas określa liczbę kopii usługi, które mają zostać utworzone w klastrze. Ostatnia część, która zaczyna się od /bin/bash, uruchamia prosty skrypt Bash. Sprawdzenia statusu usług można dokonać poleceniem docker service ls.
Więcej informacji o usłudze otrzymamy po wprowadzeniu komendy inspect:
 
 
Aby uruchomić więcej replik tej samej usługi, można wydać polecenie scale. Następnie należy sprawdzić, czy Swarm faktycznie uruchomił odpowiednią liczbę kontenerów:
 
 
Warto sprawdzić, czy nasza usługa działa stabilnie. Można tego dokonać poleceniem docker service ps nazwa-uslugi. W naszym przypadku będzie więc to docker service ps hello-it-professional. Z wynikiem tego polecenia można zapoznać się w ramce 1. Aby usunąć usługę, uruchamiamy komendę rm z jej nazwą:
 
 
[...]
 
Doświadczony inżynier systemów. Specjalizuje się w automatyzacji procesów i monitoringu aplikacji rozproszonych. Propagator ruchu open source. Organizator wydarzeń związanych z IT. Freelancer. W wolnych chwilach twórca fantastyki i fantastyki naukowej. 

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"