2015-09-06 49 views
1

Kubernetes卷支持在此列出https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/user-guide/volumes.md,但它目前不符合我的需要。Kubernetes卷装对象存储

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

有什么方法可以扩展功能来支持这两个对象存储API?我需要能够从对象存储装入到豆荚中。

编辑:现在我不必支持swift API,只是S3 API。请记住它并不是真正的AWS存储,它仅仅是使用S3兼容的API

回答

3

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

另一方面,回写对象存储变得棘手。 2种想法:

  1. 某些排序的用户空间文件系统插件,它将映射到远程系统。
  2. 使用侧面汽车集装箱,其唯一目的是将特定目录与对象存储系统同步。

显然,这两种方法在性能方面都会明显变慢,这可能会直接与网络带宽成正比。

+0

进行安装它有两种使用存储的用例。第一个是只读(读取大量的原始数据),第二个是读取结果(应该小得多)。我目前无法找到任何有关实现卷插件的教程或适当的文档。你能否指出我正确的方向至少要开始? – ESBDB

+0

我不知道任何有关实现卷插件的教程。如何实施这个https://github.com/kubernetes/kubernetes/blob/master/pkg/volume/plugins.go#L47。 可能在看现有的音量插件会给你一个想法。 这里是aws [plugin](https://github.com/kubernetes/kubernetes/tree/master/pkg/volume/aws_ebs) –

0

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

它们被打包成Kubernetes头盔包。例如Minio是S3兼容的对象存储服务器。您可以在您的Kubernetes群集上使用helm install stable/minio