是否有可能拥有一个可以在 Kubernetes 的不同工作节点中存在的应用程序的两个 pod/实例之间共享的集中存储/卷?
所以解释我的情况:
我有一个带有 2 个工作节点的 Kubernetes 集群。在其中的每一个中,我都有 1 个应用程序 X 实例正在运行。这意味着我有 2 个应用程序 X 实例完全同时运行。
两个实例都订阅主题 topicX,该主题有 2 个分区,并且是 Apache Kafka 中名为 groupX 的消费者组的一部分。
据我了解,消息负载将在分区之间分配,但也会在消费者组中的消费者之间分配。到目前为止一切顺利,对吧?
所以对于我的问题:
在我的整个解决方案中,我有一个层次结构划分,具有国家和 ID 的唯一约束。country 和 ID 的每个组合都有一个 pickle 模型(python 机器学习模型),该模型存储在应用程序访问的目录中。对于国家和 ID 的每种组合,我每分钟会收到一条消息。
目前我有 2 个国家,所以为了能够正确扩展,我想在应用 X 的两个实例之间分配负载,每个实例处理自己的国家。
问题在于,使用 Kafka,可以在不同实例之间平衡消息,并且要在不知道消息属于哪个国家/地区的情况下访问每个实例中的泡菜文件,我必须在两个实例中存储泡菜文件。
有没有办法解决这个问题?我宁愿让设置尽可能简单,以便以后轻松扩展和添加第三、第四和第五个国家/地区。
请记住,这是解释问题的一种过于简化的方式。实例的数量实际上要高得多,等等。