使用环境:AWS、Docker桌面
现有镜像:gridgain/community:8.8.27-openjdk11-slim
新镜像:gridgain/community:8.8.34-openjdk17-slim
两个环境 GirdGain 集群(3 个节点)都在启用持久性的情况下运行。尝试使用 kubectl apply 命令将 GridGain 社区版版本从 8.8.27 升级到 8.8.34。
在本地docker桌面,升级没有任何问题。
在 AWS k8s 中执行 kubectl 命令时,其中一个 gridgain pod 被终止,并使用新的 gridgain 映像创建了新的 pod。节点因以下异常而无法启动,并循环重新启动。
Caused by: class org.apache.ignite.spi.IgniteSpiException: Local node and remote node have different version numbers (node will not join, Ignite does not support rolling updates, so versions must be exactly the same) [locBuildVer=8.8.27, rmtBuildVer=8.8.34, locNodeAddrs=[gridgain-cluster-1.gridgain-service.or.svc.cluster.local/0:0:0:0:0:0:0:1%lo, /127.0.0.1], rmtNodeAddrs=[gridgain-cluster-2.gridgain-service.or.svc.cluster.local/0:0:0:0:0:0:0:1%lo, /127.0.0.1], locNodeId=7fa4..., rmtNodeId=a41d...]
停用 gridgain 集群并尝试,但失败并出现同样的异常。
如何在不丢失持久数据的情况下执行网格增益升级?
除非启用滚动升级功能,否则您无法在同一集群中使用不同的 GridGain 版本运行多个节点,该功能在 GridGain 企业版和旗舰版中可用。
如果您在 AWS 中启用了 Ignite Persistence 并正确配置持久卷,则需要执行以下步骤来升级: