Persist a Single Value Kubernetes & Golang

我有一个在Kubernetes中运行的Golang应用程序,它需要在其内存之外持久保存单个字符串值。换句话说,如果重新部署应用程序或重新启动 Pod ,则该值不会丢失。我还需要能够定期从golang阅读和写入此内容。

什么是做到这一点的好方法?

到目前为止,我已经想到了:

  1. ConfigMap:这是否被视为滥用配置映射,它们甚至是持久的?

  2. PersistentVolume:这似乎很合适,但是我可以用这个值或文件存储一个值,而不是设置整个数据库吗?

谢谢!


Smart猫小萌
浏览 96回答 1
1回答

DIEA

在 Kubernetes 中,您可以使用以下选项将数据存储在 POD 外部(或者实际上在 POD 之间共享数据)。持久卷:共享文件系统,将数据作为文件共享ConfigMap/Secret:基于Kubernetes的共享对象,你使用Kubernetes API来存储数据;Kubernetes在引擎盖下使用etcd,共识算法应用于每次数据变化,因此数据的大小需要很小,性能不是很好第三方工具:Hazelcast,Redis,TiKV;您使用他们的客户端(或 REST API)来存储您的值我不确定你的确切用例,但我会从第三方软件开始。它们使用 Helm Chart of Operator 进行部署非常简单。另一个选项是“持久卷”。ConfigMap/Secret,我会把它当作最后的手段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go