‫Dit wordt de eerste lezing waarin we daadwerkelijk meerdere hosts of nodes gaan gebruiken, of instanties,
‫of wat je maar wilt... meerdere besturingssystemen. We gaan een zwerm met 3 knooppunten opzetten
‫over alle drie die knooppunten.
‫We kunnen dit helaas niet doen met de ingebouwde Docker op uw machine,
‫omdat dat ons maar één besturingssysteem zal opleveren. We hebben drie Linux-besturingssystemen nodig om met deze volgende reeks functies te kunnen spelen.
‫De eerste optie die je gaat hebben is het gebruik van play-with-docker. com.
‫Het is absoluut de gemakkelijkste manier om te beginnen.
‫Het wordt geleverd met Docker vooraf geïnstalleerd. Het kost u seconden om drie verschillende machines
‫in te richten en het vereist geen investering van uw kant. Maar het betekent wel dat het elke vier uur al het werk dat je hebt gedaan zal wissen.
‫Dus als je denkt dat je de rest van dit gedeelte in de loop van dagen gaat doen, dan
‫is dit misschien niet de beste optie voor jou. Maar als je je een paar uur
‫gaat concentreren, kun je zeker de meeste, zo niet alle, multi-node zwerm-dingen in één keer doorkomen met Play With Docker.
‫Een andere optie die je hebt, is dat je docker-machine kunt gebruiken, waar we het nog niet
‫over hebben gehad, maar het is een opdrachtregelprogramma dat daadwerkelijk wordt geïnstalleerd met Docker voor Windows en Docker voor Mac.
‫Je kunt het downloaden voor Linux en het is in feite een automatiseringstool voor het lokaal en op internet inrichten
‫van virtuele machines en het vervolgens automatisch instellen van Docker voor je.
‫De standaard manier waarop het werkt, is met VirtualBox, die u gratis kunt installeren. Maar het betekent wel dat als je drie
‫virtuele machines lokaal gaat draaien, elk van hen waarschijnlijk een gig RAM of zo nodig heeft om veel
‫van deze voorbeelden te doorlopen. Je hebt dus een machine nodig met een goede hoeveelheid RAM erin. Een andere optie, en
‫degene die ik standaard ga gebruiken voor veel van deze demo's en walkthroughs, is DigitalOcean.
‫Ik raad DigitalOcean gewoon aan omdat ze de goedkoopste en gemakkelijkste service hebben om aan de slag te gaan,
‫en ze draaien alles op SSD, dus het is lekker snel. Je kunt dit in feite gebruiken in een opzet
‫die erg lijkt op wat productie zou zijn, omdat je drie echte virtuele machines in de cloud gebruikt,
‫en het duurt ongeveer een minuut om elke virtuele machine te starten.
‫Als je denkt dat dat een optie is, kun je mijn verwijzingscode en de verwijzingen
‫naar dit gedeelte gebruiken om je eerste $ 10 gratis te krijgen.
‫Als je maar een paar dagen nodig hebt om door dit zwerm gedoe te komen, kun je drie nodes van
‫$ 10 per maand inrichten en ze dagen of een week gebruiken.
‫En dat past misschien binnen het budget van $ 10, dus technisch gezien zou het je niets kosten.
‫En tot slot, er zijn zoveel manieren om Docker te installeren, en dat is eigenlijk alles wat je
‫nodig hebt: drie machines waarop Docker is geïnstalleerd. U kunt Docker Machine gebruiken.
‫Het heeft ingebouwde stuurprogramma's waarmee u het kunt gebruiken om Amazon-instanties, of Azure-instanties, of DigitalOcean Droplets, of Google Compute-knooppunten
‫of elke andere plaats waar u een virtuele Linux-machine kunt krijgen, u kunt Docker gewoon installeren met een geautomatiseerd
‫script van krijgen. havenarbeider. com.
‫Eerlijk gezegd heb ik liever de get. havenarbeider. com-versie alleen omdat Docker Machine u een
‫paar stappen kan besparen, vooral voor locaties zoals Amazon en Azure waar u veel verschillende dingen moet inrichten
‫voordat u alleen een virtuele machine kunt inrichten. Maar u gaat Docker Machine waarschijnlijk
‫niet in productie gebruiken.
‫Het is een tool om eenvoudig ontwikkel- en testomgevingen te automatiseren. Het is nooit echt ontworpen om alle productie-instellingen in
‫te stellen die je nodig zou kunnen hebben voor een zwerm met meerdere knooppunten.
‫Er is niets inherent mis mee, maar meestal krijgen. havenarbeider. com werkt op alle
‫grote Linux-distributies en duurt niet langer dan het daadwerkelijk gebruiken van Docker Machine zelf.
‫Ik ga je een heel snel voorbeeld geven van het krijgen van een van deze scenario's tot
‫het punt waarop Docker is geïnstalleerd. Dan zullen ze allemaal erg op elkaar lijken in de manier
‫waarop we de zwerm creëren en onze diensten verlenen.
‫Dus denk niet dat je het moet doen zoals ik het doe.
‫We proberen eigenlijk alleen Docker-info te krijgen om daadwerkelijk informatie terug te brengen, en dan gewoon om ervoor
‫te zorgen dat de drie knooppunten netwerktoegang tot elkaar hebben en dat ze zich op een goed verbonden netwerk bevinden.
‫Dus idealiter zouden ze zich in hetzelfde netwerk moeten bevinden.
‫Als je Play With Docker zou gaan gebruiken, ga je eigenlijk gewoon naar play-with-docker. com en vink het vakje aan voor
‫Ik ben geen robot.
‫En als het je het CAPTCHA-scherm geeft, volg dan gewoon.
‫Oke. Je zult zien dat het met vier uur aftelt.
‫Maar als ik gewoon op de makende instantie klik en er nog twee keer op klik, worden er heel snel
‫drie virtuele omgevingen gemaakt.
‫Terzijde: dit is eigenlijk het gebruik van Docker in Docker, wat een behoorlijk nette
‫technologie is waarbij we Docker in een Docker-container gebruiken.
‫Maar in deze opzet met Play With Docker, die is gemaakt door andere Docker-kapiteins en het Docker-team, is het echt moeilijk
‫om een verschil te zien.
‫Als ik naar node1 ga, kan ik al zien dat Docker-info me de nieuwste versie geeft. En als ik zelfs maar node2 probeerde te pingen, herkent
‫het eigenlijk vriendelijke namen, dus het zal het gemakkelijker maken om heen en weer tussen hen
‫te communiceren.
‫Dus als u dit wilt proberen, is het een geweldige en gemakkelijke manier op machines met een laag vermogen of als u de
‫komende vier uur gewoon niet de tijd wilt nemen om een omgeving op te zetten.
‫Optie twee is om docker-machine te gebruiken. Als u het hebt geïnstalleerd, moet het ten minste versie 10 zijn,
‫zo niet nieuwer.
‫U weet of het is geïnstalleerd, omdat u de opdracht docker-machine vanaf uw opdrachtregel
‫typt en het werkt of niet.
‫Als je het voor je specifieke Linux-besturingssysteem moet downloaden, kun je naar de Docker-documentatie springen, die je
‫een snelle krullijn geeft om het te downloaden.
‫Als u de ToolBox gebruikt op Windows 7 en 8, of Docker voor Windows op Windows 10, of Docker voor Mac
‫op Mac OS, zal het al up-to-date zijn over die besturingssystemen voor u.
‫Als u de VirtualBox-optie wilt gebruiken, wat de standaard is, hoeft u alleen maar
‫naar virtualbox te springen. org en download de nieuwste versie voor uw besturingssysteem. En je hoeft niet eens iets te doen met
‫VirtualBox.
‫Het moet alleen nog worden geïnstalleerd. En dan kun je vanaf je opdrachtregel gewoon docker-machine
‫create node1 typen, en dit zal in feite doorgaan met het maken van een virtuele machine
‫met BusyBox, een zeer lichtgewicht Linux-distributie.
‫Dit zal daadwerkelijk plaatsvinden door het maken van een zeer lichtgewicht Linux-machine, en je herhaalt gewoon
‫die twee opdrachten voor node2 en 3.
‫Als je meer informatie over een Docker-machine nodig hebt, kun
‫je mijn referentiegedeelte bekijken voor tutorial-links.
‫Zodra uw machines zijn gemaakt, heeft u twee opties voor toegang tot die machines.
‫Je kunt ofwel docker-machine ssh gebruiken, en dan de naam van het knooppunt dat je hebt gemaakt en dat zal je rechtstreeks in
‫die machine springen.
‫Of u kunt de opdracht environment gebruiken.
‫Dus het commando docker-machine env, en dan de naam van de machine die je wilt, zal je wat output geven, en je kunt deze opties
‫knippen en plakken op je commandoregel of je kunt de onderste optie kopiëren en plakken, en dat zal
‫maak eigenlijk de omgevingsvariabele zodat wanneer ik mijn docker-opdracht uitvoer, want nogmaals, de Docker CLI moet gewoon
‫weten met welke Docker-host hij moet praten. En standaard praat het met uw
‫lokale machine.
‫Maar dat herprogrammeerde het gewoon om te praten met de
‫Docker Machine node1.
‫Als ik docker-info doe, zul je zien dat de naam node1 is, want dat is degene waar ik nu mee bezig
‫ben.
‫Voor het laatste voorbeeld ga ik DigitalOcean gebruiken, waarop ik een account heb aangemaakt.
‫Hier noemen ze servers Droplets. Ik raad aan als je geen specifieke reden hebt
‫om een ander besturingssysteem te gebruiken, om te beginnen met Ubuntu 16. 04 omdat dat meestal de eerste Linux-distributie is die de
‫nieuwere Docker-functies ondersteunt.
‫Dus dat is de standaard daar.
‫Dan raad ik je aan om voor de rest van deze cursus de server van $10 per maand te gebruiken. Je kunt misschien wegkomen met de
‫$ 5 per maand-server, maar het kan een beetje traag worden tijdens
‫sommige van de latere demo's wanneer we containers controleren en loggen bovenop onze applicaties.
‫Dan kies je het datacenter dat het dichtst bij jou in de buurt is. Dan is de enige andere optie om een SSH-sleutel toe te voegen.
‫Als je niet bekend bent met hoe je je eigen SSH-sleutel lokaal kunt maken en vervolgens het publiek kunt uploaden naar
‫DigitalOcean, is er een
‫geweldige tutorial die ze ervoor hebben die je kunt vinden in de bronnen van deze sectie.
‫Beneden aan de onderkant ga ik drie machines maken, en ik ga ze node1, 2 en 3 noemen.
‫Dan moet ik ongeveer 60 seconden wachten en dan staan ze voor me klaar.
‫Je zou gewoon de IP-adressen hier kunnen gebruiken... spring op deze machines.
‫Klik op de kopieerknop en vervolgens op ssh root @ het IP-adres.
‫En als je SSH-sleutel goed is ingesteld op je computer, logt hij automatisch in met die
‫sleutel.
‫Maar in de sectie bronnen heb ik u een voorbeeld gegeven van hoe u een . ssh-configuratiebestand waarmee je deze drie knooppunten in een
‫configuratie kunt hebben, zodat je ze gewoon node1, node2, node3 kunt noemen, in
‫plaats van hun IP-adressen te onthouden, voor het geval je dit
‫over meerdere dagen gaat doen . Dat is echt een gemakkelijke manier om in en uit deze servers te komen.
‫Als je Docker Machine hebt gebruikt, of als je Play With Docker hebt gebruikt, dan is Docker al geïnstalleerd en maak
‫je je klaar om je zwerm te maken.
‫Maar als u DigitalOcean gebruikt of uw eigen VM's gebruikt, moet u Docker installeren.
‫De gemakkelijkste manier om dat te doen, die ik graag gebruik, is om het script op get te gebruiken. havenarbeider. com.
‫U kunt hier voorbeelden zien van hoe u dit script kunt gebruiken om de huidige productieversie van Docker op
‫uw computer te krijgen.
‫Nu hebben alle drie mijn servers de nieuwste versie van Docker geïnstalleerd en zijn we klaar om onze
‫zwerm op te zetten.
‫Nogmaals, het enige dat nodig is, is dat deze drie knooppunten solide netwerken met elkaar hebben en dat specifieke
‫poorten open zijn.
‫Als je nieuwsgierig bent naar de poorten van swarm, kijk dan in de bronnen van deze sectie
‫waar ik een link heb naar mijn eigen lijst met de firewallpoorten die nodig zijn om Swarm te laten werken.
‫Als je het je eerder herinnert, hebben we Docker Swarm init gedaan. In dit geval, wat vrij gebruikelijk is bij
‫cloudservers, wil het dat we een IP-adres specificeren waarop de Swarm-service wordt geadverteerd.
‫U wilt een IP-adres gebruiken dat toegankelijk is vanaf de andere servers.
‫In dit geval ga ik het openbare IP-adres gebruiken voor mijn
‫DigitalOcean-host.
‫En daar gaan we.
‫Tot nu toe is dit net als op onze lokale machine.
‫Deze keer ga ik echter het commando swarm join kopiëren en naar node2 gaan en het toevoegen.
‫En daar gaan we.
‫Dit knooppunt maakt nu deel uit van de zwerm.
‫Dus we gaan terug naar node1, docker node ls, en nu hebben we er twee.
‫U zult zien dat het tweede knooppunt slechts een worker is. Want zoals het zegt, als we wilden dat het een manager was,
‫hadden we dit managertoken moeten krijgen. Maar geen zorgen. We kunnen deze werknemer zelfs updaten om hem te
‫promoveren tot manager.
‫Maar als we bij node2 zijn, merk dan op dat ik geen Swarm-commando's kan gebruiken. Omdat arbeiders niet echt bevoorrecht zijn.
‫Ze hebben geen toegang om de zwerm te controleren.
‫Dus ze zullen geen van de Swarm-commando's kunnen gebruiken die we gewend zijn op de managers.
‫Terug op node1 en de manager, ik ga een docker-knooppuntupdate doen...
‫Wat ik daar aan het doen was, was op Tab klikken voor het voltooien van tabbladen, wat altijd
‫een fantastische functie is in Docker, vooral met zoveel functies. Het leidde me door elke stap van het gebruik van
‫dat update-commando.
‫Nu heb ik deze laatste update klaar en is node2 veranderd.
‫Als ik nu mijn docker-knooppunt ls doe, zul je zien dat het nu als bereikbaar wordt beschouwd.
‫Maar het oorspronkelijke knooppunt is nog steeds de leider. Trouwens, het kleine sterretje? Dat betekent alleen dat dat
‫het knooppunt is waarmee u momenteel praat.
‫Laten we voor node3 het standaard als manager toevoegen.
‫We moeten terug naar onze oorspronkelijke opdracht van Docker Swarm, en dan moeten we
‫de join-token-manager krijgen.
‫Je kunt deze tokens op elk moment krijgen.
‫U hoeft ze niet op te schrijven of op te slaan.
‫Ze maken deel uit van de zwermconfiguratie en worden versleuteld op schijf opgeslagen, dus maak je daar geen zorgen over.
‫Je kunt deze ook wijzigen voor het geval ze mogelijk worden blootgesteld of als je misschien een server krijgt die mogelijk een
‫kwetsbaarheid heeft gehad, en je ervoor wilt zorgen dat er geen knooppunten bij de zwerm kunnen komen vanaf de oude sleutel,
‫je kunt deze sleutels daadwerkelijk draaien .
‫Ik ga dit kopiëren, plakken in node3.
‫En daar gaan we. Terug op knooppunt 1.
‫Als ik opnieuw een docker-knooppunt ls doe, zul je zien dat ik drie knooppunten heb. En ze hebben allemaal een managerstatus die
‫aangeeft dat ze managers zijn.
‫Dus nu hebben we een 3-node, redundante zwerm, met drie managers. Laten we hetzelfde doen als eerder, docker-service
‫maakt alpine ping 8.
‫8. 8.
‫8 Laten we
‫het deze keer alleen drie replica's geven.
‫En doe dan een havendienst
‫ls, en we zullen zien dat we er
‫al drie van de drie hebben.
‫Als ik een docker-knooppunt ps heb gedaan, kan ik zien dat mijn lokale knooppunt deze taak of container daadwerkelijk uitvoert.
‫Ik kan eigenlijk het knooppunt, knooppunt2, specificeren en het geeft me alleen de containers die op knooppunt2 draaien.
‫Als ik een volledige lijst wilde hebben, zou ik een havenarbeider kunnen doen ps, en dan is slaperig bruin de naam die
‫het onze dienst gaf. En je ziet hier.. laat me het scherm een beetje vergroten.
‫Je kunt hier zien dat het alle drie onze taken opsomt.
‫Als je deze zwerm eenmaal hebt gemaakt, hoef je normaal gesproken geen opdrachten in
‫alle verschillende knooppunten te typen. Je kunt echt de hele zwerm bedienen, voor de meeste dingen, vanaf node1.
‫Dus we zullen in toekomstige lezingen veel van ons werk vanuit node1 doen, maar geef jezelf voor nu een
‫schouderklopje, want je hebt een volledig operationeel zwermcluster.