回收 PV — Kubernetes(39)

in #kubernetes7 years ago

当不再需要使用 PV,可以删除 PVC 回收 PV。

740.png

当 PVC mypvc1 被删除后,我们发现 Kubernetes 启动了一个新 Pod recycler-for-mypv1,这个 Pod 的作用就是清除 PV mypv1 的数据。此时 mypv1 的状态为 Released,表示已经解除了与 mypvc1 的 Bound,正在清除数据,不过此时还不可用。

当数据清除完毕,mypv1 的状态重新变为 Available,此时则可以被新的 PVC 申请。

741.png

/nfsdata/pv1 中的 hello 文件已经被删除了。

因为 PV 的回收策略设置为 Recycle,所以数据会被清除,但这可能不是我们想要的结果。如果我们希望保留数据,可以将策略设置为 Retain

742.png

通过 kubectl apply 更新 PV:

743.png

回收策略已经变为 Retain,通过下面步骤验证其效果:

744.png

① 重新创建 mypvc1

② 在 mypv1 中创建文件 hello

mypv1 状态变为 Released

④ Kubernetes 并没有启动 Pod recycler-for-mypv1

⑤ PV 中的数据被完整保留。

虽然 mypv1 中的数据得到了保留,但其 PV 状态会一直处于 Released,不能被其他 PVC 申请。为了重新使用存储资源,可以删除并重新创建 mypv1。删除操作只是删除了 PV 对象,存储空间中的数据并不会被删除。

745.png

新建的 mypv1 状态为 Available,已经可以被 PVC 申请。

PV 还支持 Delete 的回收策略,会删除 PV 在 Storage Provider 上对应存储空间。NFS 的 PV 不支持 Delete,支持 Delete 的 Provider 有 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。

下一节我们学习 PV 的动态供给功能。

Sort:  

hello cloudman, 通过你了解到了 steemit, 刚开始用 163 邮箱注册,只收到一封确认邮箱的邮件。后来的账号确认邮件,始终没等到。换了gmail后,等了将近7天才终于收到邮件,注册成功。首先上来给你点个赞。