如果 Kubernetes 部署在諸如 AWS、GCE、Azure 等公有雲上,可以直接使用雲硬盤作為 Volume,下面是 AWS Elastic Block Store 的例子:
要在 Pod 中使用 ESB volume,必須先在 AWS 中創建,然后通過 volume-id 引用。其他雲硬盤的使用方法可參考各公有雲廠商的官方文檔。
Kubernetes Volume 也可以使用主流的分布式存,比如 Ceph、GlusterFS 等,下面是 Ceph 的例子:
Ceph 文件系統的 /some/path/in/side/cephfs
目錄被 mount 到容器路徑 /test-ceph。
相對於 emptyDir 和 hostPath,這些 Volume 類型的最大特點就是不依賴 Kubernetes。Volume 的底層基礎設施由獨立的存儲系統管理,與 Kubernetes 集群是分離的。數據被持久化后,即使整個 Kubernetes 崩潰也不會受損。
當然,運維這樣的存儲系統通常不是項簡單的工作,特別是對可靠性、高可用和擴展性有較高要求時。
Volume 提供了非常好的數據持久化方案,不過在可管理性上還有不足。下一節我們將學習具有更高管理性的存儲方案:PersistentVolume & PersistentVolumeClaim。
書籍:
1.《每天5分鍾玩轉Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html
3.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html