IT评测·应用市场-qidao123.com
标题:
单服务器基于 Nginx 负载均衡 + Docker Compose 提高并发量
[打印本页]
作者:
杀鸡焉用牛刀
时间:
2024-10-24 04:12
标题:
单服务器基于 Nginx 负载均衡 + Docker Compose 提高并发量
配景信息
开发需求
单服务器的多服务管理
多服务器的集群管理可参考博主 docker swarm 的技能分享《基于 docker swarm 和 NVIDIA MIG 摆设并行 AI 推理服务》
根据服务请求量和服务器规模的匹配程度,多服务器集群的性能对于如今来说过剩,故有了本研究的分享。
焦点概念
docker compose 运行时,默认会创建独立于主机网络的桥接网络(bridge network),用于多个容器间的通信,同时提供与未毗连到该桥接网络的容器的隔离。因此其非常适合接入如 Nginx 给 docker 的网络赋能,如本文将要示例的单服务器的多个 AI 推理服务的负载均衡和基于 compose 的服务伸缩。
docker compose 的开发宗旨之一就是面向生产的单主机摆设,比如程序服务或计算资源的隔离性和拓展性,停机规复后的服务自动重启等功能。
在 docker compose 中,服务(Service)可以理解为容器的功能和相关计算机资源的聚集。
Docker 版本
Docker Compose version v2.24.2
Docker version 25.0.1, build 29cf629
文档信息
作者:penguido
初稿完稿日期:2024.10.09
具体实现
示例的文件结构
本文重点用到 nginx/nginx.conf 和 compose_nginx.yaml 两个配置文件。
底子应用
准备后端服务的镜像
由于不是本文的重点,故省略。后文以制作好的AI服务的镜像为例,其服务端口是 8000
Nginx 镜像选型
由于本文重点必要其负载均衡的功能,故选用 nginx:stable-alpine 镜像
准备 docker compose 的配置文件 compose_nginx.yaml
本 compose 配置文件和本文重点相关的说明如下,详情请拜见官网 https://docs.docker.com/reference/compose-file/services/
配置了两个服务(services),分别叫 api 和 nginx
api 服务即本例通过 docker compose 用 Dockerfile 制作的AI推理服务镜像。
在配置文件中为其运行的容器配置了相关的 GPU 资源和监控机制,如停机规复的自启动和文件变动的热重启。
另外该服务的单位测试代码通过绑定挂载(bind mounts)的方式实现和正式服务的分隔管理。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4