Arhitectura de roi de andocare - Cum funcționează nodurile și serviciile?

Cuprins:

Anonim

Introducere în arhitectura Dwarer Swarm

Docker Swarm este un instrument de clustering și orchestrare pentru containere, care este încorporat în Docker Engine pentru sistemul distribuit care implică sute de containere. Sarcinile Docker Node, Docker Services și Docker sunt componente cheie ale arhitecturii roiului Docker.

  • Nodul Docker: Este instanța Docker Engine inclusă în roiul Docker, are două tipuri:
  • Nodul managerului: responsabil pentru toate sarcinile de orchestrare și de gestionare a containerelor necesare pentru menținerea sistemului în starea dorită, cum ar fi menținerea stării clusterului, programarea serviciilor și deservirea punctelor finale HTTP ale modului swarm.
  • Docker Service: Este definiția sarcinii care trebuie executată.

Arhitectură tipică cu roi de andocare

Mai jos sunt punctele pentru arhitectura tipică de roiuri pentru docker:

  • Nodul este membrul cheie al arhitecturii swarm docker, o arhitectură swarm poate avea mai multe noduri manager conduse de un singur nod manager ales folosind algoritmul Raft, un nod manager poate funcționa, de asemenea, ca nod muncitor, dar poate fi configurat să funcționeze ca manager. și nod.
  • Nodurile managerului folosesc algoritmul de consens al plutei pentru a gestiona intern starea clusterului. Aceasta se asigură că toate nodurile managerului care planifică și controlează sarcinile din cluster păstrează / stochează starea consecventă.
  • Un roi este un grup de motoare sau noduri Docker, în care ne desfășurăm serviciile. În stadiul incipient, Docker a creat un sistem de management al clusterului cu un protocol de comunicare cunoscut sub numele de Beam. Mai târziu, au adăugat mai multe API-uri și au redenumit-o în roi. Primul roi de generație se numește „roi v1”.

Fluxul de lucru al rocii de andocare

Fluxul de lucru al roiului docker constă în înțelegerea modului în care funcționează nodurile și serviciile într-o arhitectură a roiului docker:

Pasul 1: Primul pas este crearea unui set de docker-machine care va acționa ca noduri în roiul docker , unul dintre aceste noduri va fi managerul, nodul rămas va acționa ca noduri de lucrător. Pentru a crea o mașină de docker folosiți comanda pe Windows, lansați terminalul docker.

docker-machine create –driver hyperv manager1

  • În cazul în care „manager1” este numele docker-machine, pentru a enumera mașinile și, respectiv, este rulat.

docker-machine ls
docker-machine ip manager1

Pasul 2: Al doilea pas este de a crea mașini de lucru, folosiți comanda de mai jos pentru a crea cât de mult doriți mașini de lucru, aici hai să creăm 3 lucrători.

docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3

  • Ne putem conecta la manager sau la lucrător folosind comanda de mai jos, care vă va duce în interiorul aparatului.

docker-machine ssh manager1/worker1

Pasul 3: Etapa a treia este inițializarea roiului docker, trebuie să executăm această comandă pe mașina pe care vrem să o facem ca manager, adică facem manager de noduri, putem adăuga și mai mulți manageri.

docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP

Pasul 4: Pasul patru este să vă alăturați nodurilor lucrătorului pentru a robi, obțineți comanda pentru a vă alătura nodului ca lucrător folosind comanda de mai jos pe mașina managerului și executați comanda pe care o aveți pe mașina lucrător pe care doriți să o faceți lucrător.

Docker swarm join-token worker1

  • Pentru a verifica dacă lucrătorul este alăturat pentru a robi sau nu merge la mașina managerului și a executa comanda, acesta va enumera mașina de lucru adăugată cu detalii ale managerului.

docker-machine ls

Pasul 5: Pasul cinci este să executați comenzile standard pentru docker pe manager.

docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)

Pasul 6: Pasul șase este să rulați containerele de andocare pe roiul de andocare, putem crea orice serviciu și sunt replici. Accesați ub.docker.com, conectați-vă și mergeți să explorați depozitarile, putem vedea diferite imagini care sunt motoare, de exemplu, nginx (funcționează pe webserver) creează un serviciu și replică utilizează comanda de mai jos pe manager.

docker service create –replicas 3 -p 80:80 –name sample nginx

  • În cazul în care „eșantion” este numele serviciului și 80 este portul care este expus pentru a verifica starea serviciului executat sub comanda de pe nodul managerului.

docker service ls
docker service ps sample

Verificați serviciul care rulează pe toate nodurile și, de asemenea, verificați pe browser, dând IP pentru toate nodurile.

Pasul 7: Pasul șapte, acum putem observa utilizarea efectivă a roiului de docker unde am scala serviciul în sus și în jos. Pentru a scala un serviciu, executați comanda de mai jos pe mașina managerului

docker service scale sample=4

  • Comanda de mai sus va face ca proba de serviciu să funcționeze pe 4 noduri, chiar dacă toate nodurile sunt ocupate, va crea un alt serviciu pe manager sau lucrător. În mod similar putem reduce serviciul.

docker service scale sample=2

  • Putem, de asemenea, inspecta nodul pentru a obține detalii precum câte și ce servicii rulează pe un nod rulând comenzile de mai jos pe nodul managerului

docker node inspect worker1/manager1
docker node inspect self

Pasul 8: Pasul opt este să actualizați serviciul atunci când serviciul rulează pe mai multe mașini și dacă dorim să actualizăm serviciul este foarte simplu și, de exemplu, dacă dorim să actualizăm versiunea serviciului nginx.

docker service update –image nginx:1.14.0 sample

Pasul 9: Oprire / oprire / eliminare.

  • Pentru a opri orice nod particular, folosiți comanda de mai jos, care schimbă starea nodului în „scurgere”.

docker node update –availability drain worker1

  • Pentru a scoate serviciul de pe toate mașinile.

docker service rm sample

  • Pentru a părăsi roiul, care schimbă starea „în jos”.

docker swarm leave

  • Pentru a opri o mașină (Porniți de la terminalul docker, nu în manager sau mașina de lucru).

docker-machine stop worker1
docker-machine rm worker1

Beneficiile arhitecturii Docker Swarm

Mai jos sunt prezentate punctele care prezintă avantajele arhitecturii Docker Swarm:

  1. Proiectare descentralizată: putem gestiona clustere de roi prin comanda swarm, Dă o singură p (unguent de acces pentru a construi întregul roi.
  2. Este foarte simplu în comparație cu Kubernetes.
  3. Disponibilitate ridicată: Printre nodurile disponibile în roi, în cazul în care masterul eșuează, un alt nod al lucrătorului va prelua o taxă suplimentară.
  4. Reconcilierea stării dorite: Managerul roiului urmărește starea clusterului, astfel încât starea dorită și reală să fie întotdeauna aceeași.
  5. Atunci când specificăm o rețea peste care să vă conectați la serviciile dvs., managerul de roi alocă adrese containerului din rețeaua de suprapunere odată ce creăm / actualizăm containerele
  6. Actualizări continuu: Actualizările de serviciu pot fi făcute treptat manager de roi vă permite să specificați întârzierea dintre fiecare actualizare fără niciun timp de oprire.

Concluzie

Docker Swarm este un instrument simplu în locul unor instrumente mari care îndeplinesc sarcina, Docker cu roi oferă orchestrarea de care avem nevoie, este ușor de configurat și livrat nativul cu motorul docker pe care îl vom instala și folosi oricum.

Articole recomandate

Acesta este un ghid pentru Arhitectura Dwarer Swarm. Aici vom discuta despre modul în care nodurile și serviciile funcționează într-o arhitectură de roi de docker cu beneficiile lor. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. Docker Architecture
  2. Ce este Docker Swarm?
  3. Aplicații de inteligență pentru roi
  4. Tehnologia Swarming ajută echipele agile să crească?