Docker composé l'équilibrage et la mise à l'échelle de la charge

Docker composé l'équilibrage et la mise à l'échelle de la charge
Docker Compose est un composant bien apprécié et central de Docker qui est universellement utilisé pour traiter et gérer plusieurs applications de conteneurs et services. Alors que Docker Compose exécute des applications multi-continents, il est donc nécessaire de gérer ces services ou conteneurs sagement. Merci à Docker, l'échelle et l'équilibrage de charge nous permettent de gérer et d'exécuter efficacement plusieurs services.

Ce blog montrera comment implémenter la mise à l'échelle et l'équilibrage de chargement dans Docker Compose.

Comment acquérir les services dans Docker Compose?

Échelle dans Docker signifie faire des répliques de services ou de conteneurs composés. Ces répliques sont gérées sur l'hôte. Pour implémenter la mise à l'échelle dans Docker Compose, passez par les instructions fournies.

Étape 1: générer dockerfile
Générer un dockerfile qui conteneurisera le Golang "main1.aller»Programme. À cette fin, collez le code fourni dans le fichier:

De Golang: 1.8
Workdir / go / src / app
Copier Main1.aller .
Exécuter Go Build -O Webserver .
Exposer 8080: 8080
POINT D'ACCÈS ["./serveur Web"]

Étape 2: Générer le fichier de composi
Ensuite, créez un autre fichier nommé "composer docker.YML”Fichier et collez les instructions ci-dessous:

Version: "Alpine"
prestations de service:
la toile:
construire: .
PORTS:
- 8080

Ici:

  • "prestations de service”Est ​​utilisé pour créer et configurer le service Docker-Compose. À cette fin, nous avons configuré le «la toile" service.
  • "construire”Est ​​utilisé pour spécifier le dockerfile. Dans le bloc de code donné, la touche de construction utilisera le dockerfile fourni ci-dessus.
  • "ports"Expose des ports pour les conteneurs. Ici, nous avons utilisé le «8080" au lieu de "8080: 8080". En effet, lorsque nous adaptons les différents services, le port de liaison «8080"Sera alloué à un seul service, et l'autre générera l'erreur. Le "ports" valeur "8080»Permet à Docker d'attribuer automatiquement les ports aux services sur le réseau hôte:

Alternativement, les utilisateurs peuvent attribuer le «ports«Valeur dans la gamme telle que«80-83: 8080". Cela affectera automatiquement les ports exposés dans la plage spécifiée à chaque conteneur ou service.

Étape 3: tirez les conteneurs
Ensuite, lancez les conteneurs en utilisant le «secouer docker" commande. Pour reproduire le «la toile«Service, utilisez le«-escalader"Option avec le"=«Valeur comme indiqué ci-dessous:

docker-compose up --échelle web = 2

Étape 4: Répertoriez les conteneurs de compose
Énumérez les conteneurs Composé et vérifiez si les services de mise à l'échelle s'exécutent ou non:

docker-compose ps -a

Vous pouvez voir deux répliques du «la toile"Le service fonctionne sur"61844" et "61845»Ports hôtes locaux respectivement:

Pour la confirmation, accédez aux ports assignés de l'hôte local et vérifiez si le service s'exécute ou non.

On peut observer que le «la toile»Le service a été exécuté avec succès sur les ports attribués:

Comment implémenter l'équilibrage de charge dans Docker Compose?

L'équilibreur de charge est l'une des meilleures solutions pour gérer le trafic à partir de différents conteneurs ou clients sur le serveur. Il augmente la fiabilité et la disponibilité des applications et des services. Différents critères de routage sont utilisés sur le backend pour gérer les applications multi-conteneurs, telles que Round Robin.

Pour implémenter la technique d'équilibrage de charge sur les services de composition, utilisez les instructions données.

Étape 1: Créez «Nginx.Fichier Conf ”
Créé un "nginx.confli”Fichier et collez le code ci-dessous dans le fichier. Ces instructions comprennent:

  • "en amont"Avec le nom"tous»Spécifiez le service en amont. Ici, vous pouvez spécifier autant de services que vous êtes nécessaire pour gérer. Par exemple, nous avons défini le «la toile”Service qui devrait exposer le port 8080.
  • Dans le "serveur", Nous avons défini le port d'écoute"8080"Pour l'équilibreur de charge Nginx et passé le proxy"http: // tout /«Pour gérer le service en amont:
utilisateur nginx;
événements
Worker_Connections 1000;

http
en amont tout
Web de serveur: 8080;

serveur
Écoutez 8080;
emplacement /
proxy_pass http: // all /;


Étape 2: Configurer le service de chargement Nginx Balancer dans «Docker-Compose.fichier yml ”
Ensuite, configurez l'équilibreur de charge «nginx«Service dans le«composer docker" déposer. À cette fin, nous avons spécifié les clés suivantes:

  • "image»Définit l'image de base pour le«nginx" service.
  • "volumes"Est utilisé pour lier le"nginx.confli"Sur le chemin cible du conteneur.
  • "dépend de»Spécifie que le«nginx«Le service dépendra du«la toile" service:
  • "ports”Spécifiez le port d'écoute du service Nginx Balancer Nginx:
Version: "Alpine"
prestations de service:
la toile:
construire: .
nginx:
Image: Nginx: Dernière
Volumes:
- ./ nginx.conf: / etc / nginx / nginx.conf: ro
dépend de:
- la toile
PORTS:
- 8080: 8080

Étape 3: Exécutez des conteneurs de compose
Maintenant, exécutez le conteneur composé avec le «-escalader”Option pour exécuter les répliques du service Web:

docker-compose up --échelle web = 2

Ici, ces répliques de services Web sont gérées sur le service d'équilibreur de chargement «nginx»:

Naviguer dans le port d'écoute du «nginx«Service et vérifiez si le bilan de charge gère les deux conteneurs du service Web sur le même port ou non. Actualisez la page pour passer au deuxième conteneur, et actualisez à nouveau la page pour passer au premier conteneur:

Il s'agit de docker composer l'équilibrage et la mise à l'échelle de la charge.

Conclusion

L'équilibrage et l'échelle de charge sont des techniques pour augmenter la disponibilité et la fiabilité de l'application. La mise à l'échelle Docker génère les répliques de services spécifiés et l'équilibre de l'équilibreur de charge ou gère le trafic vers et depuis différents conteneurs du serveur. À cette fin, nous avons utilisé «nginx"En tant qu'équilibreur de charge. Ce blog a démontré que Docker compose l'équilibrage et la mise à l'échelle de la charge.