k8s基础概念之六 pv/pvc
pv/pvc概念
pv:存储卷、pv是集群中已由管理员配置的一段网络存储。集群中的资源就像一个节点是一个集群的资源,pv是诸如卷之类的卷插件,但是具有独立于使用pv的热河单个pod生命周期。该api对象不会存储的细节,
大白话:他是集群里面的一个磁盘,pod可以挂载使用
pvc:存储卷请求:是用户存储的请求,pvc使用逻辑,在pod中定义一个存储卷(类型为pvc),定义的时候直接指定大小,pvc必须与对应的pv建立关系,pvc会根据定义的pv去申请。二pv是由存储空间创建出来的,pv和pvc是kubernetes抽象出来的一种存储资源
pv没有命名空间隔离概念,而pvc有命名空间隔离概念
模式 | 解释 |
---|---|
ReadWriteOnce(RWO) | 可读可写,但只支持被单个节点挂载 |
ReadOnlyMany(ROX) | 只读,可被多个节点挂载 |
ReadWriteMany(RWX) |
注:只是起到标识作用,并不会控制他的读写
策略 | 解释 |
---|---|
Retain | 不清除、保留volume(需要手动清除) |
Recycle | 删除数据,即rm -rf /thevolume/* (只有nfs和hostPath支持) |
Delete |
kind: persistentVolume apiVersion: v1 metadata: name: nfsva spec: nfs: path: /data/nfs/v1 server: 192.168.159.14 accessModes: - "ReadWriteMany" #访问模式,起到标记作用并不控制读写权限 persistentVolumeReclaimPolicy: Retain #回收策略 capacity: storage: 2Gi #这个存储卷的大小 --- kind: persistentVolume apiVersion: v1 metadata: name: nfsvb spec: nfs: path: /data/nfs/v2 server: 192.168.159.14 accessModes: - "ReadWriteOnce" persistentVolumeReclaimPolicy: Retain capacity: storage: 2Gi #这个存储卷的大小
#创建pvc kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nfsva spec: accessModes: - "ReadWriteMany" #只是一个标识,并不会控制读写权限,底层存储该怎么做他就会怎么做 resources: requests: storage: 2Gi --- #测试的deployment kind: Deployment apiVersion: apps/v1 metadata: name: nfsvc-test spec: selector: matchLabels: app: nfsva template: metadata: labels: app: nfsva spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: /usr/share/nginx name: nfsva volumes: - name: nfsva persistentVolumeClaim: claimName: nfsva #使用的pvc名字
pvc的空间申请大小大于pv的大小
pvc的storageclassName没有和pv的一致
pvc的accessModes和pv的不一致
1.pvc没有创建成功或者被创建 2.pvc和pod不在同一个anmespace
删除pvc的时候需要先把正在使用pvc的deploy或者pod删掉或吧使用的pvc删掉,要不然会一直显示delete不动
删除pvc之后k8s会创建一个回收的pod----根据pv的回收策略回收,回收完了之后,pv的状态就会变成可被绑定的状态,也就是空闲状态,其他的pvc匹配到这个pv就会和这个pv绑定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端