Kubernetes卷装入对象存储

时间:2015-09-06 09:57:59

标签: kubernetes

此处列出了Kubernetes卷支持https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/user-guide/volumes.md,但它目前无法满足我的需求。

我需要支持对象存储,包括Openstack Swift API和S3兼容API。 (k8s确实直接支持AWS,但我无法使用它连接到使用s3 API的不同私有对象存储)。

有没有办法扩展功能以支持这两个对象存储API?我需要能够从对象存储装入pods。

编辑:目前我不需要支持swift API,只需要支持S3 API。请记住,它实际上不是AWS存储,它只是使用S3兼容的API

2 个答案:

答案 0 :(得分:3)

我一直在考虑如何将swift作为卷插件启用。与对象存储相比,云块存储(EBS,cinder,永久磁盘)的卷插件是直接的。主要的区别是块存储磁盘可以配置并连接到运行kubelet的vm,可以将其安装到容器中。之后,它将表现得像本地文件系统,不需要任何额外的照顾。只读对象存储的安装也非常简单,功能可以类似于gitRepo

另一方面,写回对象存储变得棘手。 想到两种方式:

  1. 将映射到远程系统的某种用户空间文件系统插件。
  2. 使用侧车容器,其唯一目的是将特定目录同步到目标存储系统。
  3. 显然,这两种方法在性能方面都会非常慢,这可能与网络带宽成正比。

答案 1 :(得分:0)

对象存储更接近其他工具,如Redis / Mongo / Elastic,因此它不是核心K8s的一部分。

它们被打包为Kubernetes helm包。例如,Minio是S3兼容的对象存储服务器。您可以使用helm install stable/minio

在Kubernetes群集上使用它进行安装