‫De eisen voor deze opdracht lijken sterk op de vorige opdracht. U moet weten hoe u in de
‫schaal van een container kunt komen wanneer u deze uitvoert of erna.
‫En ken enkele basisprincipes van Linux-distributies en wat zoiets als Ubuntu is, kan
‫anders zijn dan Alpine of CentOS. En natuurlijk het runnen van een container. Dan de basis van hoe DNS-records kunnen werken,
‫zoals wat een alias-record is of hoe u er een kunt maken.
‫Dat zou handig zijn, want je gaat wat testen rond DNS doen. Voor je volgende opdracht gaan we
‫wat DNS-round robin-tests doen.
‫En als u niet bekend bent met DNS-round robin, is het concept
‫dat u twee verschillende hosts kunt hebben met DNS-aliassen die op dezelfde DNS-naam reageren.
‫Als je denkt aan iets als google. com hebben ze duidelijk meer dan één server.
‫Een van de technieken die grote bedrijven gebruiken om er altijd voor te zorgen dat ze 24/7 bereikbaar zijn, is het gebruik
‫van DNS-round robin als onderdeel van hun strategie, zodat er in feite meerdere IP-adressen in DNS-records staan achter
‫de naam die u gebruikt op het internet.
‫Nu in containers wordt het eigenlijk een stuk eenvoudiger.
‫Hier hebben we deze functie in Docker Engine 1. 11 en nieuwer.
‫We hebben een functie gehad waarbij we, als we een aangepast netwerk maken, een alias kunnen toewijzen zodat
‫meerdere containers op dezelfde DNS-naam kunnen reageren.
‫Dus voor deze ga je eerst een nieuw virtueel netwerk maken, noem het wat je
‫wilt, en je gaat twee containers opzetten met een nieuwe afbeelding genaamd Elasticsearch; en in het bijzonder de
‫versie 2 van Elasticsearch.
‫Elasticsearch maakt dus niet echt deel uit van deze cursus, maar het wordt een populaire gegevensopslag voor... nou eigenlijk alleen om te zoeken.
‫Vandaar de naam.
‫Rechts.
‫Dus het is eigenlijk in een JSON-formaat wanneer je het vanuit curl raakt. Dus wat we gaan doen, is dat we het als
‫een snelle test gaan gebruiken, omdat het in dit scenario heel gemakkelijk te gebruiken is.
‫U wilt de opdracht --net-alias onderzoeken en bekijken.
‫Dat is eigenlijk een optie voor Docker Run.
‫En als je een container start, zeg je dat ik wil dat een andere DNS-alias
‫deze container aanroept, niet alleen de containernaam.
‫Dit omzeilt een klein probleem dat als je Docker ooit in productie hebt gebruikt en je bent begonnen met het
‫toevoegen van veel containers, je je realiseert dat je niet meerdere containers met dezelfde naam kunt toevoegen...
‫maar hoe kan ik DNS op mijn netwerken oplossen en misschien dezelfde app twee keer laten installeren.
‫Misschien heb ik een ontwikkelaar en een testomgeving op dezelfde server en moet ik in beide iets zoeken
‫in de DNS.
‫Nou, zo kom je om die beperking heen.
‫U kunt gewoon aliassen aan uw containers blijven toevoegen wanneer u ze maakt en u zult ontdekken
‫dat ze daadwerkelijk kunnen reageren, net als een DNS-round robin.
‫Dus als je die eenmaal hebt opgestart, kun je de alpine afbeelding gebruiken om een nslookup
‫uit te voeren, en dat zal je gewoon een lijst met de DNS-adressen voor de naamzoekactie teruggeven.
‫En onthoud dat je ervoor moet zorgen dat het is ondertekend met de --net
‫naar hetzelfde netwerk dat je aan de eerste twee containers hebt toegewezen.
‫Nadat u beide containers naar dezelfde zoeknaam hebt laten vertalen, kunt u het
‫curl-commando gebruiken om snel een uitvoer van de elasticsearch-server te krijgen.
‫En dit is een kleine truc met elasticsearch en waarom het goed is om het in deze demo te gebruiken. De curl-opdracht wordt eigenlijk geleverd
‫met een CentOS-afbeelding.
‫Het is dus gemakkelijk om in dit geval gewoon CentOS te gebruiken in plaats van Alpine of Ubuntu en ook
‫elasticsearch draait op poort 9200.
‫En aangezien het een eenvoudig, kort JSON-resultaat oplevert, is het snel en gemakkelijk voor deze test.
‫En ten slotte geeft elasticsearch eigenlijk willekeurige namen aan zichzelf binnen zijn configuratie wanneer het voor het eerst
‫opstart.
‫Het lijkt een beetje op hoe containers zichzelf willekeurige namen geven als je niets opgeeft.
‫Wat we hier kunnen doen, is dat als je dat curl-commando steeds opnieuw uitvoert, je
‫daadwerkelijk zult merken dat de uitvoer... ook al gebruik je dezelfde DNS-zoeknaam om een curl te doen op... je bladert eigenlijk heen
‫en weer tussen de twee verschillende elasticsearch-containers.
‫Het is misschien niet eens.
‫Het zal niet precies de ene zijn, dan de andere, dan de eerste, dan de tweede. Het zal een beetje afwijken, want
‫dat is een beetje een van de nadelen van DNS-round robin, het is geen echte load balancer.
‫Ik noem het graag de low balancer van de arme man.
‫Maar in dit geval geeft het u een idee van het gebruik van een virtueel netwerk met ingebouwde DNS, zodat
‫u gemakkelijk meerdere containers met dezelfde naam kunt gebruiken.
‫En zoals altijd kun je naar de volgende lezing gaan om me er doorheen te zien lopen zoals ik het zou doen.
‫Maar u krijgt misschien hetzelfde eindresultaat door iets andere opdrachten te typen of uw containers op een iets andere
‫manier te starten.