Introducere în roiul / definiția Docker

Un roi de andocare este unul dintre instrumentele disponibile în containerele Docker care sunt o platformă / unealtă de orchestrare a containerului cu sursă deschisă. Este, de asemenea, numit instrumentul de aglomerare și planificare nativ din Docker. Când dimensiunea containerelor crește, devine foarte dificil să gestionezi toate, acolo este rolul Swarm. Îi ajută pe dezvoltatori și administratorii să gestioneze și să stabilească un cluster de noduri Docker sub forma unui singur virtual mașinărie.

Conceptele / termenii cheie folosiți pentru Docker Swarm

  • Swarm - Un roi este format din mai multe sisteme / gazde Docker care rulează în modul roi.
  • Swarmkit - Un Swarmkit este utilizat pentru implementarea stratului de orchestrare a lui Docker.
  • Sarcină - O sarcină cuprinde comenzile și containerul care ar trebui rulate în interiorul containerului. Sarcinile sunt distribuite de managerul de roi la noduri.
  • Noduri - Nodul poate fi definit ca un motor Docker singular și care participă la roi. O implementare bună a roiurilor de producție este una care are nodurile distribuitoare distribuite pe mai multe mașini.
  • Service - Ori de câte ori este creat un serviciu, acesta specifică containerul care ar trebui utilizat și comenzile care ar trebui să fie rulate în interiorul containerului. Deci serviciul este o listă de sarcini care ar trebui să fie executate pe nodurile lucrătorului sau managerului.
  • Noduri manager - Sarcina nodurilor managerului este de a trimite sarcinile către nodurile lucrătorului. Nodurile managerului sunt, de asemenea, responsabile pentru îndeplinirea altor funcții, cum ar fi gestionarea clusterului și a orchestrării.
  • Noduri lucrător - Sarcina nodului lucrător este de a introduce sarcinile care provin de la nodul manager și de a le rula. Un nod muncitor este instalat cu agenți care raportează unitățile lucrării care i-au fost atribuite nodurilor managerului.
  • Noduri de lider - Servește ca lider pentru a efectua sarcini legate de orchestrare.

Ce se poate face folosind Docker Swarm

Swarm este foarte util pentru administratori și dezvoltatori dintr-un ecosistem Docker. Urmărește câteva dintre sarcinile pe care le poate realiza dockerul:

  • Poate fi utilizat pentru a scala numărul de containere.
  • Pentru stabilirea coordonării între containere.
  • Pentru alocarea sarcinilor la clusterul de containere.
  • Pentru gestionarea ciclului de viață al containerelor și, de asemenea, pentru efectuarea controalelor periodice de sănătate.
  • Pentru servirea scopului de difuzare a actualizărilor pentru software printre containere.

Înțelegerea roiului Docker / de lucru

Mai jos se lucrează roiul de docker, care sunt următoarele:

Funcționarea nodurilor

După cum am văzut, există două tipuri de noduri, adică managerul și lucrătorul. Să ne uităm la modul de lucru al ambelor.

Sarcinile care sunt gestionate de nodurile managerului sunt: ​​Planificarea serviciilor, întreținerea stării clusterului și îndeplinirea, de asemenea, a punctelor finale ale API-ului HTTP. Este recomandabil să rulați mai multe noduri de manager, deoarece acest lucru vă va ajuta să beneficiați de caracteristicile de toleranță la defecte ale roiului.

Nodurile muncitorului rulează containerele și pentru a funcționa este necesar un minim de 1 nod manager.

Funcționarea serviciilor

Unicul scop al serviciilor este de a implementa o imagine de aplicație în roiul Docker. De exemplu, un server DB, un server Web, servere HTTP sunt exemple de servicii.

Procese și termeni în serviciu:

  • Eșecul sarcinii - Ori de câte ori o sarcină nu reușește în interiorul unui roi de andocare, în general nu este repornită. Deci, sarcina orchestratorului este de a elimina acea sarcină eșuată și de a o înlocui cu cea nouă, care este în concordanță cu starea serviciului.
  • Opțiune de serviciu - Ori de câte ori este creat un serviciu, putem defini întotdeauna un port la care serviciul poate fi utilizat pe (pentru utilizatori externi), se pot aplica limite de memorie și CPU, se pot defini politici de actualizare etc.
  • Serviciul în așteptare - Un serviciu intră într-o stare în așteptare când momentan nu sunt disponibile noduri în roiul docker pentru a rula sarcina.

Filtre cu vârtej de andocare

Roiul de andocare are 5 filtre:

  • Afinitate - Scopul filtrului de afinitate este să se asigure că containerele rulează pe același nod de rețea și definește, de asemenea, secvența în care ar trebui să se execute containerele.
  • Port - Portul definește o resursă dedicată. Când un container rulează pe port care nu este gratuit, containerul va trece la celelalte noduri disponibile.
  • Restrângere - Atunci când este creat un nod, putem atribui perechi cheie-valoare cu ajutorul unui filtru de constrângere.
  • Dependență - Ori de câte ori există o dependență între containere, filtrele de dependență le programează pe aceleași nod.
  • Sănătate - Dacă vreunul dintre noduri este necompletat și nu funcționează, acest filtru nu va atribui niciun recipient pe acesta.

Unele comenzi de tip Docker Swarm:

ScopComanda
Crearea unui roiInițierul docker init
Alăturarea unui roidocker swarm join \

–Token Token_number \

IP: Port

Crearea unui serviciu și denumirea acestuiaDocker service crea - numele Edu
Eliminarea unui serviciuserviciu de andocare scoate Edu
Serviciul de actualizareactualizarea serviciului de docker
Monitorizarea stării de sănătate a nodurilornodul docker ls

Avantaje și dezavantaje

Să vedem acum avantajele și dezavantajele roiului docker

avantaje:

  • Desfășurarea este ușoară, iar modul swarm este implicit livrat cu Docker Engine.
  • Instalarea este ușoară și rapidă.
  • Integrarea roiurilor se poate realiza cu Docker CLI și Docker compose
  • Nu este necesară multă experiență și învățarea este ușoară.

Dezavantaje:

  • Pentru a scala serviciile, este necesară intervenția manuală.
  • Are o toleranță limitată la erori.
  • Deocamdată nu sunt disponibile funcții mai largi.
  • Are o comunitate mai mică în comparație cu alte instrumente de orchestrare disponibile precum Kubernetes.

Concluzie

În acest articol, am început cu o imagine de ansamblu de bază și o definiție a roiului Docker și am văzut, de asemenea, termenii importanți folosiți în tehnologia roiului care este o parte a ecosistemului. Apoi am încercat să înțelegem care funcționează în spatele roiului Docker și am învățat, de asemenea, câteva comenzi Docker care sunt utilizate în modul roi.

Articole recomandate

Acesta a fost un ghid pentru Ce este Docker Swarm ?. Aici am discutat Conceptul, Comanda, filtrele, Utilizarea și Înțelegerea roiului Docker. De asemenea, puteți parcurge și celelalte articole sugerate pentru a afla mai multe -

  1. Întrebări la interviu Docker
  2. Ce este Cassandra?
  3. Întrebări la interviu Microservices
  4. Ce este Jenkins?