跳到主要内容
版本:3.9.x

数据面滚动升级

目标控制面(Control Plane,CP)健康后,滚动升级会替换**数据面(Data Plane,DP)**节点。先添加并验证目标节点,再排空源节点;如果容量、健康检查、负载均衡、连接排空和回滚均配置正确,API 请求就能持续处理。

发布准备​

  1. 确认确切的源版本和目标版本。从此版本升级 LTS 时,请遵循从 3.9 LTS 升级到 3.10 LTS;对于其他版本,请在发布说明中或向 API7 支持团队确认该版本组合。
  2. 完成并验证目标 CP 升级。确认每个源 DP 都被允许临时连接,并且没有报告 Incompatible 或非预期的兼容性错误。
  3. 记录每个网关组的数据面部署的期望副本数和就绪副本数。预留足够容量,以便在排空源节点前添加目标节点。
  4. 验证负载均衡器健康检查、连接排空、就绪探针、流量监控和回滚路径。
  5. 保存源 DP 的 Helm values 文件或相应部署参数、部署清单、证书、镜像标签和不可变的升级前数据库备份。
  6. 从目标 CP 生成目标 DP 配置和证书。基于目标软件包默认配置,为相应安装方式(Docker 或 Kubernetes)构建新的部署参数或 values 文件,并固定确切的 api7/api7-ee-3-gateway 镜像。

发布目标数据面​

  1. 保持管理写入冻结。除非特定版本路径明确协调了相关变更,否则在仍有源 DP 运行时不要引入仅目标版本支持的配置。

  2. 部署一个独立于生产负载均衡器之外的目标 DP 作为灰度节点。

  3. 等待灰度节点报告 Healthy 和 Compatible,且没有兼容性错误。将代表性的公开和身份认证流量直接发送到该节点,并验证插件、上游、日志、指标和健康检查。

  4. 将生产发布配置为先增后排空的替换顺序:

    • 对于 Helm 或 Kubernetes,更新审查过的网关 Chart 和镜像 values。配置发布策略,使额外容量中的目标节点启动并就绪后,源 Pod 才能变为不可用。
    • 对于容器宿主机上的 DP,依据审查过的目标配置启动独立的目标容器。在目标容器通过验证并加入负载均衡器前,不要重启或移除对应的源容器。
  5. 向生产节点组添加一个目标节点,并等待其就绪、完成注册并通过流量检查。

  6. 将目标节点加入负载均衡器,观察响应码、延迟、日志、上游健康状态以及特定插件的指标。

  7. 只有目标替代节点通过验证后,才能排空并停止一个源节点。

  8. 重复添加、验证和排空操作,直至网关组中的每个节点都完成升级,然后继续处理其余网关组。

  9. 如果目标节点无法安全承载流量,请将其从负载均衡器中移除,并让流量返回保留的源节点。如果已经写入仅目标版本支持的配置,请先按照特定版本路径执行回滚,再使用源 DP。

完成发布​

确认每个生产 DP 都报告 Healthy 和 Compatible,且没有错误。运行特定版本路径要求的流量和观察检查;只有主发布通过验收后,才能移除灰度节点并恢复生产自动扩缩策略。

按照保留计划保存源制品和不可变备份。只有发布通过验收标准后,才能恢复通过控制台、Admin API、ADC 和自动化进行的写入。恢复未经协调的写入会结束基于备份的回滚窗口,因为恢复升级前备份会丢弃此后的所有写入。如果回滚方案必须在更晚的期限内保持可用,应继续冻结写入,或维持经过测试的协调流程,直到该期限结束。