我想完成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,内存和磁盘空间(。