Volume
數據持久化存儲, pod與外部存儲、pod與pod間、pod內多容器間的一種數據共享方式。
根據真實存儲位置與Node的關系分為本地存儲( emptyDir / hostPath)和外部存儲( NFS/Ceph)。
本地存儲:
emptyDir:與Pod同生同死的pod內使用的空存儲。
hostPath: 本質是帶狀態(tài)的emptyDir,是拿node上的目錄做為emptyDir存儲。
外部存儲,也是獨立存儲:
為了擴展和安全,我們也可以將數據存儲到外部的遠程磁盤上,需要依賴于分布式存儲的基礎設施。
Persistent Volume
PV是一種獨立的k8s資源,它與pod沒任何關系,是pod中通過PVC(Persistent Volume Claim)選擇一個合適的PV與自身綁定的。不要簡單認為PVC是為PV綁定做服務的,恰恰相反,PV只是PVC的一種實現。Pod在PVC中聲明了所需存儲資源的要求(存儲大小、可讀寫權限等),PV Controller根據算法為其尋找匹配的PV并掛載到pod中。
PV根據使用方式分為3類:
Static PV (靜態(tài)):運維人員提前聲明好PV,使用時創(chuàng)建PVC,然后由pod來綁定。這里關注的主體是PV具體的對象。
Dynamic PV (動態(tài)):當PVC規(guī)模上去以后,靜態(tài)方式已經無法維護,需要根據PVC使用需求直接創(chuàng)建PV。運維人員提前聲明好StorageClass(PV模板),使用時創(chuàng)建PVC,然后由pod來綁定。這里關注的主體是PV的模板。
Local PV (本地):如果PV依賴于NFS、Ceph這種分布式存儲,因為網絡上的開銷會帶來性能損耗。像數據庫這種對磁盤有高要求的場景,可以通過LocalPV的方式直接將PVC映射到宿主機的磁盤上。
hostPath VS Local PV
可以看到兩者的本質是一樣的,都是pod利用了宿主機的磁盤,功能上存在重復性,那么兩者有什么區(qū)別呢?
簡單說,Local PV就是為了解決hostPath的缺陷而存在的,因為當生產規(guī)模復雜度上去后,運維人員根本不會記得什么node上有什么樣的目錄文件,也就做不到hostPath的精準調度了,而通過Local PV將這些復雜目錄以k8s對象形式來管理,簡單明了了很多。
關于分布式存儲
NFS:一種分布式的共享文件系統(tǒng),有點像windows的共享文件夾,適合大文件、視頻、圖像的存儲。這里不再贅述,因為對于k8s來說,NFS已經趨于被拋棄了。
Ceph:適合跨集群小文件存儲,是一個最有名的私有云存儲解決方案。但它本身的作用不僅僅在于對于k8s提供服務。
支持多種存儲格式:
1、塊存儲RBD,應用于磁盤映射。
2、對象存儲RGW,鍵值存儲,上傳下載數據
3、文件系統(tǒng)存儲ceph-fs,共享文件形式來使用。文章來源:http://www.zghlxwxcb.cn/news/detail-412545.html
k8s存儲解決方案
Rook:一種開源的云原生存儲編排框架,可以在k8s中通過operator的方式來使用分布式存儲,其本身是一種框架,除開Ceph以外可以對接多種存儲,但Rook已經將對nfs以及cassandra的標記為移除,意味著Ceph是它當前唯一仍然在支持的方案。文章來源地址http://www.zghlxwxcb.cn/news/detail-412545.html
到了這里,關于葉工好容1-kubernetes存儲的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!