基於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網絡部署參考:架構

相關文章
相關標籤/搜索