跳转到: 导航, 搜索

Neutron/LBaaS/requirements

< Neutron‎ | LBaaS

Neutron LBaaS 需求

概述

任何希望将负载均衡作为服务 (LBaaS) 的云运维人员、厂商等,对负载均衡的理解和运作方式都有不同的看法。本页的目标是列出 Neutron LBaaS 插件的总体需求和用例,以便具体了解每个人对负载均衡的理解和运作方式。此外,根据优先级对需求进行排序,也有助于确定当前设计和开发工作的重点。本页还应帮助项目的新手了解当前的工作重点以及为什么某些领域没有进行工作。如果可以按优先级创建需求,希望项目的所有参与者都能理解期望并保持专注,从而获得更高效的开发体验。

用户需求

需求 描述 优先级* 蓝图链接
每个池多个 VIP 负载均衡器应能够为指向相同节点池的单个 IP 地址配置多个 TCP 端点 (VIP)。 https://blueprints.launchpad.net/neutron/+spec/lbaas-multiple-vips-per-pool
高可用性 负载均衡器应能够在网络中断、网络降级或设备故障时具有故障转移能力。 https://blueprints.launchpad.net/neutron/+spec/lbaas-ha-agent https://blueprints.launchpad.net/neutron/+spec/lbaas-ha-haproxy
IPv4 和 IPv6 地址支持 负载均衡器应能够同时负载均衡 IPv4 和 IPv6 流量。
L7 交换 负载均衡器应能够根据 L7 内容规则引导流量。 https://blueprints.launchpad.net/neutron/+spec/lbaas-l7-rules https://blueprints.launchpad.net/neutron/+spec/lbaas-l7-rules-haproxy
SSL 终止 负载均衡器应能够终止负载均衡器上的 SSL 流量,并支持高达 TLS 1.2 的版本。
  • 私钥管理
  • HTTP 到 HTTPS 重定向
  • 强制将 HTTP 重定向到 HTTPS 的能力
  • 支持的密码套件
    • ECDH+AESGCM
    • DH+AESGCM
    • ECDH+AES256
    • DH+AES256
    • ECDH+AES128
    • DH+AES
    • ECDH+3DES
    • DH+3DES
    • RSA+AESGCM
    • RSA+AES
    • RSA+3DES
  • 强制使用特定版本的 SSL (SSLv3、TLS 1.0、TLS 1.1 或 TLS 1.2) 的选项
https://blueprints.launchpad.net/neutron/+spec/lbaas-haproxy-ssl https://blueprints.launchpad.net/neutron/+spec/lbaas-ssl-termination https://blueprints.launchpad.net/neutron/+spec/lbaas-ssl-barbican
服务器名称指示 (SNI) 支持 负载均衡器应能够根据 SNI 协议在单个 HTTPS 侦听器上支持多个 SSL 证书。  ?
HTTP 协议支持 负载均衡器应能够负载均衡 HTTP 流量。 完成
HTTPS 协议支持 负载均衡器应能够负载均衡 HTTPS 流量。 不终止
HTTP/HTTPS keepalive 支持 用户应能够为 HTTP/HTTPS 连接指定客户端 keepalive 超时时间 (0 表示禁用 keepalive)。  ?
TCP 协议支持 负载均衡器应能够负载均衡 TCP 流量。 完成
UDP 协议支持 负载均衡器应能够负载均衡 UDP 流量。  ? (LVS 可以处理 UDP)
静态 IP 地址 负载均衡器应能够通过静态 IP 地址提供流量。  ?
轮询算法 负载均衡器应能够以轮询方式将流量提供给后端节点。 完成
URI 算法 负载均衡器应能够根据特定的 URI 将流量提供给后端节点池。 L7?
最小连接数算法 负载均衡器应能够将流量提供给后端节点,以便连接数最少的节点首先接收流量。 完成
主动/被动故障转移 在节点池发生故障时,负载均衡器应能够将流量重定向到待机节点池。  ?
健康检查监控 负载均衡器应能够监控节点的健康状况,并自动禁用/恢复对它们的流量。需要考虑的健康检查包括
  • HTTP 检查
  • HTTPS 检查
  • MySQL 检查
  • TCP 检查
  • ICMP 检查
完成 (除 MySQL)
IP 访问控制 负载均衡器应能够根据 IPv4 和 IPv6 地址控制对底层节点的访问。用户应能够以白名单/黑名单的方式指定此设置。  ?
会话持久性 负载均衡器应能够使用基于 cookie 的会话或 IP 地址将流量定向到同一节点。 完成
连接日志记录 通过负载均衡器的所有连接应被记录并存储以供以后检索。
日志卸载 负载均衡器的所有访问和错误日志应自动卸载到日志记录服务。
统计信息 Neutron LBaaS API 应公开以下实时性能统计信息
  • 每秒聚合和每服务器连接数 (当前和最大值)
  • 聚合和每服务器并发连接数 (当前、最大值和总数)
  • 聚合和每服务器网络流量 (传入字节数和传出字节数)
完成 (当前 - 每个池,将为每个 VIP)
状态指示 用户可以知道负载均衡服务是否处于活动状态。

此外,用户可以知道各个成员的状态。

高 (当前不正确。)
异步 API 操作可能需要时间才能完成。
  • 对 API 的调用应立即返回。
  • 用户可以通过 API 检查调用的完成情况。
  • 允许对同一对象或同一对象树进行并发调用。
  • 检查的状态应反映调用状态,而不应反映对象状态。
高 (当前实现将调用状态持久化到修改后的对象上。)
批量添加/删除成员 对于初始配置和扩展/缩减场景,最好能够通过单个调用批量添加和删除成员。
CLI 复杂的 VIP 配置可能包含许多配置项,例如池、L7 规则、SSL 证书和成员。
  • 最好能够使用多个简短的 CLI 命令来完成此类配置,而不是使用单个非常长的 CLI 命令。
  • 在某些情况下,整个 VIP 树是一致的,作为一个批处理,而使用多个可操作的 API 调用会导致瞬态的不一致状态。
道歉页面 Web 应用程序可能需要在所有应用程序成员都关闭时显示“道歉页面”。  ?
L7 脚本 定义一个灵活的 API,允许进行 L7 脚本编写。
  • 使用 OCSP 进行 SSL 客户端身份验证
  • 将证书信息插入 HTTP 标头的能力
 ?
服务虚拟机 与服务虚拟机集成  ? https://blueprints.launchpad.net/neutron/+spec/adv-services-in-vms, https://blueprints.launchpad.net/neutron/+spec/dynamic-network-resource-mgmt

*优先级从低到高排序。

用户用例

  • 待办事项:需要用户用例

运维人员需求

需求 描述 优先级* 蓝图链接
可扩展性 该系统应能够扩展到无限数量的负载均衡器。
DDoS 缓解工具 该系统应具有解决 DDoS 攻击的工具。
诊断工具 该系统应具有足够的工具来排除典型的操作问题 (例如,工具足以精确定位基础设施中的故障、过载或热点等)。  ?
日志记录、告警和监控 该系统应具有足够的工具来提供全面的态势感知,满足适当的法规遵从性,并随着容量的波动动态更新/创建。
可恢复性 该系统应具有足够的恢复选项来防止停机。这包括但不限于自我修复类型的特性,例如多区域、地理冗余、定期备份以及在适当情况下进行 HA 设置。
自动化 该系统应具有足够的自动化工具,以便可以通过 Jenkins 等部署系统以连续的方式编排部署。
功能 定义源 NAT (定义 nat-pool 等) 并将 nat-pool 应用于 VIP 的能力
功能 TCP 和 UDP 会话空闲超时选项以及将此应用于 VIP 或服务器的能力
功能 将 SSL 证书上传并应用于 VIP 的能力
功能 支持其他负载均衡器算法
功能 LB 统计信息和通知应可用于 ceilometer https://blueprints.launchpad.net/neutron/+spec/lbaas-ceilometer-integration
功能 将专有 LB 命令传递给驱动程序的选项
功能 为 VIP 注入 Anycast 路由
功能 保持源 IP 地址对真实服务器的透明性。

*优先级从低到高排序。

运维人员用例

  • 待办事项:需要运维人员用例

运维人员数据

概述

云运维人员有不同类型的云用户。因此,认为在优先级上会出现分歧是公平的。本节的目的是让云运维人员提供有关云用户如何使用 LBaaS 的数据。下面的运维人员数据汇总应用于确定需求的优先级。与其盲目地选择需求的优先级,运维人员数据应为 LBaaS 用户实际使用 (从而重视) 的功能提供一些指导。如果您是云运维人员,请随时添加您的数据。*请注意,所有百分比均以负载均衡器实例的总数为基准*

负载均衡器协议使用情况

协议 Rackspace 运营商 B
HTTP 72.55% -
HTTPS 19.67% -
MYSQL 3.94% -
TCP_CLIENT_FIRST 1.30% -
TCP 0.82% -
SMTP 0.39% -
UDP 0.33% -
FTP 0.27% -
SFTP 0.16% -
LDAP 0.13% -
POP3 0.08% -
DNS_UDP 0.10% -
LDAPS 0.06% -
DNS_TCP 0.04% -
IMAPv3 0.02% -
IMAPv4 0.04% -
IMAPv2 0.02% -
UDP_STREAM 0.03% -
POP3S 0.02% -
IMAPS 0.03% -

负载均衡器算法使用情况

算法 Rackspace 运营商 B
LEAST_CONNECTIONS 58.86% -
ROUND_ROBIN 17.00% -
MYSQL 3.94% -
RANDOM 13.88% -
WEIGHTED_LEAST_CONNECTIONS 5.88% -
WEIGHTED_ROUND_ROBIN 4.38% -

负载均衡器健康检查使用情况

Rackspace 运营商 B
57.46% -

负载均衡器流量日志记录使用情况

Rackspace 运营商 B
22.00% -

负载均衡器 SSL 终止使用情况

SSL 模式 Rackspace 运营商 B
SSL_MIXED (端口 80 和 443) 14.54% -
SSL_ONLY (端口 443) 1.47% -

负载均衡器内容缓存使用情况

Rackspace 运营商 B
11.46% -