1.PersistenVolume(PV)是外部存儲系統中的一塊存儲空間,由管理員創建和維護,與Volume一樣,PV具有持久性,生命周期獨立於Pod。
2.PersistenVolumeClaim(PVC)是對PV的申請(Claim).PVC通常由普通用戶創建和維護。需要為Pod分配存儲資源時,用戶可以創建一個PVC。
下面創建一個PV ,配置文件nfs_pv1.yml
apiVersion: V1
kind: PersistenVolume
metadata:
name: mypv1
spec:
capacity: #指定容量
storage: 1Gi
accessModes:
- ReadWriteOnce #訪問模式,還有ReadOnlyMany /ReadOnlymany/ReadWriteMany(RWX)
persistenVolumeReclaimPolicy: Recycle
storageClassName: nfs ##指定存儲的類型
nfs:
path: /nfsdata/pv1 #指明nfs的路徑
server: ip #指明nfs的ip
ReadWriteOnce(RWO):讀寫權限,但是只能被單個節點掛載 ; ReadOnlyMany(ROX):只讀權限,可以被多個節點掛載 ; ReadWriteMany(RWX):讀寫權限,可以被多個節點掛載
3.persistentVolumeReclaimPolicy(回收策略)
目前 PV 支持的策略有三種:Retain(保留)- 保留數據,需要管理員手工清理數據; Recycle(回收)- 清除 PV 中的數據,效果相當於執行 rm -rf /thevoluem/*; Delete(刪除)- 與 PV 相連的后端存儲完成 volume 的刪除操作,當然這常見於雲服務商的存儲服務,比如 ASW EBS。
*不過需要注意的是,目前只有 NFS 和 HostPath 兩種類型支持回收策略。當然一般來說還是設置為 Retain 這種策略保險一點。
kubectl create -f nfs_pv1.yml ##創建pv kubectl get pv ##查看pv
pvc的配置文件nfs_pvc1.yml:
kind: PersistenVolumeClaim
apiVersion: V1
metadata:
name: mypvc1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1GI
storageClassName: nfs
