负载均衡服务升级指南

本文档概述了在从 OpenStack 早期版本升级负载均衡服务时,操作员应参考的步骤和注意事项。

规划升级

在开始升级过程之前,操作员应注意以下几点

  • 仔细阅读发行说明,特别是升级部分。

  • 仅支持在连续发行版之间进行升级。例如,从 Pike 升级到 Queens 受支持,但从 Pike 升级到 Rocky 不受支持。

  • 预计每个负载均衡提供程序都会提供自己的升级文档。请参考它以获取升级说明。

  • 负载均衡服务构建在其他 OpenStack 服务之上,例如 Compute、Networking、Image 和 Identity。在测试环境中,升级负载均衡服务并验证其是否按预期工作。例如,一个好的指标是 Octavia Tempest 测试 <https://opendev.org/openstack/octavia-tempest-plugin> 的成功运行。

冷升级

在冷升级(也称为离线升级和非滚动升级)中,负载均衡服务不可用,因为必须关闭所有控制平面服务。在升级过程中不应导致数据平面中断。对于负载均衡服务而言,这意味着没有停机时间,也不需要重新配置服务管理的资源(例如负载均衡器、监听器、池和成员)。

  1. 运行 octavia-status upgrade check 命令以验证 Octavia 是否已准备好进行升级。

  2. 优雅地停止所有 Octavia 进程。我们建议按此顺序:Housekeeping、Health manager、API、Worker。

  3. 可选:备份数据库。

  4. 将所有 Octavia 控制平面节点升级到下一个发行版。请记住也升级库依赖项(例如 octavia-lib)。如果从发行版软件包升级 Octavia,则预计您的系统软件包管理器会自动处理此操作。

  5. 验证所有配置选项名称是否已更新为最新的 Octavia 版本。例如,请特别注意已弃用的配置。

  6. 从任何 Octavia 节点运行 octavia-db-manage upgrade head 以升级数据库并运行相应的数据库迁移。

  7. 启动所有 Octavia 进程。

  8. 构建新镜像并将其上传到 Image 服务。不要忘记标记镜像。我们建议经常更新镜像,以包含已安装软件(操作系统、amphora 代理及其依赖项)的最新错误修复和安全问题。

Amphorae 升级

如果运行中的 amphora 代理(旧版本)和 Octavia 服务(新版本)之间存在 API 不兼容性,则可能需要升级 Amphorae。Octavia 将自动通过故障转移 amphorae 来恢复,因此新的 amphora 实例将在最新的 amphora 代理代码上运行。在这种情况下,缺点是在故障转移期间数据平面停机。API 中断是一种非常罕见的情况,如果发生这种情况,将在发行说明中突出显示。

升级测试

Grenade 是一个 OpenStack 测试框架项目,用于验证发行版之间的升级场景。它使用 DevStack 初始执行基本的 OpenStack 安装,然后升级到目标版本。

Octavia 具有 Grenade 插件 和一个 CI 门控作业,用于验证启用 Octavia 的 OpenStack 部署的冷升级。该插件创建负载均衡资源,并验证资源在升级期间和升级后是否仍然有效。