2024.1 系列发布说明

2024.1-eom

升级说明

  • 更新控制平面后,UDP 负载均衡器需要进行故障转移才能修复 UDP 重平衡问题。

错误修复

  • 修复了一个问题,即 UDP 侦听器可能无法及时重新平衡失败的成员服务器。 对于从现有流中删除失败的成员服务器,可能需要长达五分钟的时间。

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

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

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

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

14.0.2

错误修复

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

其他说明

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

14.0.1

错误修复

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

  • 修复了 SR-IOV VIP 实现中的一个错误,该错误会导致使用 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 按照预期返回资源,而不是报错。

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

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

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

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

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

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

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

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

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

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

14.0.0

新特性

  • 基于 Octavia Amphora 的负载均衡器现在支持在负载均衡器的 VIP 端口上使用 SR-IOV 虚拟功能 (VF)。这可以通过使用包含 ‘sriov_vip’: True 设置的 Octavia Flavor 来启用。

  • 为 devstack 中的 Rocky Linux 控制器添加了支持。

  • 添加了对 Rocky Linux amphora 镜像的支持。要启用它,用户必须使用 OCTAVIA_AMP_BASE_OS=rockyOCTAVIA_AMP_DISTRIBUTION_RELEASE_ID=9 参数构建他们的 amphora 镜像。

  • 添加了新的 [task_flow] jobboard_backend_username 选项,以支持 Redis ACL 功能。

  • 之前,redis jobboard 驱动程序在连接到 Redis Sentinel 时仅使用 [task_flow] jobboard_backend_hosts 中的第一个主机。现在,驱动程序尝试其他主机作为备用方案。

  • 现在,[database] connection_recycle_time 选项也由 MySQL 持久性驱动程序中的连接使用。

升级说明

  • 您必须更新 amphora 镜像以支持 SR-IOV VIP 功能。

  • Octavia 现在使用 oslo 中间件 sizelimit 模块。它允许限制 API 中传入请求的大小。管理员可能需要根据需要调整 [oslo_middleware].max_request_body_size 设置。 max_request_body_size 的默认值为 114688 字节。

  • 用于 amphora 镜像的 diskimage-builder 元素不再支持 Ubuntu Focal。

错误修复

  • 修复了在使用主题为空或缺少 CN 的证书时出现的问题。

  • 修复了 neutron 客户端配置中的错误端点信息。

  • 修复了一个错误,该错误阻止了 amphora 通过 Amphora Configure API 调用进行更新,API 调用成功但内部更新流程失败。

  • 修复了一个潜在问题,当删除一个 amphora 未完全创建的负载均衡器时,删除操作可能在释放 VIP 端口时失败,导致负载均衡器处于 ERROR 状态。

  • 错误修复:创建新的负载均衡器时,LB API 的响应体现在正确包含健康监控的信息。 之前,即使配置了健康监控,此信息也始终为 null。

  • 修复了 amphora-driver 中带有 ALPN 协议的池上的 HTTP/HTTPS 健康监控的错误。 haproxy 发送的健康检查被后端服务器标记为错误请求。 更新了 haproxy 配置,以便健康检查也使用 ALPN。

  • 修复了数据库中断期间负载均衡器卡在 PENDING_* 状态的问题。现在,当 Octavia 中的任务失败时,它会重试更新负载均衡器的 provisioning_status,直到数据库恢复(或在非常长的超时后放弃 - 大约 2 小时 45 分钟)

  • 修复了在使用双栈(IPv4 和 IPv6)负载均衡器中的 UDP 监听器时出现的问题,UDP 需要的一些 masquerade 规则未正确设置在成员接口上。

  • 修复了一个错误,当在配置文件的 [neutron] 部分使用弃用的设置 (endpoint, endpoint_type, ca_certificates_file) 时。连接到 neutron 服务可能会使用 [service_auth] 部分的一些设置或使用未定义的设置。

  • 修复了成员批量更新 API 调用中的竞争条件,传递到 Octavia worker 服务的的数据在快速发送连续 API 调用时可能不正确。然后负载均衡器卡在 PENDING_UPDATE provisioning_status 中。

  • 修复了在故障转移期间 amphora 无法访问时启动 VRRP 服务时超时过长的问题。在故障转移期间应使用更短的特定超时时间。

  • 修复了 amphora-driver 中的 TLS-HELLO 健康监控。

  • 减少 ACTIVE_STANDBY 负载均衡器的故障转移持续时间。在故障转移期间可能会尝试多次更新无法访问的 amphora,现在如果 amphora 在第一次更新时无法访问,则会跳过其他更新。

  • 减少当两个 amphora 都无法访问时 ACTIVE_STANDBY 负载均衡器的故障转移持续时间。

其他说明

  • Amphora 镜像现在默认使用 nftables 构建。

  • 为 Octavia 在 noop 模式 / 使用 noop 驱动程序运行时添加假的 Amphora 统计信息。

  • 添加了 Noop 证书管理器。 现在,任何使用 noop 驱动程序的 Octavia 证书操作都将更快(因为它们不会被验证)。