在 Kubernetes 中的工作节点之间共享 storage/volume?
Share storage/volume between worker nodes in Kubernetes?
是否可以有一个集中式 storage/volume 可以在 Kubernetes 不同工作节点中存在的两个 pods/instances 应用程序之间共享?
所以解释一下我的情况:
我有一个带有 2 个工作节点的 Kubernetes 集群。在每一个中,我都有 1 个应用程序实例 X 运行。这意味着我同时拥有 2 个应用程序 X 运行 的实例。
两个实例都订阅主题 topicX,它有 2 个分区,并且是 Apache Kafka 中名为 groupX 的消费者组的一部分。
据我了解,消息负载将在分区之间分配,但也会在消费者组中的消费者之间分配。到目前为止一切顺利,对吧?
所以我的问题是:
在我的整个解决方案中,我有一个层次结构划分,具有按国家和 ID 的唯一约束。每个国家和 ID 的组合都有一个 pickle 模型(python 机器学习模型),它存储在应用程序访问的目录中。对于国家和 ID 的每种组合,我每分钟收到一条消息。
目前我有 2 个国家/地区,因此为了能够适当扩展,我想在应用程序 X 的两个实例之间分配负载,每个实例处理自己的国家/地区。
问题是使用 Kafka 可以在不同实例之间平衡消息,并且在不知道消息属于哪个国家/地区的情况下访问每个实例中的 pickle-files,我必须存储两种情况下的泡菜文件。
有办法解决吗?我宁愿让设置尽可能简单,以便以后轻松扩展和添加第三、第四和第五个国家/地区。
请记住,这是一种过于简化的解释问题的方式。现实中的实例数量要多得多等
是的。如果您查看 this table 任何支持 ReadWriteMany
的 PV
(物理卷),这可能会帮助您为 Kafka 工作人员实现相同的数据存储。所以总结这些:
- Azure 文件
- CephFS
- Glusterfs
- 量子
- NFS
- VsphereVolume -(在 pods 并置时有效)
- Portworx 卷
在我看来,NFS 是最容易实现的。请注意,Azurefile、Quobyte 和 Portworx 是付费解决方案。
是否可以有一个集中式 storage/volume 可以在 Kubernetes 不同工作节点中存在的两个 pods/instances 应用程序之间共享?
所以解释一下我的情况:
我有一个带有 2 个工作节点的 Kubernetes 集群。在每一个中,我都有 1 个应用程序实例 X 运行。这意味着我同时拥有 2 个应用程序 X 运行 的实例。
两个实例都订阅主题 topicX,它有 2 个分区,并且是 Apache Kafka 中名为 groupX 的消费者组的一部分。
据我了解,消息负载将在分区之间分配,但也会在消费者组中的消费者之间分配。到目前为止一切顺利,对吧?
所以我的问题是:
在我的整个解决方案中,我有一个层次结构划分,具有按国家和 ID 的唯一约束。每个国家和 ID 的组合都有一个 pickle 模型(python 机器学习模型),它存储在应用程序访问的目录中。对于国家和 ID 的每种组合,我每分钟收到一条消息。
目前我有 2 个国家/地区,因此为了能够适当扩展,我想在应用程序 X 的两个实例之间分配负载,每个实例处理自己的国家/地区。
问题是使用 Kafka 可以在不同实例之间平衡消息,并且在不知道消息属于哪个国家/地区的情况下访问每个实例中的 pickle-files,我必须存储两种情况下的泡菜文件。
有办法解决吗?我宁愿让设置尽可能简单,以便以后轻松扩展和添加第三、第四和第五个国家/地区。
请记住,这是一种过于简化的解释问题的方式。现实中的实例数量要多得多等
是的。如果您查看 this table 任何支持 ReadWriteMany
的 PV
(物理卷),这可能会帮助您为 Kafka 工作人员实现相同的数据存储。所以总结这些:
- Azure 文件
- CephFS
- Glusterfs
- 量子
- NFS
- VsphereVolume -(在 pods 并置时有效)
- Portworx 卷
在我看来,NFS 是最容易实现的。请注意,Azurefile、Quobyte 和 Portworx 是付费解决方案。