我有以下场景:
- 具有1个副本的StatefulSet
- 使用helm作为应用程序管理器,更新模板部分并在相同的操作中扩展它
- 操作顺序如下:
- 缩放到3
- 更新名称为0的复制副本
因为我无法控制第一次更新和更新后的规模,我正在丢失数据,因为在新的statefulset模板中有一个特定的逻辑。
有没有办法控制这些操作的顺序?
有问题的服务是Redis,我们正试图在不丢失数据的情况下从独立模式(1个副本(过渡到复制(HA(。
目前,我使用helm预安装作业解决了这个问题,该作业基本上将sts扩展到零,之后helm将进行更新。
我不是Redis专家,但我认为下面的解决方案应该会对您有所帮助。
我会尝试在现有实例(A(旁边安装另一个Redis HA实例(B(,将A的PV快照作为B的数据源。这样可以避免丢失您的数据。有关更多信息,您可以阅读有关卷快照的更多信息。
另请参阅此相关问题。