回收 PV - 每天5分鐘玩轉 Docker 容器技術(152)

weixin_33766168發表於2018-04-09

當 PV 不再需要時,可通過刪除 PVC 回收。

當 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

相關文章