基于Kubernetes的容器存储系统

基于Kubernetes的容器存储系统

Kubernetes(https://kubernetes.io)具备强大的存储访问能力,经过Volumes实现。node

  • 与Docker的Volume不一样的是,Kubernetes的Volume是在Pod内共享的,Pod中的全部Docker均可以直接访问该Volume。
  • 由于Pod能够浮动运行在指定的节点上,Kubernetes原则上不容许直接访问宿主机目录,尽管提供了基于HostPath的Volume支持,此时须指定nodeSelector选项以固定所在的节点。

传统的分布式存储和网络存储如Ceph、NFS也能够运行在kubernetes系统中,实现容器化、微服务化,从而能够利用Kubernetes的容器编排、调度等能力,并且为Kubernetes中运行的其它容器应用提供内置的分布式存储访问能力,提高并发存取性能、故障转移与恢复等能力。git

rook-architecture-2

已有存储系统有几种方式为kunernetes所用:github

  • 原来的存储系统能够之间在Kubernetes中链接使用,存储服务器独立运行。云存储厂商也经过这种方式为Kubernetes提供存储服务。
  • Ceph/NFS等经过新的PV和Storage实现,在Kubernetes中直接运行存储服务器。
  • 经过容器技术彻底从新实现存储系统(如CrateDB),内置支持Kubernetes并优化。

⚠️Kubernetes从1.9开始引入CSI(容器存储接口),之后都将按照该架构进行开发和配置。每个Pod动态volumeMount到Volumes上,而Volumes经过PVC(Persistent Volume Claim)访问存储,与存储提供者经过接口实现浮动。PVC经过StorageClass动态地分配PV,PV和StorageClass由存储提供者实现,进行物理存储的管理。docker

具体的Kubernetes容器存储概念体系和实现,参考以下:服务器

Kubenrnetes集群安装参考:网络

Kubenrnetes网络部署参考:架构

相关文章
相关标签/搜索