Kubernetes外部供应商与CSI

时间:2019-04-25 03:55:37

标签: kubernetes

就像我有一个类似目标的iSCSI服务器一样,该服务器(就像目标一样)可以通过API设置iSCSI LUN。为了使该iSCSI服务器能够与K8的动态PV设置配合使用,经过一些Google搜索,我发现了两种可能的解决方案。

第一个解决方案是CSI。基本上,我需要实现一个CSI插件,该插件将卷创建请求转换为LUN创建API调用,还将存储/装载请求转换为iscsiadm命令。

但是,正如我已经知道K8支持现成的静态预先配置的iSCSI LUN一样,我想知道是否可以执行动态配置部分并将所有繁琐的工作(mount和iscsiadm命令)留给K8内置iSCSI功能。因此,后来,我发现了K8的iSCSI-targetd provisioner。它似乎比CSI插件要简单得多,并且只花了150 LOC就可以为我的iSCSI服务器实现预配器。

我有一个模糊的印象,即K8s社区正在朝着CSI进行外部存储集成。这是否意味着我可能不赞成使用我的后一种预配器方式,而应该将其转移到CSI插件上?

1 个答案:

答案 0 :(得分:1)

事实上,CSI是存储配置的标准化方法,根据我的经验,如今您可以通过多种选择来获得iSCSi(模拟)块存储,我建议使用:

  • rook.io:确实很棒,很不错的文档,涵盖了存储的不同方面(块,文件,对象以及用于不同的后端...)
  • gluster-block:这是用于存储gluster的插件,与heketi结合使用。参见文档k8s provisioning

顺便说一句,gluster是RedHat在Openshift 3上采用的CSI解决方案,而且相当不错,感觉对于Openshift 4来说,它将与Ceph结合使用(很可能是菜鸟)