第 6 章 升级基于 Operator 的代理部署
升级基于 Operator 的代理部署涉及升级 Operator 和代理容器镜像。
6.1. 开始前
本节介绍了在为基于 Operator 的代理部署升级 Operator 和代理容器镜像前的一些重要事项。
在两个独立步骤中升级 Operator 和代理镜像(从 Operator 升级开始),以确保升级平稳运行。
要将代理镜像升级与 Operator 升级分开,您必须防止升级的 Operator 自动将代理容器镜像升级到新 Operator 支持的最新版本。您可以通过在 CR 中设置
version
属性来防止这个自动升级。例如,您可以将version
属性的值设置为当前部署的代理镜像版本,该镜像显示在 CR 的status
部分中。如需更多信息,请参阅 第 6.6.1 节 “使用版本号限制镜像的自动升级”。- 使用 OpenShift 命令行界面(CLI)或 OperatorHub 升级 Operator 需要 OpenShift 集群的集群管理员特权。
如果您最初使用 CLI 安装 Operator,则还应使用 CLI 升级 Operator。如果您最初使用 OperatorHub 安装 Operator (即,它出现在 OpenShift Container Platform Web 控制台中项目的
下),您还应使用 OperatorHub 升级 Operator。有关这些升级方法的更多信息,请参阅: 如果
redeliveryDelayMultiplier
和redeliveryCollisionAvoidanceFactor
属性在 7.8.x 或 7.9.x 部署的主代理 CR 中配置,则新 Operator 在升级到 7.10.x 或更高版本后无法协调任何 CR。协调失败,因为这两个属性的数据类型从 float 改为 7.10.x 中的字符串。您可以通过从
spec.deploymentPlan.addressSettings.addressSetting
属性中删除redeliveryDelayMultiplier
和redeliveryCollisionAvoidanceFactor
属性来解决这个问题。然后,在brokerProperties
属性下配置属性。例如:spec: ... brokerProperties: - "addressSettings.#.redeliveryMultiplier=2.1" - "addressSettings.#.redeliveryCollisionAvoidanceFactor=1.2"
注意在
brokerProperties
属性下,使用redeliveryMultiplier
属性名称,而不是您删除的redeliveryDelayMultiplier
属性名称。