de nolan grace

Cum să gestionați mai multe containere cu Docker Swarm

Cum sa gestionati mai multe containere cu Docker Swarm

Scalarea dincolo de un singur server este o caracteristică importantă de înțeles despre containere. Când începeți să utilizați containere pentru a facilita scalarea aplicației, lucrurile încep să devină cu adevărat interesante. Imaginați-vă că ați folosit containere Docker pentru dezvoltare și testare. Acum sunteți gata să intrați în direct.

Cum vă puteți asigura că aplicația dvs. are resurse suficiente? Dacă devii viral, cum vei scala?

Aici ar trebui să începeți să utilizați un orchestrator de containere, cum ar fi Roi. Același grup care ți-a adus Docker a construit Swarm. Swarm există pentru a gestiona containerele Docker pe un grup de mașini. Docker Swarm facilitează implementarea, gestionarea și scalarea containerelor.

În acest articol, vom parcurge elementele de bază ale orchestrării containerelor pe un cluster. Vom discuta despre caracteristicile Docker Swarm, inclusiv despre cum să porniți un Swarm, să implementați o aplicație și să scalați aplicația respectivă. Dacă nu sunteți familiarizați cu Docker, aruncați o privire la celelalte articole ale mele.

Ce este Docker?
Începeți primul container
Crearea primului dvs. fișier Docker
Construirea primei tale imagini
Trecerea pe lângă un container

Reveniți aici când vă simțiți gata.

1611534008 344 Cum sa gestionati mai multe containere cu Docker Swarm

Poate că m-ai auzit numind Swarm un orchestrator de containere. Ce vreau să spun prin asta? Swarm preia controlul asupra gestionării și organizării atât a gazdelor, cât și a containerelor Docker care rulează pe clusterul dvs.

Gândiți-vă la Swarm ca la o aplicație care înțelege cum să rulați comenzile Docker. Îi spui unde sunt toate gazdele tale Docker, ce containere vrei să rulezi, iar Swarm se ocupă de restul. Swarm gestionează rețeaua, accesul, starea containerelor dvs., scalarea serviciilor, echilibrarea încărcării și chiar mutarea containerelor dacă o gazdă nu răspunde.

În acest articol, vom lansa un Docker Swarm pe mașina dvs. locală. Cu Swarm-ul nostru local ne vom familiariza cu cele mai comune comenzi și vom implementa unele servicii.

Începând un roi

Pentru a începe, va trebui să aveți instalat Docker-CE. Pentru a vă ajuta să instalați Docker pe mașina dvs., vă rugăm să aruncați o privire la Docker-CE site.

Odată ce ați instalat cu succes Docker, pornirea primului Docker Swarm este la fel de ușoară ca rularea unei comenzi. Deschideți terminalul sau linia de comandă și executați comanda de mai jos.

> docker swarm init

Ați făcut-o! Rulați primul dvs. roi.

Dacă rulați această gazdă pe o platformă cloud, cum ar fi AWS sau într-o fermă de servere, adăugarea mai multor noduri la clusterul dvs. de roi este simplă. Pur și simplu urmați instrucțiunile din documentația Docker despre cum să faceți acest lucru creați un roi. Această documentație vă va arăta cum să inițializați manual și să adăugați noduri la un cluster Docker Swarm.

O altă opțiune este de a-ți întoarce propria Fermier grup. După ce ați configurat Rancher, îl puteți lăsa să facă greutăți pentru dvs. Rancher este un serviciu pe care îl folosesc atunci când explorez caracteristicile diferiților orchestratori de containere. Rancher facilitează învârtirea unui grup de mașini și pornirea unui orchestrator de containere la alegere. Rancher are un tablou de bord web frumos și interactiv, care face mai ușor să învârtiți diferiți orchestratori, inclusiv Swarm, Mesos sau Kubernetes.

Puteți găsi informații despre Noțiuni introductive despre Rancher și Folosind Rancher pentru a începe un roi în Documentația Rancher.

În sensul acestui articol, vom rămâne la singurul nod care rulează pe mașina dvs. locală. Acest lucru va face mult mai ușor să ne familiarizăm cu Docker Swarm și Swarm CLI.

Distribuiți în Swarm

Acum că aveți roiul în funcțiune, să pornim niște containere! Dacă sunteți familiarizat cu Docker, implementarea în Docker Swarm ar trebui să fie o bucată de tort. Comenzile utilizate pentru a implementa servicii și stive pentru Docker-CE sunt aceleași comenzi utilizate pentru Docker Swarm.

Pentru a implementa pintail-whoami imagine docker, executați comanda de mai jos.

> docker service create --name pintail-whoami -p 80:80 pintailai/pintail-whoami:0.0.1

Deschideți-vă frowers și mergeți la http: // localhost și ar trebui să vedeți pagina de mai jos.

1611534008 715 Cum sa gestionati mai multe containere cu Docker Swarm

Comanda folosită pentru a porni acest serviciu poate fi exact aceeași cu Docker-CE, dar lucrurile funcționează puțin diferit atunci când sunt conectate la un roi.

Când rulați servicii într-un Swarm, cea mai mare diferență este locația fizică a containerelor dvs. care rulează. Docker Swarm va porni un container pe orice gazdă unde sunt disponibile resurse. Deci, doar pentru că porniți un container de la o gazdă nu înseamnă că acesta va rula containerul.

Deci, cum accesați un serviciu care ar putea fi pornit oriunde în clusterul dvs.?

Docker Swarm are un instrument foarte util pentru a rezolva această problemă numită mesh de rutare Swarm. Plasa de rutare gestionează pătrunderea în containerele care rulează. În mod implicit, Swarm face ca toate serviciile să fie accesibile prin intermediul portului publicat pe fiecare gazdă Docker.

1611534008 492 Cum sa gestionati mai multe containere cu Docker Swarm

Să presupunem că aveți un roi care conține trei gazde Docker. Dacă implementați un serviciu pe Swarm publicat pe portul 80, nu contează de la ce gazdă accesați acel port – veți fi direcționat către serviciul dvs.

În lumea reală, dacă aveți o aplicație web și un API Rest, puteți implementa aplicația dvs. web pe portul 80 și API-ul dvs. pe 8080. Cu această configurație, puteți scala numărul de containere care rulează diferite părți ale aplicației. Dar puteți fi întotdeauna sigur că portul 80 de pe orice nod din clusterul Swarm vă va duce la site-ul web și portul 8080 către API-ul Rest.

Plasa de rutare Swarm are avantajele și dezavantajele sale. Această configurație implicită are limitările sale, dar este concepută pentru a facilita pornirea cât mai ușor. Pe măsură ce aplicațiile dvs. devin mai complexe, rețeaua de rutare poate fi configurată pentru a se comporta diferit și pot fi implementate diferite servicii pentru a utiliza configurații de rutare diferite. Pentru mai multe informații, vă rugăm să aruncați o privire la Documentația mesh de rutare a modului Swarm.

Scalarea serviciului dvs.

Acum, că avem un serviciu în funcțiune, hai să facem ceva mai rapid!

Imaginați-vă că vă rulați site-ul pe un Docker Swarm aflat în producție și site-ul dvs. începe să fie la curent cu Hacker News. Traficul dvs. se triplează și trebuie să vă ocupați de sarcina suplimentară. Pentru a tripla numărul de containere pe care le executați, pur și simplu executați comanda de mai jos:

> docker service scale pintail-whoami_pintail-whoami=3

Presto! Docker Swarm scalează numărul de replici pe care le executați și direcționează traficul către containere. După finalizarea comenzii de mai sus, reveniți la „Exemplul Docker Pintail.ai” din browserul dvs. și faceți clic pe Reîmprospătare de câteva ori. Ar trebui să vedeți schimbarea numărului pe măsură ce rețeaua de rutare vă direcționează către diferite containere.

Swarm facilitează scalarea serviciilor, astfel încât să vă puteți face griji cu privire la probleme mai mari.

A curăța

Acum, să curățăm recipientele și Swarm.

Pentru a îndepărta stiva de pintail-whoami, rulați

> docker stack rm pintail-whoami

Fii atent cu următoarea comandă. Dacă rulați orice altceva în cadrul roiului, acesta va fi șters.

Pentru a șterge clusterul Swarm, rulați

> docker swarm leave --force

Deci, în acest articol, am început o gazdă Swarm, am discutat despre adăugarea de noduri în clusterul nostru, am început și am scalat un serviciu și am vorbit despre rețeaua de rutare Swarm. Sperăm că această introducere vă va ajuta să vă înfășurați mai bine creierul în jurul orchestrării containerelor și Docker Swarm.

Acest articol abia zgârie suprafața a ceea ce este posibil cu containere și Swarm, dar sper că vă oferă un anumit context pentru a vă ajuta să continuați să învățați.

Vă rugăm să-mi spuneți dacă aveți comentarii, întrebări sau nelămuriri în comentarii. Sunt întotdeauna deschis la feedback și mi-ar plăcea să vă aud sugestiile. Dacă ți-a plăcut articolul, te rog, lasă-mi o mulțime de palme pentru a mă anunța.