Kubernetes:不同部署之间共享存储

问题描述 投票:0回答:1

我的系统由 2 个应用程序组成:

Application 1
Application 2
。从根本上讲,这些应用程序在从存储中读取\写入方面是完全同步的。

系统架构:

今天效果如何?

Application 1
正在从互联网下载文件并将其存储在 Google Cloud Storage 上。然后,将 URI 传递到共享队列。一旦
Application 2
准备就绪,它就会拉取队列消息并将 URI 下载到内存并继续处理。

我想做出什么改变?

我想用 Kubernetes 内置的另一个内部存储系统替换 Google Cloud Storage。由于我的应用程序完全同步,因此保证仅当

Application 2
已经完成写入时,
Application 1
才会从存储中读取。

您建议适配哪种类型的 Kubernetes 存储?如何实施?

kubernetes google-cloud-storage
1个回答
0
投票

Kubernetes 仅包含几种内置存储类型,通常无法同时从多个节点访问这些类型。

如果你看一下卷类型列表,他们通常使用云盘类型存储(

gcePersistentDisk
,但不是GCS;以前是
awsElasticBlockStore
,但不是S3),Kubernetes直接反对(
configMap
secret
downwardAPI
),或几个非常本地的存储选项(
emptyDir
local
)。有几个多节点可访问的选项,例如
nfs
,但它们需要外部服务器。

还值得注意的是,传统文件系统和云对象存储系统具有不同的保证。例如,您描述了写后读约束,并且您必须使用文件系统原语自行实现此约束(并希望它们在分布式环境中一致工作)。

如果您不想依赖公共云,我可能会保留您所拥有的,也许可以替换可以在集群中运行的对象存储服务器。我认为 Kubernetes 内置的任何东西都不能满足您所描述的需求。

© www.soinside.com 2019 - 2024. All rights reserved.