K8S上出色的核心部署是否需要持续存储



我想完成catchup完成的K8S上的恒星核心。我正在使用此Docker Image satoshipay/stellar-core

在Docker图像文档中,用于存储有关DB的一些信息的数据/数据。而且我已经看到,Helm模板正在使用持续的音量并将其安装在/数据中。

我想知道如果我使用部署而不是状态集,然后重新启动吊舱,更新其docker版本或删除它会发生什么?它会再次初始化DB吗?

恒星核心还需要额外的存储空间才能接收吗?

statefulset vs部署

状态填充"为这些豆荚的订购和独特性提供了保证"。如果您的申请需要以特定的顺序提起,请使用状态填充。

存储

绝对利用数据库的持续卷。来自K8S文档

容器中的盘文件是短暂的

由于您似乎正在部署某种区块链应用程序,因此可能会导致启动

的重大延迟

exployment 中,您指定了由所有POD副本共享的 PersistentVolumeClaim 。换句话说,共享卷。

备用存储显然必须具有 readwritemany readonlymany accessemode如果您有一个以上的副本荚。

statefulset 您指定 volumeClaimTemplates ,以便每个复制pod获得与之关联的唯一 PersistentVolumeClaim 。换句话说,没有共享卷。

statefulset 对于在群集中运行事物,例如hadoop群集,mysql cluster,每个节点都有自己的存储。

因此,在您的情况下,拥有更多的隔离(无共享卷(最好具有基于状态的解决方案。

如果您使用基于部署的解决方案(重新启动POD,更新其Docker版本或删除它(,您的数据库将再次初始化。

关于接收:

通常,在Docker容器中不建议运行CATCHUP_COMPLETE=true,因为默认情况下的资源有限(如果您真的想这样做,请确保使他们访问更多资源:CPU,内存和磁盘空间(。

最新更新