GridGain 升级失败并出现 IgniteSpiException

问题描述 投票:0回答:1

使用环境: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 集群并尝试,但失败并出现同样的异常。

如何在不丢失持久数据的情况下执行网格增益升级?

ignite gridgain
1个回答
0
投票

除非启用滚动升级功能,否则您无法在同一集群中使用不同的 GridGain 版本运行多个节点,该功能在 GridGain 企业版和旗舰版中可用。

如果您在 AWS 中启用了 Ignite Persistence 并正确配置持久卷,则需要执行以下步骤来升级:

  1. 通过将 StatefulSet 缩小到 0 来停止整个集群

  2. 更新docker镜像版本

  3. 通过将集群扩展到 3 个节点来启动集群

您应该期望在升级过程中观察到停机时间,因为如果没有滚动升级功能,则需要停止所有节点,但持久数据不会丢失,并且在集群启动后可用。

© www.soinside.com 2019 - 2024. All rights reserved.