Docker komponerer belastningsbalansering og skalering

Docker komponerer belastningsbalansering og skalering
Docker Compose er en godt likt og kjernekomponent i Docker som er universelt brukt til å behandle og administrere flere containere-apper, og tjenester. Når Docker Compose utfører multi-container-applikasjoner, er det derfor nødvendig å administrere disse tjenestene eller containerne med omhu. Takk til Docker, skalering og belastningsbalansering tillater oss å administrere og utføre flere tjenester effektivt.

Denne bloggen vil demonstrere hvordan du implementerer skalerings- og lastbalansering i Docker Compose.

Hvordan skalere opp tjenestene i Docker Compose?

Skalering i Docker betyr å lage kopier av komponeringstjenester eller containere. Disse kopiene administreres på verten. For å implementere skaleringen i Docker -komponering, gå gjennom de medfølgende instruksjonene.

Trinn 1: Generer dockerfile
Generere en dockerfile som vil container golang “Main1.gå" program. For dette formålet, lim inn den medfølgende koden i filen:

Fra Golang: 1.8
Workdir/go/src/app
Kopier Main1.gå .
Run Go Build -o Webserver .
Utsett 8080: 8080
INNGANGSPUNKT ["./Internett server"]

Trinn 2: Generer komponeringsfilen
Neste, opprette en annen fil som heter “Docker-Compose.yml”Fil og lim inn instruksjonene under leverte under:

Versjon: "Alpine"
tjenester:
Web:
bygge: .
Porter:
- 8080

Her:

  • tjenester”Brukes til å opprette og konfigurere Docker-Compose-tjenesten. For det formålet har vi konfigurert “Web" service.
  • bygge”Brukes til å spesifisere dockerfilen. I den gitte kodeblokken vil build -tasten bruke ovennevnte Dockerfile.
  • Porter”Utsetter porter for containere. Her har vi utnyttet “8080" i stedet for "8080: 8080”. Dette er fordi når vi skalerer de forskjellige tjenestene, den bindende porten “8080”Vil bli tildelt bare en tjeneste, og den andre vil generere feilen. “Porter”Verdi”8080”Lar Docker tilordne portene til tjenester på vertsnettverket automatisk:

Alternativt kan brukere tilordne “Porter”Verdi i området som“80-83: 8080”. Dette vil automatisk tilordne eksponeringsportene innenfor det spesifiserte området for hver beholder eller tjeneste.

Trinn 3: Fire opp containerne
Deretter kan du skyte opp containerne ved å bruke "Docker-Compose Up”Kommando. For å gjenskape “Web”Tjeneste, bruk“-skala”Alternativ sammen med“=”Verdi som vist nedenfor:

Docker-Compose Up-skala nett = 2

Trinn 4: Liste komponer containere
Liste opp komponeringsbeholderne og bekrefte om skaleringstjenestene utfører eller ikke:

Docker -Compose PS -A

Du kan se to kopier av "Web”Tjenesten kjører på“61844”Og“61845”Lokale vertsporter henholdsvis:

For bekreftelse, naviger til de tildelte portene til den lokale verten og verifiser om tjenesten kjører eller ikke.

Det kan observeres at "Web”Tjenesten har vellykket kjørt på tildelte porter:

Hvordan implementere belastningsbalansering i Docker -komponering?

Lastbalansen er en av de beste løsningene for å administrere trafikk fra forskjellige containere eller klienter på serveren. Det øker påliteligheten og tilgjengeligheten av applikasjoner og tjenester. Ulike rutingskriterier brukes på backend for å administrere Multi Containers -applikasjoner, for eksempel Round Robin.

For å implementere lastbalanseringsteknikken på komponeringstjenester, bruk de gitte instruksjonene.

Trinn 1: Lag “Nginx.Conf ”-fil
Lage en “nginx.konf”Fil og lim inn koden nedenfor i filen. Disse instruksjonene inkluderer:

  • oppstrøms”Med navnet”alle”Spesifiser oppstrømstjenesten. Her kan du spesifisere så mange tjenester som du trenger for å administrere. For eksempel har vi definert "Web”Service forventes å eksponere på port 8080.
  • I “server”, Vi har satt lytteporten”8080”For Nginx Load Balancer og passerte proxy”http: // alle/”For å administrere oppstrømstjenesten:
bruker nginx;
arrangementer
WORKER_CONNECTIONS 1000;

http
oppstrøms alle
Server Web: 8080;

server
Lytt 8080;
plassering /
proxy_pass http: // all/;


Trinn 2: Konfigurer Load Balancer Nginx-tjeneste i “Docker-Compose.yml ”-fil
Konfigurer deretter Load Balancer “nginx”Service i“Docker-Compose”Fil. For dette formålet har vi spesifisert følgende nøkler:

  • bilde”Definerer basisbildet for“nginx" service.
  • Volum”Brukes til å binde“nginx.konf”Til beholderens målsti.
  • kommer an på”Angir at“nginx”Tjenesten vil avhenge av“Web" service:
  • Porter”Spesifiser lytteporten til Load Balancer Nginx -tjenesten:
Versjon: "Alpine"
tjenester:
Web:
bygge: .
nginx:
Bilde: Nginx: Siste
Volum:
- ./nginx.Conf:/etc/nginx/nginx.Conf: Ro
kommer an på:
- Web
Porter:
- 8080: 8080

Trinn 3: Kjør komponeringsbeholdere
Kjør nå komponeringsbeholderen sammen med "-skala”Alternativ for å utføre webtjeneste -kopier:

Docker-Compose Up-skala nett = 2

Her administreres disse webtjenestens replikkene på belastningsbalanse -tjenesten "nginx”:

Naviger lytteporten til “nginx”Service og bekrefte om belastningsbalansen administrerer de to containerne i webtjenesten i samme port eller ikke. Oppdater siden for å bytte til den andre beholderen, og oppdater siden siden for å bytte til den første beholderen:

Dette handler om docker komponeringsbalansering og skalering.

Konklusjon

Lastbalansering og skalering er teknikker for å øke tilgjengeligheten og påliteligheten til applikasjonen. Docker -skaleringen genererer kopiene til spesifiserte tjenester og belastningsbalansebalanse eller administrerer trafikken til og fra forskjellige containere på serveren. For dette formålet har vi brukt “nginx”Som en belastningsbalanse. Denne bloggen har vist Docker Compose Load Balancing and Scaling.