2023.2 系列发布说明

2023.2-eol

错误修复

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

13.0.1

错误修复

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

  • 修复了故障转移回滚时,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 按照预期返回资源,而不是报错。

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

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

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

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

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

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

  • 在批量成员 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 地址后更快地可访问。

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

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

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

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

  • 修复了在使用双栈(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 健康监控。

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

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

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

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

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

其他说明

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

13.0.0

新特性

  • 添加了对 TLS 终止监听器的 HTTP 严格传输安全 (HSTS) 的支持。 创建和更新监听器的 API 已通过可选字段 hsts_max_agehsts_include_subdomainshsts_preload 扩展。 默认情况下,此功能已禁用。 为了激活此功能,需要设置 hsts_max_age 选项。

升级说明

  • 一个修复 VIP 端口由于缺少 IP 规则而无法访问的问题的补丁,需要更新 Amphora 镜像。

  • 移除了 amphorav1 提供程序。 建议仍然使用它的用户切换到默认的 amphora 提供程序,它是 amphorav2 提供程序的别名。

弃用说明

  • 在未来的版本中,Octavia 将不再从 [service_auth] 获取 Neutron 的身份验证设置作为后备。 它将要求它们位于 [neutron] 部分。 endpoint 选项现在已被弃用,并替换为 endpoint_override。 同样,endpoint_type 选项的新名称现在是 valid_interfacesca_certificates_file 选项的新名称现在是 cafile。 请注意,[service_auth] 设置仍将用于 Nova 和 Glance 等其他服务。

  • 移除了已弃用的 amphorav1 提供程序。 默认提供程序 amphora 仍然是 amphorav2 提供程序的别名。

错误修复

  • 修复了删除负载均衡器的最后一个监听器可能会触发故障转移的问题。

  • allowed_cidr 参数的验证仅考虑了主 VIP 的 IP 版本。 仅匹配附加 VIP 版本 CIDR 被拒绝。 这已得到修复,CIDR 现在与所有 VIP 的 IP 版本进行匹配。

  • 修复了在添加或删除成员时,Octavia 可能会通过添加或删除其他子网重新配置 amphora 的管理端口的问题。 Octavia 在这些任务期间不再更新管理端口。

  • 修复了成员批量更新 API 调用中的潜在竞争条件,负载均衡器可能未被正确锁定。

  • 修复了 amphora-agent 中的一个错误,当 LB 同时具有 IPv4 和 IPv6 VIP,并且具有 UDP 池时,如果只有 IPv4 成员或只有 IPv6 成员,则会触发异常。

  • 修复了禁用监听器时 haproxy 中的全局并发连接数。 禁用的监听器的连接限制用于计算此值,禁用的监听器现在将被跳过。

  • 修复了一个未将所有活动负载均衡器 Health Monitors 在填充的 LB 单个创建调用中设置为 ONLINE 的错误。

  • 修复了一个由于在 Amphora 中删除某些 IP 规则而可能导致 VIP 端口无法访问的错误。只有在从不是 VIP 子网但作为成员子网连接的子网发送请求时才会触发此错误。

  • 修复了一个错误,该错误阻止了在 controller_ip_port_list 中用方括号括起来的 IPv6 地址设置健康监控的 operating_status 为 ONLINE。

  • 修复了基于源 IP 的会话持久性对 IPv6 负载均衡器不起作用的问题。 会话持久性现在可以正确地用于 IPv4、IPv6 和双栈负载均衡器。

  • 修复了一个潜在的错误,在从新网络连接成员的同时删除另一个成员并断开其网络时,Octavia 可能会尝试将新网络连接到新接口,但接口名称已存在。此修复需要更新 Amphora 镜像。

  • 修复了 octavia-status 中报告的在使用默认 amphora 别名时,amphorav2 驱动程序的错误状态的问题。

  • 修复了一个未在创建完全填充的负载均衡器时将未连接池的 provisioning_status 设置为正确的错误。

  • 修复了基于 TCP 的 health-monitor 在 UDP 池上的 SELinux 问题,某些特定的监控端口被 SELinux 拒绝。Amphora 镜像现在启用了 keepalived_connect_any SELinux 布尔值,允许连接到任何端口。

  • 修复了带有 IPv4 和 IPv6 VIP 的负载均衡器中 UDP 池的成员状态错误。 一些成员可能被 Amphora 错误地报告为 DOWN。

  • 修复了与配额减少错误相关的日志消息的格式。 它们显示了无用的信息,现在它们报告了发生错误的正确资源类型。

  • 修复了 Amphora VM 重新启动后 nf_conntrack* 选项值丢失的问题。 更多详情 Story 2010795

  • 当连接新的成员子网时,amphora 会发送新分配的 IP 的 IP 广告。它允许同一 L2 网络上的服务器刷新先前分配的 IP 地址的 ARP 条目。

其他说明

  • 替换了使用已弃用的 python-neutronclient 库的代码,改为使用 openstacksdk,并删除了 python-neutronclient 作为依赖项。