博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pv-pvc 回收机制简单探究
阅读量:6476 次
发布时间:2019-06-23

本文共 3093 字,大约阅读时间需要 10 分钟。

hot3.png

pv pvc 回收机制简单探究

cat nfs-pv.yamlapiVersion: v1kind: PersistentVolumemetadata:  name: pv-nfs-pv02                     #创建的pv名称可创建多个.  namespace: mt-math                    #属于的命名空间spec:  capacity:    storage: 1Gi                        #创建的pv容量为1G  accessModes:  - ReadWriteMany                       #pv的访问模式:可读可写可挂在多个节点  persistentVolumeReclaimPolicy: Retain #回收策略  storageClassName: pv-nfs-pv02  nfs:                                  #创建的pv数据来源    path: /NFS/pv02                     #数据源目录    server: 192.168.0.14                #数据源ip####################################################---apiVersion: v1kind: PersistentVolumemetadata:  name: pv-nfs-pv03                     #创建的pv名称可创建多个.  namespace: mt-math                    #属于的命名空间spec:  capacity:    storage: 1Gi                        #创建的pv容量为1G  accessModes:  - ReadWriteMany                       #pv的访问模式:可读可写可挂在多个节点  persistentVolumeReclaimPolicy: Retain #回收策略  storageClassName: pv-nfs-pv03  nfs:                                  #创建的pv数据来源    path: /NFS/pv03                     #数据源目录    server: 192.168.0.14                #数据源ip

创建pv并查看状态

kubectl create  -f nfs-pv.yamlkubectl get pvpv 采用的Retain 回收模式 第一次创建状态处于Available 可用状态。

34efe64ffdf0aa66db88ef49ad3726f72b7.jpg

创建pvc文件

cat nfs-pvc.yaml #######################################pvc################################kind: PersistentVolumeClaimapiVersion: v1metadata:  name: pvc-nfs-03              #创建的pvc名称  namespace: mt-math              #属于的命名空间 spec:  accessModes:    - ReadWriteMany               #请求访问的权限  resources:    requests:      storage: 1Gi                #请求容量为1G  storageClassName: pv-nfs-pv03    #创建pv的时候如果指定了标签.那么可在pvc中指定标签进行一一对应.这里其实采用的是storageClassName进行名称绑定的.(在容量和权限一致的情况下)---kind: PersistentVolumeClaimapiVersion: v1metadata:  name: pvc-nfs-02            #创建的pvc名称   namespace: mt-math              #属于的命名空间spec:  accessModes:    - ReadWriteMany               #请求访问的权限  resources:    requests:      storage: 1Gi                #请求容量为1G  storageClassName: pv-nfs-pv02

运行并查看pv,pvc状态变化

kubectl create  -f nfs-pvc.yamlkubectl get pvc -n mt-mathkubectl get pvpvc 成功绑定pv 后 pvc状态为:Bound状态,pv由原来的Available 状态变为Bound状态

dd2cf65f1696633e225de200bc2d63e2e08.jpg

测试回收机制:删除pvc后状态后 pv由Bound状态Released状态,此状态下并不能别pvc请求绑定,只有在Available状态下才可被pvc绑定

9195aa8d9b0496aa284d6655a7b82071d80.jpg

管理员手动回收:删除pv并重新创建pv

2d4f4a9db7fab9d69a299a9453435c35696.jpg

重建pv 发现pv有重新回到Available可用状态。创建pvc重新回到Bound状态

2ecdc93379a0d2281612b767e9bfc34af0d.jpg

1dbf51c84a5da14f1aa7d7b5aa20dfda737.jpg

简单总结:

1.pv独立于pod存在2.pv可以创建动态pv或者静态pv。动态pv不需要手动去创建。静态pv需要手动创建3.访问模式:ReadWriteOnce:可读可写只能mount到一个节点. ReadOnlyMany:PV能模式挂载到多个节点4.回收规则:PV 支持的回收策略有: Retain. Recycle.deleteRetain 管理员回收:kubectl delete pv pv-name 创建:kubectl apply -f pv-name.yaml ;Retain策略 在删除pvc后PV变为Released不可用状态, 若想重新被使用,需要管理员删除pv,重新创建pv,删除pv并不会删除存储的资源,只是删除pv对象而已;若想保留数据,请使用该Retain,Recycle策略 – 删除pvc自动清除PV中的数据,效果相当于执行 rm -rf /thevolume/*. 删除pvc时.pv的状态由Bound变为Available.此时可重新被pvc申请绑定Delete – 删除存储上的对应存储资源,例如 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等,NFS不支持delete策略5.storageClassName :在pvc的请求存储大小和访问权限与创建的pv一致的情况下 根据storageClassName进行与pv绑定。常用在pvc需要和特定pv进行绑定的情况下。举例:当有创建多个pv设置存储的大小和访问权限一致时,且pv,pvc没有配置storageClassName时,pvc会根据存储大小和访问权限去随机匹配。如果配置了storageClassName会根据这三个条件进行匹配。当然也可以用其他方法实现pvc与特定pv的绑定如标签.标签方法上一篇就是,这里就不再赘述。

转载于:https://my.oschina.net/wangyunlong/blog/3056071

你可能感兴趣的文章
.Net 项目代码风格要求
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
值类型和引用类型
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>
maven 常用插件
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
画图函数——点,线,矩形等等
查看>>
ejabberd_local
查看>>
BZOJ5020 [THUWC 2017]在美妙的数学王国中畅游LCT
查看>>
hdu 6030 矩阵快速幂
查看>>
tomcat类加载机制
查看>>