通过NFS在多个Kubernetes Pod之间共享大型块设备,从而使每个名称空间的导出保持隔离

时间:2019-08-09 10:44:14

标签: kubernetes nfs

我在Kubernetes集群上托管了多个项目。媒体文件的磁盘使用量正在快速增长。我的托管提供程序允许我创建大的块存储空间,但是这些空间只能作为块设备连接到节点(VPS)。目前,我不考虑切换到对象存储。

我想将便宜的小型VPS与附加的大型块设备一起用作NFS服务器,以用于多个项目(吊舱)。

我已经阅读了一些有关将NFS用作持久卷的教程。这些方法是:

外部NFS服务。那么安全性呢?如何将导出暴露给群集中的一个和唯一一个容器?<​​/ h2>

即,在NFS服务器计算机上:

/share/
    project1/
    project2/
    ...
    projectN/

每个/ share / project {i}必须可用于project{i}名称空间中的Pod。

多个使用docker化的NFS服务,使用相似性值将nfs服务附加到nfs服务器节点。

我不知道在同一节点上安装多个NFS服务器吊舱是否是一个好习惯。

也许还有其他我不知道的方法。此用例的最佳Kubernetes方法是什么?

1 个答案:

答案 0 :(得分:0)

您的问题没有答案。 这取决于您的解决方案(架构),要求,安全性等许多其他因素。

  • 外部NFS服务。安全性如何?

在这种情况下,所有考虑都在您的身边(我的建议是通过您的云选择一些受支持的解决方案),请参阅Considerations when choosing a right solution

作为一个示例,请阅读有关security NFS Volume Security的信息。您的情况是管理员有责任共享卷并提供适当的安全设置。

  • 根据第二个问题。

您可以使用pv,pvc声明,名称空间和存储类来实现您的目标。

请参阅pv with nfs serverstorage classes

注意:

  

例如,NFS不提供内部供应商,但可以使用外部供应商。库kubernetes-incubator / external-storage下列出了一些外部预配器。在某些情况下,第三方存储供应商会提供自己的external provisioner

有关关联性规则,请参阅Allowed Topologies,以防已配置卷的拓扑应用于/限制于特定区域。

其他资源:

希望获得帮助。