单服务器基于 Nginx 负载均衡 + Docker Compose 提高并发量

打印 上一主题 下一主题

主题 1043|帖子 1043|积分 3129


  • 配景信息

    • 开发需求

      • 单服务器的多服务管理
        多服务器的集群管理可参考博主 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)的方式实现和正式服务的分隔管理。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表