Docker comporre il bilanciamento e il ridimensionamento del carico

Docker comporre il bilanciamento e il ridimensionamento del carico
Docker Compose è un componente molto apprezzato e fondamentale di Docker che viene universalmente utilizzato per elaborare e gestire più app e servizi di contenitori. Poiché Docker Compose esegue applicazioni multi-container, pertanto è necessario gestire saggiamente questi servizi o contenitori. Grazie a Docker, il ridimensionamento e il bilanciamento del carico ci consentono di gestire ed eseguire più servizi in modo efficiente.

Questo blog dimostrerà come implementare il ridimensionamento e il bilanciamento del carico in Docker Compose.

Come ridimensionare i servizi in Docker Componge?

Il ridimensionamento in Docker significa fare repliche di servizi o contenitori. Queste repliche sono gestite sull'host. Per implementare il ridimensionamento in Docker Compose, passare attraverso le istruzioni fornite.

Passaggio 1: genera Dockerfile
Genera un fikerfile che contenizzerà il golang "Main1.andare" programma. A tale scopo, incolla il codice fornito nel file:

Da golang: 1.8
Workdir/go/src/app
Copia Main1.andare .
Esegui GO Build -O Webserver .
Esporre 8080: 8080
PUNTO D'ENTRATA ["./server web"]

Passaggio 2: generare un file di composizione
Successivamente, crea un altro file chiamato "docker-compose.YML"File e incolla le istruzioni sotto fornite:

Versione: "Alpine"
Servizi:
ragnatela:
costruire: .
Porte:
- 8080

Qui:

  • "Servizi"Viene utilizzato per creare e configurare il servizio Docker-Ongose. A tale scopo, abbiamo configurato il "ragnatela" servizio.
  • "costruire"Viene utilizzato per specificare il filaro. Nel blocco di codice indicato, il tasto Build utilizzerà il Dockerfile fornito sopra.
  • "porti"Stanno esponendo le porte per i contenitori. Qui, abbiamo utilizzato il "8080" invece di "8080: 8080". Questo perché quando ridimensioniamo i diversi servizi, la porta vincolante "8080"Sarà assegnato a un solo servizio e l'altro genererà l'errore. IL "porti" valore "8080"Consente a Docker di assegnare automaticamente le porte ai servizi sulla rete host:

In alternativa, gli utenti possono assegnare "porti"Valore nell'intervallo come"80-83: 8080". Ciò assegnerà automaticamente le porte di esposizione all'interno dell'intervallo specificato a ciascun contenitore o servizio.

Passaggio 3: accendi i contenitori
Successivamente, accendi i contenitori usando il "Docker-Opse Up"Comando. Per replicare il "ragnatela"Servizio, utilizza il"-scalaOpzione "insieme a"="Valore come mostrato di seguito:

Docker-Opse Up-Scala Web = 2

Passaggio 4: elenco comporre contenitori
Elenca i contenitori composi e verifica se i servizi di ridimensionamento stanno eseguendo o meno:

Docker -compose PS -A

Puoi vedere due repliche di "ragnatela"Il servizio è in esecuzione su"61844" E "61845"Porte ospitanti locali rispettivamente:

Per conferma, vai alle porte assegnate dell'host locale e verifica se il servizio è in esecuzione o meno.

Si può osservare che il "ragnatela"Il servizio è stato eseguito correttamente sulle porte assegnate:

Come implementare il bilanciamento del carico in Docker Compose?

Il bilanciamento del carico è una delle migliori soluzioni per la gestione del traffico da diversi contenitori o client sul server. Aumenta l'affidabilità e la disponibilità di applicazioni e servizi. Diversi criteri di routing vengono utilizzati sul backend per gestire le applicazioni multi -contenitori, come Round Robin.

Per implementare la tecnica di bilanciamento del carico sui servizi di commento, utilizzare le istruzioni fornite.

Passaggio 1: crea “nginx.FILE CONF ”
Creare un "nginx.conf"File e incolla il codice seguente nel file. Queste istruzioni includono:

  • "a monte"Con il nome"Tutto"Specifica il servizio a monte. Qui, puoi specificare tutti i servizi necessari per gestire. Ad esempio, abbiamo definito il "ragnatela"Servizio che dovrebbe esporre sulla porta 8080.
  • Nel "server", Abbiamo impostato la porta di ascolto"8080"Per il bilanciamento del carico Nginx e ha superato il proxy"http: // all/"Per gestire il servizio a monte:
utente nginx;
eventi
worker_connections 1000;

http
a monte tutto
Server Web: 8080;

server
Ascolta 8080;
posizione /
proxy_pass http: // all/;


Passaggio 2: configurare il servizio NGINX del bilanciamento del carico in “Docker-Opse.File YML "
Quindi, configurare il bilanciamento del carico "nginx"Servizio nel"docker-compose" file. A tale scopo, abbiamo specificato le seguenti chiavi:

  • "Immagine"Definisce l'immagine di base per"nginx" servizio.
  • "volumi"È usato per legare il"nginx.conf"Al percorso target del contenitore.
  • "dipende da"Specifica che il"nginxIl servizio "dipenderà da"ragnatela" servizio:
  • "porti"Specificare la porta di ascolto del servizio NGINX del bilanciamento del carico:
Versione: "Alpine"
Servizi:
ragnatela:
costruire: .
nginx:
Immagine: nginx: ultimo
Volumi:
- ./nginx.conf:/etc/nginx/nginx.conf: ro
dipende da:
- ragnatela
Porte:
- 8080: 8080

Passaggio 3: eseguire i contenitori compori
Ora, esegui il contenitore compose insieme a "-scala"Opzione per eseguire le repliche del servizio Web:

Docker-Opse Up-Scala Web = 2

Qui, queste repliche dei servizi Web sono gestite sul servizio di bilanciamento del carico "nginx":

Navigare nella porta di ascolto del "nginx"Servizio e verifica se il saldo del carico gestisce i due contenitori del servizio Web sulla stessa porta o meno. Aggiorna la pagina per passare al secondo contenitore e aggiornare nuovamente la pagina per passare al primo contenitore:

Si tratta solo di bilanciamento e ridimensionamento del carico.

Conclusione

Il bilanciamento e il ridimensionamento del carico sono tecniche per aumentare la disponibilità e l'affidabilità dell'applicazione. Il ridimensionamento Docker genera le repliche di servizi specifici e il bilanciamento del bilanciamento del carico o gestisce il traffico da e verso diversi contenitori sul server. A tale scopo, abbiamo usato "nginx"Come bilanciatore del carico. Questo blog ha dimostrato il bilanciamento e il ridimensionamento del carico.