基于Kubernetes的容器存储系统

原创
2018/06/01 16:21
阅读数 4.4K

基于Kubernetes的容器存储系统

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

  • 与Docker的Volume不同的是,Kubernetes的Volume是在Pod内共享的,Pod中的所有Docker都可以直接访问该Volume。
  • 因为Pod可以浮动运行在指定的节点上,Kubernetes原则上不允许直接访问宿主机目录,尽管提供了基于HostPath的Volume支持,此时须指定nodeSelector选项以固定所在的节点。

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

rook-architecture-2

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

  • 原来的存储系统可以之间在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由存储提供者实现,进行物理存储的管理。

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

Kubenrnetes集群安装参考:

Kubenrnetes网络部署参考:

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部