【问题标题】:OpenStack L3 load balancerOpenStack L3 负载均衡器
【发布时间】:2025-11-24 16:10:01
【问题描述】:

是否可以在开放堆栈中实现 L3 负载均衡器?

我想基于源 IP 跨多个虚拟机对传入虚拟 IP 的流量进行负载平衡。是否有任何 OpenStack neutron 插件具有此功能?

如果没有,我可以使用其他任何基于 Linux 的方法来实现此功能吗?

HA 代理和 OpenStack LBaaS 不适合我,因为有 L4 负载平衡器并且只处理 TCP 和 UDP 流量。

【问题讨论】:

    标签: load-balancing openstack openstack-neutron


    【解决方案1】:

    是的,可以在 OpenStack 中进行 L3 负载平衡。 OpenStack 有一个名为 Octavia(负载平衡器即服务)的项目。

    1. 使用以下信息安装 OpenStack Octaviahttps://docs.openstack.org/octavia/latest/contributor/guides/dev-quick-start.html

      https://github.com/openstack/octavia

    2. /etc/neutron/neutron_lbaas.conf中添加以下内容:

      service_provider = LOADBALANCERV2:Octavia:neutron_lbaas.drivers.octavia.driver.OctaviaDriver:default
      
    3. /etc/neutron/neutron.conf中添加以下内容:

      [octavia]
      base_url=http://<IP address of OpenStack controller node>:9876
      
    4. /etc/octavia/octavia.conf中添加以下内容:

      [neutron]
      service_name = <name of the neutron service in the keystone catalog>
      endpoint = <custom neutron endpoint if override is necessary>
      
    5. Octavia 的示例配置文件位于 https://github.com/openstack/octavia/blob/master/etc/octavia.conf

    【讨论】:

    • 据我所知,Octavia 是基于 TCP/HTTP 的负载平衡器。换句话说,它是一个 L4 或 L7 负载均衡器。对于我的要求,我需要一个 IP (L3) 负载平衡器。基本上,我需要根据源 IP 对传入的 IP 流量进行负载平衡。
    • @Murli 请参阅docs.openstack.org/octavia/newton/specs/version0.9/… 中的“源 IP” 部分,了解如何基于源 IP 进行负载平衡。