回收 PV - 每天5分鐘玩轉 Docker 容器技術(152)
當 PVC mypvc1
被刪除後,我們發現 Kubernetes 啟動了一個新 Pod recycler-for-mypv1
,這個 Pod 的作用就是清除 PV mypv1
的數據。此時 mypv1
的狀態為 Released
,表示已經解除了與 mypvc1
的 Bound,正在清除數據,不過此時還不可用。
當數據清除完畢,mypv1
的狀態重新變為 Available
,此時則可以被新的 PVC 申請。
/nfsdata/pv1
中的 hello
文件已經被刪除了。
因為 PV 的回收策略設置為 Recycle
,所以數據會被清除,但這可能不是我們想要的結果。如果我們希望保留數據,可以將策略設置為 Retain
。
通過 kubectl apply
更新 PV:
回收策略已經變為 Retain
,通過下面步驟驗證其效果:
① 重新創建 mypvc1
。
② 在 mypv1
中創建文件 hello
。
③ mypv1
狀態變為 Released
。
④ Kubernetes 並沒有啟動 Pod recycler-for-mypv1
。
⑤ PV 中的數據被完整保留。
雖然 mypv1
中的數據得到了保留,但其 PV 狀態會一直處於 Released
,不能被其他 PVC 申請。為了重新使用存儲資源,可以刪除並重新創建 mypv1
。刪除操作只是刪除了 PV 對象,存儲空間中的數據並不會被刪除。
新建的 mypv1
狀態為 Available
,已經可以被 PVC 申請。
PV 還支持 Delete
的回收策略,會刪除 PV 在 Storage Provider 上對應存儲空間。NFS 的 PV 不支持 Delete
,支持 Delete
的 Provider 有 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。
下一節我們學習 PV 的動態供給功能。
書籍:
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
回收 PV - 每天5分鐘玩轉 Docker 容器技術(152)