基于Kubernetes的容器存储系统

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

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

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

容器跑完了 内存还没释放会怎么样 容器 存储_微服务

已有存储系统有几种方式为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容器存储概念体系和实现,参考如下:

  • Kubernetes存储系统
  • Kubernetes存储系统介绍及机制实现,
  • Kubernetes volumes简介,
  • Kubernetes存储之Persistent Volumes,
  • Rook & Ceph
  • NFS-网络文件系统
  • Kubernetes搭建NFS原生服务
  • Kubernetes存储系统-NFS的Helm部署,
  • kunbernetes存储系统-基于NFS的PV服务,
  • GlusterFS

Kubenrnetes集群安装参考:

  • kubeadm安装Kubernetes实践记录,
  • Kubernetes加入新节点,经验总结,
  • Kubernetes v1.10.x HA 全手动安装教程,
  • 使用kubeadm创建Kubernetes集群,
  • Kubernetes部署与应用解决方案大全,
  • Kubernetes运行监控-使用Helm快速部署Pormetheus和Grafana

Kubenrnetes网络部署参考:

  • calico在docker上的部署及验证,
  • 容器SDN技术与微服务架构实践,
  • 基于Kubeadm的Flannel分析,
  • ...