2024.2 系列发布说明

15.0.1-5

错误修复

  • 为了防止 haproxy 重载期间出现 OOM,降低了 HTTPS 终止监听器的 tune.ssl.cachesize 值 (LP: #2119987)。

  • 修复了一个在使用 FILE_TYPE 和 EQUAL_TO 比较的 L7Rule 时,由于生成的 HAProxy 配置问题导致永远无法匹配的错误。

  • 修复了在获取负载均衡器的 additional_vips 参数时,缺少 port_id 元素的问题。

  • 修复了负载均衡器级联删除过程中的潜在竞争条件。在删除具有多个监听器的负载均衡器时,VIP 端口的安全组可能会被并发更新多次,从而产生竞争条件。

其他说明

  • 添加了一个“octavia-wsgi”脚本,用于向后兼容,因为 pbr 的 wsgi_scripts 已经不再适用于最新的 setuptools。

15.0.1

错误修复

  • 在回滚时删除 amphora_health 表中的记录。这是必要的,因为对应 amphora 表中的记录也被删除了。这可以避免由于 amphora_health 表中的孤立记录而导致故障转移阈值的误报。

  • 在 GetAmphoraNetworkConfigs 任务中忽略序列化负载均衡器类。这可以避免在 jobboard 详细信息中存储完整的图。它修复了启用 jobboard 的大型负载均衡器(图中有 ~2000+ 资源)的问题。

  • 修复了在安全组规则没有定义协议(即为空)时,监听器更新期间可能出现的 AttributeError。

  • 修复了使用 SINGLE 拓扑和 UDP 监听器的负载均衡器的问题。Amphora 现在在添加 UDP 池时发送一个 Gratuitous ARP 数据包,这使得 VIP 地址在故障转移或重用先前分配的 IP 地址后更快地可访问。

  • 修复了在使用 Neutron 端点时,由私有 CA 签名的证书的验证问题。

  • 修复了 PlugVIPAmphora 任务回滚时,db_lb 未定义且 get_subnet 引发 NotFound 错误的问题。当 Amphora 创建因超时失败并且在 VIP 网络被删除之前,可能会发生这种情况。结果回滚因异常而失败。

15.0.0

新特性

  • 已添加以下选项,以启用 Redis Sentinel 中的身份验证。

    • [task_flow] jobboard_redis_sentinel_username

    • [task_flow] jobboard_redis_sentinel_password

  • 已添加新的 [task_flow] jobboard_redis_sentinel_ssl_options 选项。此选项控制与 Redis Sentinel 的连接的 SSL 设置。

升级说明

  • 已删除过时的 [amphora_agent] agent_server_network_file 选项。

  • 已删除过时的 [health_manager] health_update_driver 选项。

  • 已删除过时的 [health_manager] stats_update_driver 选项。请使用 [controller_worker] statistics_drivers 选项代替。

  • SysVinit 和 Upstart 不再支持作为 amphora 实例的 init 系统。现在唯一支持的 init 系统是 systemd。

  • 已删除过时的 [haproxy_amphora] use_upstart 选项。

弃用说明

  • 以下选项已被弃用,现在无效。这些选项由已删除的 Upstart 支持使用。

    • [haproxy_amphora] respawn_count

    • [haproxy_amphora] respawn_interval

错误修复

  • 修复了在使用 SR-IOV VIP 端口时更新监听器的问题。

  • 修复了 VIP SR-IOV 实现中的一个错误,该错误导致使用 SR-IOV VIP 接口的负载均衡器成员无法接收流量。

  • 修复了更新带有空“delay”参数的 UDP 健康检查器时出现的错误。

  • 修复了在使用 SR-IOV VIP 端口的负载均衡器故障转移时出现的问题。

  • 修复了故障转移回滚时,neutron 端口可能被遗弃的问题。该问题记录了“Failed to delete port”、“Resources may still be in use for a port intended for amphora”和“Search for a port named octavia-lb-vrrp-<uuid>”等信息。

  • 修复了请求中的“limit”参数小于或等于 0 时的问题。现在它会根据 pagination_max_limit 按照预期返回资源,而不是报错。

  • 在批量成员 API 请求中添加了一个验证步骤,用于检查更新的成员列表中是否多次包含同一个成员,此额外的检查可以防止负载均衡器停留在 PENDING_UPDATE 状态。批量成员流程中重复的成员触发了 Taskflow 中的异常。API 现在如果请求体中已经存在成员,则返回 400(ValidationException)。

  • 修复了在 Octavia API 的 GET 调用中,使用布尔属性过滤资源时出现的问题。

  • 修复了创建负载均衡器和带有 allowed_cidrs 的监听器时,使用完整的负载均衡器 API,由于 Octavia 无法验证 allowed_cidrs 的 IP 地址与 VIP 地址具有相同的族而导致调用被拒绝的问题。

  • 修复了 TLS 存储不可用或返回错误时,负载均衡器停留在 PENDING_DELETE 状态的问题。

  • 修复了 keepalived 中的 nopreempt 选项的错误。该选项无法正常工作,因为 MASTER amphora 的默认角色已设置。删除配置文件中的默认角色修复了该问题。现在,在故障转移后,新创建的 amphora 不会从其他 amphora 抢占 MASTER 角色。

  • 添加了一个解决方法,可以防止监听器 PUT API 调用在 haproxy 重载期间崩溃时失败。amphora-agent 确保在发生崩溃时,haproxy 会被正确重启并准备好接受传入请求(请参阅 https://bugs.launchpad.net/octavia/+bug/2054666