首页主机资讯Ubuntu Overlay如何配置负载均衡器

Ubuntu Overlay如何配置负载均衡器

时间2025-12-18 12:02:03发布访客分类主机资讯浏览1400
导读:Ubuntu Overlay 负载均衡器配置指南 前置说明与总体思路 Overlay 网络用于在 Ubuntu 上跨主机连接容器,常见实现基于 VXLAN 隧道;负载均衡并非 Overlay 的内置能力,通常通过在 Overlay 前部署...

Ubuntu Overlay 负载均衡器配置指南

前置说明与总体思路

  • Overlay 网络用于在 Ubuntu 上跨主机连接容器,常见实现基于 VXLAN 隧道;负载均衡并非 Overlay 的内置能力,通常通过在 Overlay 前部署 HAProxy/Nginx 等反向代理,或直接使用编排平台的 Service/VIP 能力来实现。若使用 Docker Swarm/Kubernetes,可直接利用其内置负载均衡与服务发现;若使用独立主机,则在负载均衡器所在节点将后端写为 Overlay 网络中容器的服务名或容器名 即可完成服务发现与转发。

方案一 Docker Swarm 原生负载均衡

  • 适用场景:已在 Ubuntu 上部署 Docker Swarm 集群,需快速获得跨主机、带健康检查与服务发现的负载均衡。
  • 操作步骤:
    1. 初始化与管理节点
      • docker swarm init
    2. 其他节点加入
      • docker swarm join --token :
    3. 创建跨主机 Overlay 网络
      • docker network create --driver overlay my_overlay
    4. 部署带副本的服务并接入 Overlay
      • docker service create --name my_service --network my_overlay --replicas 3 nginx
    5. 访问与验证
      • 通过服务名访问:curl http://my_service;Swarm 为该服务分配 VIP,默认 轮询 分发到各副本。多次请求应看到来自不同容器的响应。

方案二 外部负载均衡器 HAProxy 或 Nginx 接入 Overlay

  • 适用场景:已有独立 Ubuntu 主机作为入口,后端是运行在 Overlay 中的容器,需要灵活的路由、ACL、熔断等能力。
  • 前置准备
    • 所有后端容器加入同一 Overlay 网络(如 my_overlay),并能被解析(服务名或容器名可达)。
  • HAProxy 示例(/etc/haproxy/haproxy.cfg)
    • 关键要点:frontend 监听 80;backend 使用 balance roundrobin/leastconn/source;server 行使用 Overlay 内的服务名:端口 并开启 check 健康检查。
    • 最小可用配置片段:
      • frontend http_front
        • bind *:80
        • default_backend http_back
      • backend http_back
        • balance roundrobin
        • server web1 web1:80 check
        • server web2 web2:80 check
    • 启动与验证
      • sudo systemctl start haproxy & & sudo systemctl enable haproxy
      • 访问 http://< LB_IP> /,多次请求应分发到不同后端容器。
  • Nginx 示例(/etc/nginx/conf.d/lb.conf 或 /etc/nginx/nginx.conf 的 http 段内)
    • 关键要点:upstream 中使用 服务名;proxy_pass 指向 upstream;设置常用转发头。
    • 最小可用配置片段:
      • http {
        • upstream overlay_backend {
          • server web1:80;
          • server web2:80;
          • }
        • server {
          • listen 80;
          • location / {
            • proxy_pass http://overlay_backend;
            • proxy_set_header Host $host;
            • proxy_set_header X-Real-IP $remote_addr;
            • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            • }
          • }
        • }
    • 启动与验证
      • sudo systemctl restart nginx
      • 访问 http://< LB_IP> / 验证分发效果。

方案三 Kubernetes Service 负载均衡

  • 适用场景:在 Ubuntu 节点上运行 Kubernetes,Pod 使用 Overlay/CNI(如 Flannel/Calico),需要稳定的服务抽象与负载均衡。
  • 操作步骤
    1. 部署应用副本
      • kubectl create deployment my-app --image=nginx --replicas=3
    2. 暴露为 ClusterIP 服务(默认 轮询
      • kubectl expose deployment my-app --type=ClusterIP --port=80
    3. 验证
      • kubectl get svc my-app 查看 ClusterIP,在集群内访问该 IP 验证分发;如需外部访问,可改为 NodePort/LoadBalancer 类型。

算法选择与高可用建议

  • 算法选择
    • 轮询(Round Robin):默认策略,适合后端性能相近的场景。
    • 最少连接(Least Connections):适合请求处理时长差异较大的场景。
    • 源地址哈希(IP Hash):用于会话保持(如购物车)。
  • 高可用与入口优化
    • HAProxy/Nginx 前部署 Keepalived 提供 VIP,实现故障自动切换;结合 systemd 保证进程自启与健康检查,提升整体可靠性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Overlay如何配置负载均衡器
本文地址: https://pptw.com/jishu/774950.html
Java程序在Linux怎样调试 如何在Ubuntu Overlay中进行性能测试

游客 回复需填写必要信息