跳转到: 导航, 搜索

Neutron/LBaaS/Provisioning/proposal

< Neutron‎ | LBaaS

范围

本文档描述了特定的 VIP 如何被配置到负载均衡设备上。可以通过完全自动化和手动模式等多种方式实现。该方案依赖于 Tenant API 的轻微扩展。

用例

自动模式

此场景适用于只需要负载均衡,且对后台具体实现方式没有偏好的用户。

  • `需求`: 有一些负载均衡设备注册在 LBaaS 中,它们可以是共享的,也可以是专用于特定租户的。
  • 用户创建 VIP、池,并指定健康检查或会话持久性参数。
  • LBaaS 根据设备的 capabilities 过滤设备,并将 VIP 部署到其中一个设备上。
  • 任何参数的更改(例如,负载均衡算法)都可能导致 VIP 重新部署到另一个设备,但此过程对用户来说是透明的。
  • 如果用户请求的参数组合与任何可用设备不匹配,则会返回错误。

半手动模式

此场景适用于拥有不同类型负载均衡器的用户,并且希望对部署进行更精确的控制。

  • `需求`: 有一些负载均衡设备注册在 LBaaS 中,它们可以是共享的,也可以是专用于特定租户的。
  • 用户创建 VIP 并指定其一组需求。这可能是特定的健康检查选项或性能指标(例如连接数)。
  • LBaaS 将 VIP 部署到其中一个合适的设备上。如果未找到设备,则返回错误。

手动模式

此场景适用于拥有阶段(开发、QA、生产)的用户,并且希望控制哪个设备负责负载均衡。

  • `需求`: 有一些负载均衡设备注册在 LBaaS 中,它们可以是共享的,也可以是专用于特定租户的。
  • 用户列出可用的设备。
  • 用户创建 VIP 并指定 device_id。
  • LBaaS 将 VIP 部署到指定的设备上。
  • 如果请求了任何不受支持的选项,LBaaS 将返回错误。

(!) 需要通过命令 'get list of devices (tenant_id)' 扩展 REST API。

实现概述

该功能应作为调度器实现,算法可以如下所示

  • 列出当前租户可用的设备
  • 进行过滤
    • 对于自动模式 - 透明过滤
    • 对于半手动模式 - 过滤接受用户提供的 capabilities
    • 对于手动模式 - 过滤接受 device_id
  • 在设备列表中运行过滤器
    • 从列表中选择一个设备并将 VIP 绑定到它
    • 如果没有找到设备,则抛出异常

数据模型变更

配置变量

API

无,但需要对 LBaaS Tenant API 进行扩展。

插件接口

不适用

必需的插件支持

不适用

依赖项

LBaaS 核心,LBaaS Tenant API

CLI 要求

Horizon 要求

使用示例

不适用

测试用例

不适用