Rocky 系列发布说明

3.2.2-5

升级说明

  • 升级后,用户将不再能够使用他们看不到或在负载均衡器上“show”的网络资源。可以通过将配置文件设置 “allow_invisible_reourece_usage” 设置为 True 来恢复此行为。

安全问题

  • 以前,如果用户知道或可以猜到网络资源的 UUID,他们可以使用该 UUID 使用该 UUID 创建负载均衡器资源。现在,用户必须具有查看或“show”资源的权限才能将其与负载均衡器一起使用。这将是新的默认设置,但可以通过将配置文件设置 “allow_invisible_resource_usage” 设置为 True 来禁用此行为。此问题属于“C1 类”安全问题,因为用户需要有效的 UUID。

3.2.2

错误修复

  • 添加了监听器和池协议验证。池和监听器不能任意组合。我们需要在协议方面进行一些约束。

  • 修复了一个问题,即 amphora 镜像创建工具会签出主 amphora-agent 代码和主上界限。

  • 修复了一个错误,该错误可能在执行控制器工作程序的正常关闭时中断资源创建,并使资源(例如 amphorae)处于 BOOTING 状态。如果 Octavia 流的持续时间大于 ‘graceful_shutdown_timeout’ 配置值,则停止 Octavia 工作程序仍然可能中断资源的创建。

3.2.1

升级说明

  • 需要新的 amphora 镜像来修复潜在的 certs-ramfs 竞争条件。

安全问题

  • certs-ramfs 和 amphora 代理之间的竞争条件可能导致租户 TLS 内容存储在 amphora 文件系统上,而不是加密的 RAM 文件系统中。

错误修复

  • 修复了 certs-ramfs 和 amphora 代理服务之间的潜在竞争条件。

  • 修复了在多子网网络中选择 vip-subnet-id 的问题,方法是检查子网的 IP 可用性,确保在指定 vip-network-id 创建负载均衡器时有足够的 IP 可用。

  • 修复了一个错误,该错误可能在执行控制器工作程序的正常关闭时中断资源创建,并使资源处于 PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE 供应状态。如果 Octavia 流的持续时间大于 ‘graceful_shutdown_timeout’ 配置值,则停止 Octavia 工作程序仍然可能中断资源的创建。

3.2.0

已知问题

  • 当负载均衡器具有 UDP 监听器时更新时,监听器服务将重新启动,这会导致流量在短时间内中断。这是由 keepalived 错误(https://github.com/acassen/keepalived/issues/1163)引起的,该错误已在 keepalived 2.0.14 中修复,但此软件包尚未由发行版提供。

升级说明

  • 为了在未附加池的情况下启用 UDP 监听器监控,需要更新 amphora 镜像,并使具有 UDP 监听器的负载均衡器故障转移到新镜像。

安全问题

  • 正确地要求双向证书认证才能连接到 amphora agent API (CVE-2019-17134)。

错误修复

  • 修复了健康管理器在尝试获取数据库连接时报告 UnboundLocalError 的问题。

  • 修复了在测试中发现的 allocate_and_associate 中的潜在 DB 死锁。

  • 修复了一个问题,如果无法将基础 (VRRP) 端口附加到 amphora 实例,则回滚不会在 neutron 中清理端口。

  • 为 UDP 成员添加了 monitor_address 和 monitor_port 属性的支持。 以前,monitor_address 和 monitor_port 被忽略,并且地址和 protocol_port 属性被用作监视地址和端口。

  • 修复了使用 UDP 协议的池和成员的 operating_status。 operating_status 值现在与非 UDP 负载均衡器的值一致。

  • 修复了一个错误,该错误阻止在删除健康监视器资源后将 UDP 服务器恢复为池的成员。

  • 配置选项 ‘server_certs_key_passphrase’ 的密码用作 Octavia 中的 Fernet 密钥,因此必须是 32 个、base64(url) 兼容的字符长。 Octavia 现在将验证密码的长度和格式。

  • 在 UDP 负载均衡器中添加具有与 VIP IP 协议版本不同的 IP 协议版本的成员导致 amphora 崩溃。 现在,amphora 驱动程序中的一个验证步骤可以防止在 UDP 负载均衡器中混合 IP 协议版本。

3.1.1

错误修复

  • 修复了 CentOS amphorae 在 Active/Standby 模式下重复的 IPv6 地址问题。

  • 修复了一个问题,即 listener API 会接受必须具有有效值的字段(例如 connection-limit)的 null/None 值。 现在,当对这些字段中的一个字段进行 PUT 调用并将 null 作为值时,API 将将字段值重置为字段默认值。

3.1.0

升级说明

  • 要修复活动/待机负载均衡器或单拓扑负载均衡器上 VIP 子网上的成员的问题,需要更新 amphora 镜像。

关键问题

  • 修复了一个错误,即活动/待机负载均衡器和 VIP 子网上的单拓扑负载均衡器可能失败。需要更新镜像才能修复此错误。

安全问题

  • 作为修复 CVE-2018-16856 的后续措施,Octavia 现在将在其内部工作流程中加密用于与 amphorae 安全通信的证书和密钥。 Octavia 过去会排除为特定任务和流程明确命名的调试级别日志打印,这种方法容易受到代码更改的影响。

错误修复

  • 修复了在具有 IPv6 子网的网络上创建成员的问题。

  • 修复了创建完全填充的负载均衡器,该负载均衡器没有 REDIRECT_POOL 类型的 L7 策略和 default_pool 字段的问题。

  • 修复了一个性能问题,即 Housekeeping 服务可能会随着创建和/或标记为 DELETED 的 amphorae 和负载均衡器的增加而显著且逐步地利用 CPU。

  • 修复了处于 ERROR 供应状态时无法故障转移的负载均衡器。

  • 修复了一个导致打开过多的 RabbitMQ 连接的错误。

  • 修复了在基于 CentOS 的 amphorae 上插入 VIP 时出现的错误。

  • 修复了一个问题,即在 QoS 扩展禁用时尝试在 VIP 上设置 QoS 策略会导致负载均衡器进入 ERROR 状态。 如果 QoS 扩展被禁用,API 现在将向用户返回 HTTP 400。

  • 修复了一个问题,即在启用 QoS 扩展时在 VIP 上设置 QoS 策略会导致负载均衡器进入 ERROR 状态。

  • Octavia 将不再在负载均衡资源不再需要访问它们时自动撤销对密钥的访问权限。 此功能将来可能会添加。

其他说明

  • 在证书部分添加了一个名为 server_certs_key_passphrase 的新选项。 默认值从名为 TLS_PASS_AMPS_DEFAULT 的环境变量复制。 如果未设置 TLS_PASS_AMPS_DEFAULT,并且操作员未直接填写任何其他值,则将使用“insecure-key-do-not-use-this-key”。

3.0.2

升级说明

  • 为了解决活动/待机负载均衡器上的 IPv6 VIP 问题,需要构建一个新的 amphora 镜像。

安全问题

  • 修复了 Amphora 证书的调试级别日志记录,用于诸如“octavia-create-amp-for-lb-subflow-octavia-generate-serverpem”(由负载均衡器故障转移触发)和“octavia-create-amp-for-lb-subflow-octavia-update-cert-expiration”之类的流程。

错误修复

  • 修复了使用 IPv6 VIP 地址配置为活动/待机拓扑的负载均衡器的问题。 此修复需要构建一个新的 amphora 镜像。

  • 添加了新的参数来指定更新 amphora 健康状况和统计信息的线程数。

  • 这将自动删除 Octavia 检测到的 nova 僵尸 amphora。 僵尸 amphora 是报告健康信息的 amphorae,但在 Octavia 的数据库中显示为 DELETED 的 amphorae。

其他说明

  • 处理僵尸 amphora 已经很昂贵,这又增加了一个步骤,可能会增加 Octavia 健康管理器的负载,尤其是在 Nova API 速度较慢期间。

3.0.1

错误修复

  • 修复了在使用“list”API 时 Octavia v2 API 中的性能回归。

  • 修复了一个问题,即 Octavia 无法访问数据库(所有数据库实例都已关闭)导致所有正在运行的负载均衡器关闭。 健康管理器现在对数据库中断更具弹性。

3.0.0

新特性

  • 为监听器和池添加了 UDP 协议支持。

  • 添加了一种名为 UDP-CONNECT 的健康监控类型,该类型执行基本的 UDP 端口连接。

  • 监听器有四个新的超时设置

    • timeout_client_data: 前端客户端不活动超时

    • timeout_member_connect: 后端成员连接超时

    • timeout_member_data: 后端成员不活动超时

    • timeout_tcp_inspect: 等待 TCP 数据包进行内容检查的时间

    所有这些字段的值应以毫秒为单位。

  • 成员有一个新的布尔选项 backup。 如果设置为 true,则在所有非备份成员离线之前,成员将不会接收流量。 一旦所有非备份成员都离线,流量将开始在备份成员之间进行负载均衡。

  • Octavia 现在能够代表用户自动设置 Barbican ACL。 这使得用户能够创建 TLS 终止监听器,而无需将 Octavia keystone 用户 ID 添加到 ACL 列表中。 Octavia 也会在负载均衡资源不再需要访问它们时自动撤销对密钥的访问权限。

  • 为 Red Hat 系列添加 sos 元素到 amphora 镜像。

  • 添加了对监听器 X-Forwarded-Proto 标头插入的支持。

  • Octavia 现在支持提供程序驱动程序。 这允许第三方负载均衡驱动程序与 Octavia v2 API 集成。 用户在创建负载均衡器时选择“提供程序”。

  • 现在有一个 API 可用于列出启用的提供程序驱动程序。

  • 云部署者可以在 octavia.conf 中设置 api_settings.allow_ping_health_monitors = False 以禁用创建 PING 健康监控器的功能。

  • 新的选项 [haproxy_amphora]/connection_logging 如果设置为 False 将禁用连接数据记录,这可以提高负载均衡器的性能并可能有助于合规性。

  • 现在可以通过向父进程发送“HUP”信号来更新 Octavia 控制平面进程的运行配置。 注意:配置项必须支持变异。

  • Amphora API 现在返回字段 image_id,该字段是用于启动 amphora 的 glance 镜像的 ID。

已知问题

升级说明

  • UDP 协议支持需要更新 amphora 镜像以支持 UDP 协议统计报告和 UDP-CONNECT 健康监控。

  • 包含提供程序驱动程序支持的两个新选项。 enabled_provider_drivers 选项默认为“amphora, octavia”,以支持现有的 Octavia 负载均衡器。 default_provider_driver 选项默认为“amphora”,用于所有在创建时未指定提供程序的新的负载均衡器。 这些默认值应涵盖大多数现有部署。

  • 提供程序驱动程序支持需要数据库迁移并遵循 Octavia 标准的滚动升级程序;数据库迁移后进行滚动控制平面升级。 没有指定提供程序的现有负载均衡器将在数据库迁移期间被分配“amphora”。

  • python3 上的 hmac.compare_digest 的修复程序要求您在更新 amphora 镜像之前升级健康管理器。 健康管理器与旧的 amphora 镜像兼容,但旧的控制器将拒绝来自具有此修复程序的镜像的健康心跳。

弃用说明

  • 名为 health_monitorload_balancer 的配额对象已分别重命名为 healthmonitorloadbalancer。 旧名称已弃用,将在 T 周期中删除。

  • Octavia API 处理程序现已弃用,并由新的提供程序驱动程序支持取代。 Octavia API 处理程序将保留在代码中以支持 Octavia v1 API(用于 neutron-lbaas)。

  • 提供程序“octavia”已被弃用,以支持“amphora”,以明确支持负载均衡器的提供程序驱动程序。

  • 最终完全删除用户组选项,因为它在 Pike 中已被弃用。

安全问题

  • 禁用连接日志记录可能会使审计系统以何种 IP 地址进行未经授权的访问以及哪些资产受到损害变得更加困难。

  • 添加了一个配置选项“reserved_ips”,允许操作员阻止地址用于负载均衡器成员。 默认设置会阻止 nova 元数据服务地址。

错误修复

  • 修复了 v2 API 在 amphora_expiry_age 超时过期之前返回“DELETED”记录的问题。 API 现在将在请求删除的对象时立即返回 404 HTTP 状态代码。 API 版本已提升到 v2.1 以反映此更改。

  • 修复了一个问题,即如果同时发生多个 amphora 故障,故障转移可能无法完全完成,从而使负载均衡器处于 ERROR 状态。

  • 修复了一个问题,即 VIP 返回流量始终通过网关路由,即使它是本地流量,如果定义了网关也是如此。

  • 修复了一个问题,即未指定的或无限的监听器连接限制设置在使用 amphora/octavia 驱动程序时会导致 2000 的连接限制。 这是某些 HAproxy 包中编译的连接限制。

  • 修复了 python3 上的 hmac.compare_digest 问题,该问题可能导致健康管理器出现“计算的 hmac 不等于 msg hmac”错误。

  • 在池上创建没有健康监控器的成员有时会在配置序列期间短暂地将其运行状态从 NO_MONITOR 更新为 OFFLINE 并返回到 NO_MONITOR。 此闪烁将不再发生。

  • 通过 admin_state_up=False 禁用的成员现在在 amphora 上的 HAProxy 配置中呈现为 disabled。 以前它们根本没有呈现。 这意味着禁用的成员将出现在健康消息中,并且状态将正确更改为 OFFLINE。

  • 修复了 neutron-lbaas LBaaS v2 API 兼容性问题,在通过“/statuses”请求负载均衡器状态树时。

其他说明

  • 如果成员服务器上未启用 ICMP unreachable 或被安全规则阻止,则 UDP-CONNECT 类型的健康监控可能无法正常工作。 成员服务器可能会被标记为运行状态 ONLINE,而实际上它已关闭。

  • 已向文档中添加提供程序驱动程序开发人员指南,以帮助驱动程序提供程序。

  • 已添加操作员文档页面,以列出已知的 Octavia 提供程序驱动程序并提供指向这些驱动程序的链接。 非参考驱动程序,即非“amphora”驱动程序的驱动程序,将位于 octavia 代码存储库之外,但可以通过定义在提供程序驱动程序开发人员指南中定义的接口动态加载。

  • 安装的驱动程序需要在 Octavia 配置文件中启用才能向用户公开驱动程序。

  • 作为 GDPR 合规性的一部分,连接日志可能被视为个人数据,可能需要遵循特定的数据保留策略。 禁用连接日志记录可能会通过防止此类数据的输出来帮助使 Octavia 符合要求。 始终在进行更改之前咨询合规性专家。