当前位置: 首页 > news >正文

K8s 1.27.1 实战系列(十)PV PVC

一、核心概念与关系

1、PV(Persistent Volume)​

PV 是集群中的持久化存储资源,由管理员预先创建并配置,独立于 Pod 生命周期。它抽象了底层存储(如 NFS、云存储等),定义存储容量、访问模式(如 ReadWriteOnce)、回收策略(Retain/Delete/Recycle)等属性。例如,一个 NFS 存储的 PV 可能包含服务器路径和存储容量信息。

示例:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs:
    path: /data/nfs
    server: 192.168.1.100

2、PVC(Persistent Volume Claim)​

PVC 是用户对存储资源的声明,定义所需的容量、访问模式等需求。Kubernetes 根据 PVC 自动匹配符合条件的 PV 并绑定,实现存储与应用的解耦。例如,一个数据库应用通过 PVC 申请 5Gi 的存储空间。

示例: 

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

3、PV 与 PVC 的关系

  • 静态绑定:管理员手动创建 PV,用户通过 PVC 申请时自动匹配。
  • 动态绑定:通过 StorageClass 动态生成 PV,无需预先配置。
  • 一对一绑定:一个 PVC 仅绑定一个 PV,PV 被占用后不可复用(除非释放)。

二、生命周期与关键机制

1、PV 生命周期

  • Provisioning:PV 可通过管理员静态创建或由 StorageClass 动态生成。
  • Binding:PVC 匹配 PV 时触发绑定,未匹配则 PVC 处于 Pending 状态。
  • Usage:Pod 挂载 PVC 使用存储资源,数据持久化至 PV。
  • Releasing:删除 PVC 后,PV 根据回收策略处理(如保留数据或删除存储)。
  • RecyclingRetain 策略下需手动清理数据,Delete 策略自动销毁底层存储。

2、访问模式(Access Modes)​

  • ReadWriteOnce (RWO):单节点读写(如块存储)。
  • ReadOnlyMany (ROX):多节点只读(如 NFS 共享配置文件)。
  • ReadWriteMany (RWX):多节点读写(如分布式文件系统)。

3、回收策略(persistentVolumeReclaimPolicy)

  • Retain:在 PVC 被删除后,保留 PV 和其数据,手动清理 PV 中的数据。
  • Delete:在 PVC 被删除后,自动删除 PV 和其数据。
  • Recycle:在 PVC 被删除后,通过删除 PV 中的数据来准备 PV 以供重新使用。

persistentVolumeReclaimPolicy只适用于一些类型的 PV,如 NFS、HostPath、
iSCSI 等。对于一些云平台提供的存储,如 AWS EBS 和 Azure Disk,由于底层提供商会自动处理PV的回收问题,因此该属性不适用。 

4、存储分类(storageClassName)

  • 指定 PV 的class 为 nfs。相当于为 PV 设置了一个分类,PVC可以指定 class 申请相应class 的 PV。

三、静态供应示例

1、创建PV池

nfs主节点:

mkdir -p /nfs/data/01
mkdir -p /nfs/data/02
mkdir -p /nfs/data/03

2、创建PV 

创建一个pv.yaml文件,内容如下:

apiVersion: v1
kind: Pers
http://www.dtcms.com/a/62533.html

相关文章:

  • 三角形页面
  • DeepSeek API 客户端使用文档
  • 重生之我在学Vue--第7天 Vue 3 数据请求(Axios)
  • Unity辅助工具_头部与svn
  • DeepIn Wps 字体缺失问题
  • 安全焊接,智慧监管
  • EG82088串口边缘计算网关
  • 网络空间安全(24)APT攻击
  • 北京迅为RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构
  • 《无线网络架构与人工智能实时性:深度融合与未来展望》
  • 电商数据分析 电商平台销售数据分析 电商平台数据库设计 揭秘电商怎么做数据分析
  • 插入排序算法优化
  • Yolo-Uniow开集目标检测本地复现
  • Kotlin学习笔记之类与对象
  • 【ISP】ISP的pipeline的几种关键算法
  • mysql忘记root密码
  • 企业安全—对数据和资产进行识别和分类
  • 数据结构与算法效率分析:时间复杂度与空间复杂度详解(C语言)
  • 【赵渝强老师】PostgreSQL的模板数据库
  • 【C#学习笔记03】进制转换与反码、补码、原码
  • 数字人源头技术saas厂家开发
  • 木马查杀之AST初识篇
  • UE5.5 Niagara发射器更新属性
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-UART应用开发-UART驱动API接口介绍
  • 四层协议攻防手册:从SYN Flood到UDP反射的深度防御
  • 从前端视角理解消息队列:核心问题与实战指南
  • cesium1.126显示等高线
  • 深度学习基础:线性代数本质2——线性组合、张成的空间与基
  • Linux进程管理15 - CFS调度器2 - 数据结构关系
  • CAMEL 学习笔记一