Comment mettre à l'échelle des conteneurs Docker à l'aide de Nginx comme équilibreur de charge et proxy inversé

Comment mettre à l'échelle des conteneurs Docker à l'aide de Nginx comme équilibreur de charge et proxy inversé
Docker Scaling est l'une des caractéristiques essentielles de la plate-forme Docker. Il nous permet d'exécuter différentes copies ou répliques de conteneurs ou services Docker dans la commande docker compose. Docker-Compose est une solution qui nous aide à gérer les applications et les microservices multi-container.

Bien que l'échelle de tout service dans Docker Compose, il peut montrer le conflit que le port contraignant sera alloué à un seul service. Il existe de nombreuses façons de résoudre le problème spécifié, mais un équilibreur de charge est l'une des approches les plus efficaces pour gérer le trafic à partir de différents conteneurs.

Ce blog montrera comment mettre à l'échelle un conteneur Docker à l'aide de Nginx comme équilibreur de charge et proxy inversé.

Comment mettre à l'échelle des conteneurs Docker à l'aide de Nginx comme équilibreur de charge et proxy inversé?

L'équilibreur de charge gère et distribue le trafic sur le serveur à partir des conteneurs. Il augmente la fiabilité, la capacité et la disponibilité des applications et des services. Comme les répliques de conteneurs sont exécutées sur le même réseau sur le même protocole, cela peut entraîner des conflits, comme l'exposition des erreurs de port. À cette fin, un proxy inversé Nginx ou un équilibreur de charge peut être utilisé pour diviser le trafic des services de mise à l'échelle à l'aide de la ronde ou d'autres techniques de routage.

Pour gérer les services d'échelle à l'aide de Nginx comme équilibreur de charge, passez par les instructions.

Étape 1: faire dockerfile

Tout d'abord, créez un dockerfile pour conteneuriser le programme. À cette fin, nous avons spécifié les instructions pour accrocher le «principal.aller»Programme de Golang:

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

Étape 2: Créez «Docker-Compose.fichier yml ”

Ensuite, créez un «composer docker.YML”Fichier et copier les instructions fournies dans le fichier. Ces instructions contiennent:

  • "prestations de service»Clé pour configurer le service. Par exemple, nous avons configuré le «la toile«Service et«nginx" service. Ici le "nginx«Le service agit comme un équilibreur de charge pour gérer le trafic de mise à l'échelle du service« Web ».
  • "construire»Key démontre que le service« Web »utilisera Dockerfile pour conteneuriser le service.
  • Il n'est pas nécessaire de fournir le port d'exposition au «la toile»Le service comme l'équilibreur de charge Nginx le gère.
  • "volumes"Est utilisé pour lier le"confli”Fichier sur le chemin du conteneur:
  • "dépend de»Est utilisé pour déterminer les dépendances entre les services composés.
  • "ports»Est utilisé pour spécifier le port d'exposition du service NGINX où les services de mise à l'échelle sont gérés via une technique de routage:
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: Faites «Nginx.Fichier Conf ”

Ensuite, faites un «nginx.confli«Fichier à utiliser«nginx«En tant qu'équilibreur de charge et proxy inversé. À cette fin, nous avons spécifié les instructions répertoriées dans le fichier:

  • "en amont tout»Définit les services en amont. Ici, nous avons défini le «la toile”Service qui devrait exposer le port 8080.
  • Dans le "serveur"Brassets, nous avons fourni le port d'écoute de l'équilibreur de charge Nginx"8080"Et défini 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 4: Échellez le service et lancez les conteneurs

Ensuite, échelle et démarrez le service en utilisant le «-escalader"Option avec"secouer docker" commande. Par exemple, nous avons commencé les deux répliques du «la toile" service:

docker-compose up -scale web = 2

Après cela, naviguez dans le service Nginx exposant le port et vérifiez si cela accepte le flux du «la toile«Service ou pas. Actualiser la page pour basculer entre les sorties des services de mise à l'échelle ou des répliques à l'aide du «nginx”Balancer de chargement:

Il s'agit de savoir comment mettre à l'échelle un conteneur Docker à l'aide de Nginx comme équilibreur de charge et proxy inversé.

Conclusion

Pour mettre à l'échelle le conteneur Docker en utilisant le Nginx comme équilibreur de charge et proxy inversé, configurez d'abord les services dans le fichier Compose. Ensuite, créez un "nginx.confli”Fichier et ajouter des instructions pour le service en amont, écouter le port de l'équilibreur de chargement, et passer le proxy pour en amont le service. Après cela, spécifiez le «nginx«Service dans le«composer docker.YML»Fichier qui agit comme un équilibreur de charge. Cet article a démontré comment mettre à l'échelle des conteneurs Docker à l'aide de Nginx comme équilibreur de charge.