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=rocky和OCTAVIA_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 证书操作都将更快(因为它们不会被验证)。