‫Dies wird die erste Vorlesung sein, in der wir tatsächlich mehrere Hosts oder Knoten oder Instanzen verwenden oder was
‫auch immer Sie wollen ... mehrere Betriebssysteme. Wir werden einen 3-Knoten-Schwarm über alle
‫drei dieser Knoten einrichten.
‫Leider können wir diesen Teil nicht mit dem integrierten Docker auf Ihrem Computer erledigen,
‫da dies uns nur ein einziges Betriebssystem bietet. Wir brauchen drei Linux-Betriebssysteme, um mit diesem nächsten Satz von Funktionen zu spielen.
‫Die erste Option, die Sie haben werden, ist die Verwendung von Play-with-Docker. com.
‫Es ist absolut der einfachste Weg, um loszulegen.
‫Docker ist bereits vorinstalliert. Die Bereitstellung von drei verschiedenen Maschinen dauert
‫nur wenige Sekunden und erfordert keine Investition auf Ihrer Seite. Dies bedeutet jedoch, dass alle vier Stunden alle Ihre geleisteten Arbeiten gelöscht werden.
‫Wenn Sie also glauben, dass Sie den Rest dieses Abschnitts im Laufe der Tage erledigen werden, ist
‫dies möglicherweise nicht die beste Option für Sie. Wenn Sie sich jedoch ein paar Stunden lang
‫konzentrieren möchten, können Sie mit Play With Docker in einer Sitzung die meisten, wenn nicht sogar alle Schwarmaufgaben mit mehreren Knoten bewältigen.
‫Eine weitere Option ist die Verwendung von Docker-Maschinen, über die wir noch nicht gesprochen haben.
‫Es handelt sich jedoch um ein Befehlszeilentool, das mit Docker für Windows und Docker für Mac installiert wird.
‫Sie können es für Linux herunterladen. Grundsätzlich handelt es sich um ein Automatisierungstool, mit dem Sie virtuelle Maschinen lokal
‫und im Internet bereitstellen und Docker dann automatisch für Sie einrichten können.
‫Standardmäßig funktioniert es mit VirtualBox, die Sie kostenlos installieren können. Wenn Sie jedoch drei virtuelle Maschinen lokal
‫ausführen möchten, ist für jede dieser Maschinen wahrscheinlich eine Menge RAM erforderlich, um viele dieser
‫Beispiele ausführen zu können. Sie benötigen also eine Maschine mit viel RAM. Eine weitere Option,
‫die ich für viele dieser Demos und Besichtigungen standardmäßig verwenden werde, ist DigitalOcean.
‫Ich empfehle DigitalOcean nur, weil sie den günstigsten und einfachsten Service für den Einstieg haben und alles
‫auf SSD laufen lassen, damit es schön und schnell ist. Sie können dies tatsächlich in einer sehr
‫ähnlichen Konfiguration verwenden wie die Produktion, da Sie drei tatsächliche virtuelle Maschinen in der Cloud
‫verwenden. Das Starten jeder virtuellen Maschine dauert ungefähr eine Minute.
‫Wenn Sie denken, dass dies eine Option sein könnte, können Sie meinen Referenzcode und die Verweise
‫auf diesen Abschnitt verwenden, um Ihre ersten 10 € gratis zu bekommen.
‫Wenn Sie nur ein paar Tage brauchen, um dieses Schwarm-Zeug durchzustehen, können Sie drei Knoten für 10 US-Dollar
‫pro Monat bereitstellen und sie für Tage oder eine Woche bereitstellen.
‫Und das könnte in das 10-Dollar-Budget passen, sodass Sie technisch gesehen nichts kosten würden.
‫Und schließlich gibt es so viele Möglichkeiten, Docker zu installieren, und das ist wirklich alles, was Sie brauchen,
‫sind drei Computer, auf denen Docker installiert ist. Sie können Docker Machine verwenden.
‫Es sind Treiber integriert, mit denen Sie Amazon-Instanzen, Azure-Instanzen, DigitalOcean Droplets, Google Compute-Knoten oder einen beliebigen Ort,
‫an dem Sie eine virtuelle Linux-Maschine erhalten, bereitstellen können. Sie können Docker einfach mit einem automatisierten Skript
‫von installieren bekommen. Docker. com.
‫Ehrlich gesagt, ich bevorzuge das bekommen. Docker. com-Version nur, weil Docker Machine Ihnen möglicherweise
‫einige Schritte erspart, insbesondere bei Standorten wie Amazon und Azure, bei denen Sie viele verschiedene Dinge bereitstellen müssen,
‫bevor Sie nur eine virtuelle Maschine bereitstellen können. Aber Sie werden Docker Machine wahrscheinlich nicht
‫in der Produktion einsetzen.
‫Es ist ein Tool zur einfachen Automatisierung von Entwicklungs- und Testumgebungen. Es wurde nie wirklich entwickelt, um alle
‫Produktionseinstellungen einzurichten, die Sie für einen Schwarm mit mehreren Knoten benötigen.
‫Es ist nichts von Natur aus falsch daran, aber in der Regel bekommen. Docker. com funktioniert auf allen
‫wichtigen Linux-Distributionen und dauert nicht länger als die eigentliche Verwendung von Docker Machine.
‫Ich werde Ihnen ein sehr kurzes Beispiel geben, wie Sie eines dieser Szenarien an den Punkt
‫bringen, an dem Docker installiert ist. Dann werden sie alle sehr ähnlich sein, wie wir
‫den Schwarm erschaffen und unsere Dienste tun.
‫Also denke nicht, dass du es so machen musst, wie ich es mache.
‫Eigentlich versuchen wir nur, Docker-Informationen zu erhalten, um tatsächlich Informationen zurückzubringen, und dann nur,
‫um sicherzustellen, dass die drei Knoten Netzwerkzugriff aufeinander haben und sich in einem gut verbundenen Netzwerk befinden.
‫Idealerweise sollten sie sich im selben Netzwerk befinden.
‫Wenn Sie Play With Docker verwenden würden, gehen Sie einfach zu Play With Docker. com und überprüfe das Kästchen, ob
‫ich kein Roboter bin.
‫Und wenn es Ihnen den CAPTCHA-Bildschirm gibt, folgen Sie einfach mit.
‫Gut. Sie werden sehen, dass der Countdown um vier Stunden abläuft.
‫Wenn ich jedoch nur auf die Erstellungsinstanz und dann noch zweimal darauf klicke, werden sehr schnell drei
‫virtuelle Umgebungen erstellt.
‫Nebenbei bemerkt, verwendet dies tatsächlich Docker in Docker, was eine ziemlich nette Technologie ist,
‫bei der Docker tatsächlich in einem Docker-Container ausgeführt wird.
‫Aber in diesem Setup mit Play With Docker, das von anderen Docker-Kapitänen und dem Docker-Team entwickelt wurde, ist es wirklich
‫schwierig, einen Unterschied zu erkennen.
‫Wenn ich zu node1 gehe, kann ich bereits sehen, dass Docker-Informationen mir die neueste Version liefern. Und wenn ich sogar versucht habe, Node2 zu pingen, erkennt
‫es tatsächlich Anzeigenamen, so dass es einfacher ist, zwischen ihnen hin und her zu
‫kommunizieren.
‫Wenn Sie dies also ausprobieren möchten, ist dies eine großartige und einfache Möglichkeit für Computer mit niedrigem Stromverbrauch, oder Sie möchten
‫sich einfach nicht die Zeit nehmen, eine Umgebung für die nächsten vier Stunden einzurichten.
‫Option zwei ist die Verwendung eines Dockers. Wenn Sie es installiert haben, sollte es mindestens Version 10 sein,
‫wenn nicht neuer.
‫Sie werden wissen, ob es installiert ist, weil Sie den Befehl docker-machine über Ihre Befehlszeile
‫eingeben und es entweder funktioniert oder nicht.
‫Wenn Sie es für Ihr spezielles Linux-Betriebssystem herunterladen müssen, können Sie zur Docker-Dokumentation übergehen, die
‫Ihnen eine kurze Locke zum Herunterladen bietet.
‫Wenn Sie die ToolBox unter Windows 7 und 8 oder Docker für Windows unter Windows 10 oder Docker für
‫Mac unter Mac OS verwenden, sind diese Betriebssysteme bereits auf dem neuesten Stand.
‫Wenn Sie die Standardoption VirtualBox verwenden möchten, müssen Sie nur
‫zu virtualbox wechseln. org und laden Sie die neueste Version für Ihr Betriebssystem herunter. Und mit VirtualBox müssen Sie nicht einmal etwas
‫anfangen.
‫Es muss nur installiert werden. Und dann können Sie von Ihrer Befehlszeile
‫aus einfach docker-machine create node1 eingeben. Dabei wird tatsächlich eine virtuelle Maschine mit BusyBox
‫erstellt, einer sehr leichten Linux-Distribution.
‫Dies führt tatsächlich dazu, dass ein sehr leichter Linux-Computer erstellt wird, und Sie wiederholen einfach
‫diese beiden Befehle für Node2 und 3.
‫Wenn Sie weitere Informationen zu einer Docker-Maschine benötigen, finden Sie
‫in meinem Referenzabschnitt Links zu Lernprogrammen.
‫Sobald Ihre Maschinen erstellt sind, haben Sie zwei Möglichkeiten, wie Sie auf diese Maschinen zugreifen können.
‫Sie können entweder docker-machine ssh verwenden und dann den Namen des Knotens, den Sie erstellt haben, damit Sie direkt auf diesen Computer
‫zugreifen können.
‫Oder Sie können den Umgebungsbefehl verwenden.
‫Der Befehl docker-machine env und dann der Name des gewünschten Computers geben also eine Ausgabe aus. Sie können diese Optionen entweder ausschneiden
‫und in Ihre Befehlszeile einfügen, oder Sie können die untere Option kopieren und einfügen Erstellen
‫Sie die Umgebungsvariable tatsächlich so, dass die Docker-CLI beim Ausführen meines Docker-Befehls nur wissen muss,
‫mit welchem Docker-Host gesprochen werden soll. Standardmäßig wird mit Ihrem lokalen Computer
‫gesprochen.
‫Aber das hat es gerade neu programmiert, um mit dem
‫Docker-Rechner-Knoten1 zu sprechen.
‫Wenn ich Docker-Informationen mache, werden Sie feststellen, dass der Name node1 lautet, da dies der ist, mit dem ich gerade
‫arbeite.
‫Für das letzte Beispiel verwende ich DigitalOcean, für das ich ein Konto erstellt habe.
‫Hier nennen sie Server Droplets. Ich empfehle, wenn Sie keinen bestimmten Grund haben,
‫ein anderes Betriebssystem zu verwenden, um mit Ubuntu 16 zu beginnen. 04, da dies in der Regel die erste Linux-Distribution ist, die
‫die neueren Docker-Funktionen unterstützt.
‫Das ist also die Standardeinstellung.
‫Dann würde ich für den Rest dieses Kurses empfehlen, den 10-Dollar-Server pro Monat zu verwenden. Möglicherweise können Sie mit dem Server
‫von 5 US-Dollar pro Monat davonkommen, aber bei einigen späteren Demos
‫kann es zu Verzögerungen kommen, wenn wir Container über unsere Anwendungen überwachen und protokollieren.
‫Dann können Sie das nächstgelegene Rechenzentrum auswählen. Dann besteht die einzige andere Möglichkeit darin, einen SSH-Schlüssel hinzuzufügen.
‫Wenn Sie nicht wissen, wie Sie Ihren eigenen SSH-Schlüssel lokal erstellen und dann die Öffentlichkeit
‫in DigitalOcean
‫hochladen, finden Sie in den Ressourcen dieses Abschnitts ein hervorragendes Tutorial.
‫Unten werde ich drei Maschinen erstellen und sie als Node1, 2 und 3 bezeichnen.
‫Dann muss ich wahrscheinlich 60 Sekunden warten und sie werden für mich bereit sein.
‫Sie können hier einfach die IP-Adressen verwenden ... spring auf diese maschinen.
‫Klicken Sie auf die Schaltfläche Kopieren und dann auf ssh root @ the IP address.
‫Wenn Ihr SSH-Schlüssel ordnungsgemäß auf Ihrem Computer eingerichtet ist, wird er automatisch mit diesem Schlüssel
‫angemeldet.
‫Aber im Abschnitt Ressourcen habe ich Ihnen ein Beispiel gegeben, wie Sie eine. ssh-Konfigurationsdatei, die es Ihnen ermöglicht, diese drei Knoten
‫in einer Konfiguration zu haben, sodass Sie sie einfach als Knoten1, Knoten2, Knoten3
‫bezeichnen können, anstatt sich ihre IP-Adressen merken zu müssen, falls Sie
‫dies über mehrere Tage hinweg tun . Das ist wirklich eine einfache Möglichkeit, diese Server zu betreten und wieder zu verlassen.
‫Wenn Sie Docker Machine oder Play With Docker verwendet haben, ist Docker bereits installiert und
‫Sie können Ihren Schwarm erstellen.
‫Wenn Sie jedoch DigitalOcean verwenden oder Ihre eigenen VMs rollen, müssen Sie Docker installieren.
‫Der einfachste Weg, das zu tun, den ich gerne benutze, ist das Skript über at get zu benutzen. Docker. com.
‫Hier finden Sie Beispiele für die Verwendung dieses Skripts, um die aktuelle Produktionsversion von Docker
‫auf Ihrem Computer abzurufen.
‫Jetzt ist auf allen drei Servern die neueste Version von Docker installiert und wir können
‫unseren Schwarm einrichten.
‫Auch hier ist nur erforderlich, dass diese drei Knoten über eine solide Netzwerkverbindung verfügen und bestimmte Ports
‫geöffnet sind.
‫Wenn Sie neugierig auf die Swarm-Ports sind, lesen Sie in den Ressourcen dieses Abschnitts nach, wo
‫ich tatsächlich einen Link zu meiner eigenen Liste der Firewall-Ports habe, die für die Arbeit von Swarm erforderlich sind.
‫Wenn Sie sich erinnern, haben wir Docker Swarm Init gemacht. In diesem Fall, der bei Cloud-Servern sehr
‫häufig vorkommt, soll eine IP-Adresse angegeben werden, auf der der Swarm-Dienst angekündigt wird.
‫Sie möchten eine IP-Adresse verwenden, auf die von den anderen Servern aus zugegriffen werden kann.
‫In diesem Fall verwende ich die öffentliche IP-Adresse für meinen
‫DigitalOcean-Host.
‫Und los geht's.
‫Bisher ist dies genau wie bei unserer lokalen Maschine.
‫Dieses Mal kopiere ich jedoch den Befehl swarm join, gehe zu node2 und füge ihn hinzu.
‫Und los geht's.
‫Dieser Knoten ist jetzt ein Teil des Schwarms.
‫Also kehren wir zu Knoten1 zurück, Docker-Knoten ls, und jetzt haben wir zwei.
‫Sie werden feststellen, dass der zweite Knoten nur ein Worker ist. Denn wie es heißt, wenn wir wollten, dass es ein Manager ist,
‫hätten wir dieses Manager-Token bekommen sollen. Aber keine Sorge. Wir können diesen Mitarbeiter tatsächlich aktualisieren, um ihn zu
‫einem Manager zu machen.
‫Wenn wir jedoch auf Node2 sind, kann ich keine Swarm-Befehle verwenden. Weil Arbeiter nicht wirklich privilegiert sind.
‫Sie haben keinen Zugang, um den Schwarm zu kontrollieren.
‫Sie können also keinen der Swarm-Befehle verwenden, die wir für die Manager gewohnt sind.
‫Zurück auf Node1 und dem Manager werde ich ein Docker-Node-Update durchführen ...
‫Was ich dort tat, war das Drücken der Tabulatortaste, um den Tab zu vervollständigen, was in Docker immer
‫eine fantastische Funktion ist, besonders bei so vielen Funktionen. Es führte mich durch die einzelnen Schritte zur Verwendung
‫dieses Aktualisierungsbefehls.
‫Jetzt habe ich dieses letzte Update fertiggestellt und es hat sich auf node2 geändert.
‫Wenn ich jetzt meinen Docker-Knoten ls mache, werden Sie sehen, dass er jetzt als erreichbar angesehen wird.
‫Der ursprüngliche Knoten ist jedoch weiterhin der Anführer. Übrigens der kleine Stern? Das bedeutet nur, dass dies der
‫Knoten ist, mit dem Sie gerade sprechen.
‫Fügen wir ihn für Node3 standardmäßig als Manager hinzu.
‫Wir müssen zu unserem ursprünglichen Befehl über den Docker-Schwarm zurückkehren und dann den
‫Join-Token-Manager anfordern.
‫Sie können diese Token jederzeit erhalten.
‫Sie müssen sie nicht notieren oder speichern.
‫Sie sind Teil der Schwarmkonfiguration und werden verschlüsselt auf der Festplatte gespeichert.
‫Sie können diese auch ändern, falls sie möglicherweise offengelegt werden oder ein Server mit einer Sicherheitsanfälligkeit vorliegt.
‫Wenn Sie sicherstellen möchten, dass keine Knoten vom alten Schlüssel aus dem Schwarm beitreten können, können Sie
‫diese Schlüssel tatsächlich drehen .
‫Ich werde das kopieren und in node3 einfügen.
‫Und los geht's. Zurück auf Node1.
‫Wenn ich einen Docker-Knoten erneut durchführe, werden Sie sehen, dass ich drei Knoten habe. Und alle haben einen Manager-Status, der
‫angibt, dass sie Manager sind.
‫Jetzt haben wir einen redundanten Schwarm mit drei Knoten und drei Managern. Machen wir einfach das Gleiche
‫wie zuvor: Der Docker-Dienst erstellt den alpinen Ping
‫8. 8. 8. 8 Lassen
‫Sie es uns
‫nur dieses Mal drei Repliken geben.
‫Und dann mache ich
‫einen Docker-Service, und wir werden sehen,
‫dass drei von drei schon laufen.
‫Wenn ich einen Docker-Knoten ps gemacht habe, kann ich tatsächlich sehen, dass mein lokaler Knoten diese Aufgabe oder diesen Container tatsächlich ausführt.
‫Ich kann tatsächlich den Knoten Node2 angeben und er gibt mir nur die Container, die auf Node2 ausgeführt werden.
‫Wenn ich eine vollständige Liste haben wollte, könnte ich einen Docker-Dienst ps machen, und dann ist schläfriges Braun der Name, den
‫es unserem Dienst gab. Und du wirst hier sehen .. Lassen Sie mich den Bildschirm ein wenig erweitern.
‫Hier sehen Sie, dass alle drei Aufgaben aufgelistet sind.
‫Sobald Sie diesen Schwarm erstellt haben, müssen Sie normalerweise keine Befehle mehr
‫in die verschiedenen Knoten eingeben. Sie können den ganzen Schwarm für die meisten Dinge wirklich von Node1 aus bedienen.
‫Daher werden wir in zukünftigen Vorlesungen einen Großteil unserer Arbeit von node1 aus erledigen, aber tappen Sie sich vorerst auf
‫den Rücken, weil Sie einen voll funktionsfähigen Schwarmcluster haben.