19 K8S 之临时 /hostPath/ 网络存储卷
Kubernetes 支持的存储卷类型中,emptyDir 存储卷的生命周期与其所属的 Pod 对象相同,它无法脱离 Pod 对象的生命周期提供数据存储功能,因此通常仅用于数据缓存或临时存储。
emptyDir 存储卷只能用于某些特殊场景中,例如同一 Pod 内的多个容器间的文件共享,或作为容器数据的临时存储目录用于数据缓存系统等。
gitRepo 存储卷可以看作是 emptyDir 存储卷的一种实际应用,使用该存储卷的 Pod 资源可以通过挂载目录访问指定的代码仓库中的数据。使用 gitRepo 存储卷的 Pod 资源在创建时,会首先创建一个空目录(emptyDir)并克隆(clone)一份指定的 Git 仓库中的数据至该目录,而后再创建容器并挂载该存储卷。
hostPath 存储卷插件是将工作节点上某文件系统的目录或文件关联到 Pod 上的一种存储卷类型,其数据具有同工作节点生命周期一样的持久性。hostPath 存储卷使用的是工作节点本地的存储空间。
hostPath 支持使用的节点存储类型有如下:
DirectoryOrCreate:指定的路径不存在时,自动将其创建为 0755 权限的空目录,属主和属组均为 kubelet。
Directory:事先必须存在的目录路径。
FileOrCreate:指定的路径不存在时,自动将其创建为 0644 权限的空文件,属主和属组均为 kubelet。File:事先必须存在的文件路径。
Socket:事先必须存在的 Socket 文件路径。
CharDevice:事先必须存在的字符设备文件路径。
BlockDevice:事先必须存在的块设备文件路径。
"":空字符串,默认配置,在关联 hostPath 存储卷之前不进行任何检查。
Kubernetes 的 NFS 存储卷用于关联某事先存在的 NFS 服务器上导出的存储空间到 Pod 对象中以供容器使用,该类型的存储卷在 Pod 对象终止后仅是被卸载而非被删除。而且,NFS 是文件系统级共享服务,它支持同时存在的多路挂载请求,可由多个 Pod 对象同时关联使用。
CephFS(Ceph 文件系统)是在分布式对象存储 RADOS 之上构建的 POSIX 兼容的文件系统,它致力于为各种应用程序提供多用途、高可用和高性能的文件存储。CephFS 将文件元数据和文件数据分别存储在各自专用的 RADOS 存储池中,其中 MDS 通过元数据子树分区等支持高吞吐量的工作负载,而数据则由客户端直接相关的存储池直接进行读写操作,其扩展能跟随底层 RADOS 存储的大小进行线性扩展。Kubernetes 的 CephFS 存储卷插件以 CephFS 为存储方案为 Pod 提供存储卷。
GlusterFS(Gluster File System)是一个开源的分布式文件系统,是水平扩展存储解决方案 Gluster 的核心,它具有强大的横向扩展能力,通过扩展能够支持 PB 级的存储容量和数千个客户端。GlusterFS 借助 TCP/IP 或 InfiniBand RDMA 网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据,它基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能,是另一种流行的分布式存储解决方案。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/413d1cddcb77c4dc98ec00d20】。文章转载请联系作者。
评论