‫To będzie pierwszy wykład, w którym będziemy używać wielu hostów lub węzłów, instancji
‫lub cokolwiek innego ... wiele systemów operacyjnych. Zamierzamy skonfigurować rój 3-węzłowy we
‫wszystkich trzech węzłach.
‫Niestety, nie możemy wykonać tej części z wbudowanym Dockerem na twoim komputerze, ponieważ
‫to tylko zapewni nam jeden system operacyjny. Do tego następnego zestawu funkcji potrzebujemy trzech systemów operacyjnych Linux.
‫Pierwszą opcją, którą masz zamiar, jest użycie funkcji play-with-docker. com.
‫To absolutnie najprostszy sposób na rozpoczęcie.
‫Pochodzi z preinstalowanym Dockerem. Dostarczenie trzech różnych maszyn zajmuje
‫kilka sekund i nie wymaga żadnych inwestycji. Ale to oznacza, że co cztery godziny usunie całą pracę, którą wykonałeś.
‫Jeśli więc myślisz, że zamierzasz zrobić resztę tej sekcji w ciągu kilku dni, to
‫może nie być najlepszą opcją dla ciebie. Ale jeśli masz zamiar skupić się na kilku
‫godzinach, z pewnością możesz przejść przez większość, jeśli nie wszystkie, rzeczy z wielu węzłów, używając Play With Docker za jednym razem.
‫Inną dostępną opcją jest możliwość korzystania z maszyny dokujacej, o czym już nie rozmawialiśmy,
‫ale jest to narzędzie wiersza poleceń, które faktycznie jest instalowane z Dockerem dla Windows i Docker dla Mac.
‫Możesz go pobrać na Linuksa i jest to w zasadzie narzędzie automatyzacji do lokalnego administrowania wirtualnymi
‫maszynami, a także w Internecie, a następnie automatycznie konfiguruje Docker.
‫Domyślnym sposobem działania jest VirtualBox, który możesz zainstalować bezpłatnie. Ale oznacza to, że jeśli zamierzasz
‫uruchomić lokalnie trzy maszyny wirtualne, każda z nich prawdopodobnie potrzebuje gigantycznej pamięci RAM, aby uruchomić
‫wiele z tych przykładów. Będziesz więc potrzebował maszyny z dużą ilością pamięci RAM. Inną opcją i
‫tą, którą zamierzam domyślnie dla wielu z tych demonstracji i przejść, jest DigitalOcean.
‫Po prostu polecam DigitalOcean tylko dlatego, że mają najtańszą i najłatwiejszą usługę, aby zacząć, i
‫uruchamiają wszystko na SSD, więc jest miło i szybko. Można go używać w bardzo podobnej
‫konfiguracji do produkcji, ponieważ używa się trzech rzeczywistych maszyn wirtualnych w chmurze,
‫a uruchomienie każdej maszyny wirtualnej zajmuje około minuty.
‫Jeśli myślisz, że to może być opcja, możesz użyć mojego kodu polecającego i
‫odnośników do tej sekcji, aby otrzymać pierwsze 10 USD za darmo.
‫Jeśli masz zamiar zająć tylko kilka dni, aby przedrzeć się przez te ryczące rzeczy, możesz zapewnić trzy, 10 USD
‫miesięcznie w węzłach i mieć je przez kilka dni lub tydzień.
‫A to może mieścić się w budżecie 10 dolarów, więc technicznie nic by cię nie kosztowało.
‫A na koniec jest tak wiele sposobów na zainstalowanie Dockera, a to wszystko, czego potrzebujesz, to
‫trzy maszyny z zainstalowanym na nich Dockerem. Możesz użyć Docker Machine.
‫Posiada wbudowane sterowniki, które pozwalają używać go do obsługi instancji Amazon, instancji Azure, kropli DigitalOcean, węzłów Google Compute
‫lub dowolnego miejsca, w którym można uzyskać maszynę wirtualną Linux, można po prostu zainstalować Docker za pomocą zautomatyzowanego
‫skryptu od dostać. doker. com.
‫Szczerze mówiąc, wolę dostać. doker. Wersja com tylko dlatego, że Docker Machine
‫może zaoszczędzić ci kilka kroków, szczególnie w takich lokalizacjach, jak Amazon i Azure, które wymagają dostarczenia wielu różnych
‫rzeczy, zanim będziesz mógł po prostu zaopatrzyć maszynę wirtualną. Ale prawdopodobnie nie będziesz używać
‫Docker Machine w produkcji.
‫Jest to narzędzie do łatwej automatyzacji środowisk programistycznych i testowych. Nigdy tak naprawdę nie zaprojektowano wszystkich
‫ustawień produkcyjnych, które mogą być potrzebne w roju wielowęzłowym.
‫Nie ma w tym nic z natury nie w porządku, ale zazwyczaj dostajesz. doker. com działa na wszystkich głównych
‫dystrybucjach Linuksa i nie trwa dłużej niż w rzeczywistości przy użyciu samej maszyny Docker.
‫Mam zamiar dać ci naprawdę szybki przykład na uzyskanie któregokolwiek z tych scenariuszy do punktu,
‫w którym zainstalowany jest Docker. Wtedy wszystkie będą bardzo podobne w sposobie, w jaki
‫faktycznie tworzymy rój i wykonujemy nasze usługi.
‫Więc nie myśl, że musisz to robić tak, jak to robię.
‫Naprawdę próbujemy po prostu uzyskać informacje od Dockera, aby rzeczywiście przywrócić informacje, a następnie po to, aby upewnić
‫się, że te trzy węzły mają dostęp do sieci w stosunku do siebie nawzajem i że są w dobrze połączonej sieci.
‫Idealnie powinny być w tej samej sieci.
‫Jeśli masz zamiar użyć funkcji Play With Docker, po prostu przejdź do play-with-docker. com i zaznacz na pudełku, bo
‫nie jestem robotem.
‫A jeśli da ci ekran CAPTCHA, po prostu idź dalej.
‫W porządku. Zobaczysz, że odlicza on cztery godziny.
‫Ale jeśli po prostu kliknę instancję tworzenia, a następnie kliknę ją jeszcze dwa razy, utworzę bardzo szybko
‫trzy środowiska wirtualne.
‫Na marginesie, w rzeczywistości używa on Dockera w Dockerze, co jest całkiem zgrabną technologią,
‫w której faktycznie uruchamiamy Dockera wewnątrz kontenera Docker.
‫Ale w tym zestawie z Play With Docker, który został stworzony przez innych kapitanów Docker i zespół Docker,
‫naprawdę trudno jest odróżnić.
‫Jeśli przejdę do węzła 1, mogę już zobaczyć, że informacja Docker daje mi najnowszą wersję. A jeśli nawet spróbowałem pingować node2,
‫to faktycznie rozpoznaje przyjazne nazwy, więc ułatwi komunikację między
‫nimi.
‫Więc jeśli jest to coś, co chcesz wypróbować, jest to świetny i łatwy sposób na maszynach o niskim poborze mocy lub
‫jeśli po prostu nie chcesz poświęcać czasu na ustawienie środowiska na następne cztery godziny.
‫Opcja druga polega na użyciu maszyny dokujĘ ... cej. Jeśli masz go zainstalowanego, powinna być co najmniej wersja 10, jeśli
‫nie jest nowsza.
‫Będziesz wiedzieć, czy jest zainstalowany, ponieważ będziesz wpisywać polecenie docker-machine z wiersza
‫poleceń, a będzie działać albo nie.
‫Jeśli chcesz go pobrać dla konkretnego systemu operacyjnego Linux, możesz przeskoczyć do dokumentacji Docker,
‫która da ci szybką linię do pobrania.
‫Jeśli używasz ToolBox na Windows 7 i 8 lub Docker dla Windows na Windows 10 lub Docker dla
‫Maca na Mac OS, to już będzie na bieżąco z tymi systemami.
‫Jeśli chcesz użyć opcji VirtualBox, która jest domyślna, po prostu musisz przeskoczyć
‫do wirtualnej skrzynki. org i pobierz najnowszą wersję dla swojego systemu operacyjnego. I nie musisz nic robić z
‫VirtualBox.
‫To po prostu musi zostać zainstalowane. A następnie z wiersza poleceń możesz po prostu
‫wpisać docker-machine create node1, a to faktycznie uruchomi się poprzez stworzenie maszyny wirtualnej z BusyBox,
‫która jest bardzo lekką dystrybucją Linuksa.
‫To faktycznie uruchomi się poprzez stworzenie bardzo lekkiego komputera z systemem Linux, a ty po prostu powtórzysz
‫te dwie komendy dla węzła 2 i 3.
‫Jeśli potrzebujesz więcej informacji na temat Docker Machine, możesz zajrzeć do mojej
‫sekcji referencyjnej w poszukiwaniu linków do samouczków.
‫Po utworzeniu maszyn masz naprawdę dwie możliwości uzyskania dostępu do tych maszyn.
‫Możesz użyć ssh-dockera-maszyny, a następnie nazwę utworzonego węzła, który przeniesie Cię bezpośrednio do tego
‫komputera.
‫Lub możesz użyć polecenia środowiska.
‫Tak więc polecenie env-docker-machine, a następnie nazwa maszyny, którą chcesz, da ci trochę danych wyjściowych, i możesz albo wyciąć i wkleić te
‫opcje do linii poleceń, albo skopiować i wkleić dolną opcję, a to tak naprawdę tworzymy
‫zmienną środowiskową tak, że po uruchomieniu polecenia docker, ponieważ znowu, Docker CLI musi tylko
‫wiedzieć, z jakim hostem Docker rozmawia. Domyślnie rozmawia z twoim lokalnym
‫komputerem.
‫Ale to wystarczy przeprogramować go, aby porozmawiać z
‫węzłem Docker Machine1.
‫Jeśli zrobię dokowanie, zobaczysz, że jego nazwa to węzeł1, ponieważ właśnie to właśnie teraz
‫operuję.
‫W ostatnim przykładzie użyję DigitalOcean, na którym utworzyłem konto.
‫Tutaj nazywają serwery Droplets. Polecam, jeśli nie masz konkretnego powodu, aby
‫uruchomić inny system operacyjny, aby zacząć od Ubuntu 16. 04, ponieważ jest to pierwsza dystrybucja Linuksa do obsługi
‫nowszych funkcji Docker.
‫Więc to jest domyślne.
‫Następnie zaleciłbym, aby pozostała część kursu była dla nas 10 USD na miesiąc. Możesz być w stanie wydostać się
‫z serwera o wartości 5 USD miesięcznie, ale może się on trochę
‫powolny podczas niektórych z późniejszych wersji demonstracyjnych, gdy monitorujemy i logujemy kontenery na naszych aplikacjach.
‫Następnie możesz wybrać centrum danych najbliżej Ciebie. Następnie jedyną opcją jest dodanie klucza SSH.
‫Jeśli nie wiesz, jak utworzyć własny klucz SSH lokalnie, a następnie przesłać go do
‫DigitalOcean, znajdziesz
‫tam świetny samouczek, który można znaleźć w zasobach tej sekcji.
‫Na dole utworzę trzy maszyny i zamierzam je nazwać węzłem 1, 2 i 3.
‫Potem muszę poczekać prawdopodobnie około 60 sekund, a oni będą na mnie gotowi.
‫Możesz po prostu użyć adresów IP tutaj ... skakać na tych maszynach.
‫Kliknięcie przycisku kopiowania, a następnie ssh root @ adres IP.
‫A jeśli twój klucz SSH jest poprawnie skonfigurowany na twoim komputerze, to automatycznie zaloguje się przy pomocy tego
‫klucza.
‫Ale w sekcji zasobów podałem ci przykład, jak skonfigurować. ssh plik konfiguracyjny, który pozwoli ci mieć te
‫trzy węzły w konfiguracji, dzięki czemu możesz po prostu nazwać je węzłem 1,
‫węzłem 2, węzłem 3, zamiast zapamiętywać ich adresy IP, na wypadek,
‫gdybyś robił to przez wiele dni . To naprawdę łatwy sposób na wejście i wyjście z tych serwerów.
‫Jeśli korzystałeś z Docker Machine lub używasz Play With Docker, to Docker jest już zainstalowany i
‫przygotowujesz się do stworzenia roju.
‫Ale jeśli używasz DigitalOcean lub toczysz własne maszyny wirtualne, musisz zainstalować Docker.
‫Najprostszym sposobem na to, którego lubię używać, jest użycie skryptu na stronie get. doker. com.
‫Tutaj można zobaczyć przykłady użycia tego skryptu w celu uzyskania aktualnej wersji produkcyjnej
‫Dockera na komputerze.
‫Teraz wszystkie trzy moje serwery mają zainstalowaną najnowszą wersję Dockera i jesteśmy gotowi, aby
‫skonfigurować nasz rój.
‫Ponownie, wszystko, co jest wymagane, to to, że te trzy węzły mają solidną sieć ze sobą nawzajem i otwarte
‫są określone porty.
‫Jeśli interesują cię porty roju, przejrzyj zasoby tej sekcji, gdzie faktycznie
‫mam link do mojej własnej listy portów zapór ogniowych niezbędnych do działania Swarm.
‫Jeśli pamiętasz wcześniej, zrobiliśmy dokowanie inicjacji dockera. Teraz, w tym przypadku, co jest dość powszechne
‫w serwerach w chmurze, chce, abyśmy określili adres IP do anonsowania usługi Swarm.
‫Chcesz użyć adresu IP dostępnego z innych serwerów.
‫W tym przypadku zamierzam użyć publicznego adresu IP dla mojego hosta
‫DigitalOcean.
‫I oto idziemy.
‫Jak na razie wygląda to tak, jak na naszej lokalnej maszynie.
‫Tym razem jednak skopiuję polecenie łączenia rój i przejdę do węzła2 i dodaję go.
‫I oto idziemy.
‫Ten węzeł jest teraz częścią rój.
‫Wracamy więc do węzła 1, węzła dokowania ls, a teraz mamy dwa.
‫Zauważysz, że drugi węzeł to tylko pracownik. Ponieważ, jak to się mówi, gdybyśmy chcieli, aby był
‫menedżerem, powinniśmy zdobyć token menedżera. Ale nie martw się. Możemy faktycznie zaktualizować tego pracownika, aby promować
‫go jako menedżera.
‫Ale jeśli skończymy na węźle2, zauważ, że nie mogę używać poleceń Swarm. Ponieważ pracownicy nie są tak naprawdę uprzywilejowani.
‫Nie mają dostępu do kontroli nad rojem.
‫Nie będą więc mogli używać żadnych poleceń Swarm, których używamy w menedżerach.
‫Wracając do węzła 1 i menedżera, zamierzam zaktualizować węzeł dokera ...
‫To, co tam robiłem, polegało na kliknięciu Tab w celu uzupełnienia tabulatora, co jest zawsze fantastyczną
‫cechą w Dockerze, zwłaszcza przy tak wielu funkcjach. Prowadził mnie przez każdy krok korzystania z tego
‫polecenia aktualizacji.
‫Teraz mam ukończoną ostatnią aktualizację i zmieniłem węzeł2.
‫Teraz jeśli zrobię mój węzeł dokowania ls, zobaczysz, że teraz jest uważany za osiągalny.
‫Ale pierwotny węzeł nadal jest liderem. A przy okazji, mała gwiazdka? To oznacza po prostu, że
‫jest to węzeł, z którym obecnie rozmawiasz.
‫W przypadku węzła 3 dodajmy go domyślnie jako menedżera.
‫Musimy powrócić do naszego pierwotnego polecenia rój docker, a następnie musimy uzyskać menedżera
‫łączenia tokenu.
‫Możesz uzyskać te tokeny w dowolnym momencie.
‫Nie musisz ich zapisywać ani zapisywać.
‫Są częścią konfiguracji roju i przechowywane są zaszyfrowane na dysku, więc nie martw się o to.
‫Możesz je także zmienić na wypadek, gdyby zostały ujawnione lub możesz dostać serwer, który mógł mieć na
‫niego lukę, i chcesz się upewnić, że żadne węzły nie mogą dołączyć do roju ze starego klucza,
‫możesz obrócić te klucze .
‫Zamierzam to skopiować, wkleić do węzła3.
‫I oto idziemy. Wróć do węzła1.
‫Jeśli ponownie wykonam węzeł dokowania, zobaczysz, że mam trzy węzły. Wszyscy mają status menedżera, wskazując,
‫że są menedżerami.
‫Teraz mamy 3-węzłowy, nadmiarowy rój, z trzema menedżerami. Zróbmy to samo, co wcześniej, usługę dokowania
‫utwórz ping alpejski 8.
‫8. 8.
‫8 Tylko tym
‫razem, dajmy mu trzy repliki.
‫A następnie wykonaj usługę
‫dokowania ls, a zobaczymy, że mamy
‫już trzy z trzech uruchomionych.
‫Jeśli zrobiłem węzeł dokowania ps, widzę, że mój lokalny węzeł faktycznie wykonuje to zadanie lub kontener.
‫Mogę faktycznie określić węzeł, node2, a dostarczy mi tylko kontenery uruchomione na node2.
‫Gdybym chciał uzyskać pełną listę, mógłbym zrobić usługę dokowania ps, a potem senny brązowy to nazwa, którą nadała
‫nam nasza usługa. A zobaczysz tutaj ... pozwól mi nieco rozszerzyć ekran.
‫Widać tutaj, że wymienia wszystkie trzy nasze zadania.
‫Po utworzeniu tego roju zwykle nie trzeba wpisywać poleceń
‫we wszystkich różnych węzłach. Naprawdę możesz obsługiwać cały rój, dla większości rzeczy, od węzła1.
‫W związku z tym wiele z naszej pracy wykonamy z węzła1 w przyszłych wykładach, ale na razie patrzymy na siebie
‫z tyłu, ponieważ mamy w pełni sprawny klaster roju.