作者:诺汐衹湜忲傻 | 来源:互联网 | 2022-12-02 17:06
是否有可能在Kubernetes的不同工作程序节点中存在的应用程序的两个Pod /实例之间共享一个集中式存储/卷?
所以解释一下我的情况:
我有一个带有2个工作节点的Kubernetes集群。在每一个中,我都有1个正在运行的App X实例。这意味着我有两个App X实例完全同时运行。
这两个实例都订阅了具有两个分区的topicX主题,它们是Apache Kafka中名为groupX的使用者组的一部分。
据我了解,消息负载将在分区之间分配,但在消费者组中的消费者之间也会分配。到目前为止一切顺利,对吗?
所以对我的问题:
在我的整个解决方案中,我有一个按国家和ID唯一约束的层次结构划分。国家和ID的每种组合都有一个pickle模型(python机器学习模型),该模型存储在应用程序访问的目录中。对于一个国家/地区和ID的每种组合,我每分钟都会收到一条消息。
目前,我有2个国家/地区,因此,为了能够进行适当的扩展,我想在两个应用X实例之间分配负载,每个实例处理自己的国家/地区。
问题在于,使用Kafka可以在不同实例之间平衡消息,并且在不知道消息属于哪个国家的情况下访问每个实例中的pickle文件时,我必须在两个实例中存储pickle文件。
有办法解决吗?我宁愿使设置尽可能简单,以便于扩展和稍后添加第三,第四和第五个国家。
请记住,这是解释问题的过于简化的方法。实际上,实例数要多得多。
1> Rico..:
是。如果您查看此表,则可能有任何PV
(物理卷)支持的内容ReadWriteMany
都将帮助您为Kafka工人完成相同的数据存储。因此,这些总结如下:
Azure文件
头文件
Glusterfs
兆字节
NFS
VsphereVolume-(在吊舱并置时有效)
Portworx卷
我认为,NFS是最容易实现的。请注意,Azurefile,Quobyte和Portworx是付费解决方案。