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: 10GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: RetainstorageClassName: nfsnfs:path: /data/nfsserver: 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:- ReadWriteOnceresources: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.mzph.cn/pingmian/72242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于DeepSeek的智能数据分析和自动化处理系统:引领BI行业新变革

近期,一款基于DeepSeek API的智能数据分析和自动化处理系统横空出世,以其强大的功能和灵活的可扩展性,为BI行业带来了颠覆性的变革。 该系统支持多类型数据分析,包括文本 、指标和日志等。在文本分析方面,它能够提取关…

图形学面试题总结

图形学面试题总结 文章目录 图形学面试题总结Opengl 与 Vulkan1、OpenGL的渲染管线有哪些主要阶段?分别做什么?2、OpenGL中的VAO、VBO和EBO分别是什么?为什么需要它们?3、细分着色器与几何着色器是什么4、Vulkan与Opengl的区别是什…

Vue 系列之:路由

vue-router 组件 router-link 功能&#xff1a;用于导航&#xff0c;即渲染一个链接&#xff0c;当点击时&#xff0c;导航到由 to 属性指定的 URL。 示例&#xff1a;<router-link to"/home">Home</router-link> 它会渲染为一个 <a> 标签&…

通过mybatis的拦截器对SQL进行打标

1、背景 在我们开发的过程中&#xff0c;一般需要编写各种SQL语句&#xff0c;万一生产环境出现了慢查询&#xff0c;那么我们如何快速定位到底是程序中的那个SQL出现的问题呢&#xff1f; 2、解决方案 如果我们的数据访问层使用的是mybatis的话&#xff0c;那么我们可以通过…

【Linux】centos配置可用的yum源

在 CentOS 系统中配置可用的 YUM 源&#xff08;仓库&#xff09;是保持系统更新和软件包管理的重要步骤。下面是一些步骤和示例&#xff0c;帮助你配置可用的 YUM 源&#xff1a; 1. 备份当前 YUM 仓库配置 首先&#xff0c;备份你当前的 YUM 仓库配置文件&#xff0c;以防万…

【CentOS】搭建Radius服务器

目录 背景简介&#xff1a;Radius是什么&#xff1f;Radius服务器验证原理搭建Radius服务器环境信息yum在线安装配置FreeRADIUS相关文件clients.conf文件users文件重启服务 验证 参考链接 背景 在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器&#xff0c;做…

机器学习_特征工程

一、核心知识点&#xff1a;特征工程的核心概念与流程 1. 特征工程的定义与重要性 定义&#xff1a;通过数据预处理、特征构造、特征选择等方法&#xff0c;将原始数据转化为更适合机器学习模型输入的特征&#xff0c;提升模型性能。重要性&#xff1a; “数据和特征决定了机…

Elasticsearch Java High Level Client [7.17] 使用

es 的 HighLevelClient存在es源代码的引用&#xff0c;结合springboot使用时&#xff0c;会存在es版本的冲突&#xff0c;这里记录下解决冲突和使用方式&#xff08;es已经不建议使用这个了&#xff09;。 注意es服务端的版本需要与client的版本对齐&#xff0c;否则返回数据可…

rtsp在网页上显示(webrtc-stream)

一&#xff1a;windos 平台 1&#xff1a;下载已经编译好的windos平台程序 Releases mpromonet/webrtc-streamer (github.com) or 【免费】webrtc-streamerv0.8.6一款werbrtc服务器&#xff08;windos版本&#xff09;&#xff0c;可以直接将rtsp流拉到网页上显示资源-CSDN文…

【AI大模型智能应用】Deepseek生成测试用例

在软件开发过程中&#xff0c;测试用例的设计和编写是确保软件质量的关键。 然而&#xff0c;软件系统的复杂性不断增加&#xff0c;手动编写测试用例的工作量变得异常庞大&#xff0c;且容易出错。 DeepSeek基于人工智能和机器学习&#xff0c;它能够依据软件的需求和设计文…

如何在vscode中编译linux中的c++文件

方式一 在终端打开进行连接编译 指令含义&#xff1a;将 muduo_server.cpp 源文件编译成一个可执行文件 server&#xff0c;并且在链接过程中使用 muduo_net、muduo_base 库以及 pthread 库 方式二 在vscode中修改配置文件 按F1打开配置文件搜索栏&#xff0c;输入C/C 打开…

基于Flink SQL的实时指标多维分析模型

数据流程介绍 1.创建源表kafka接入消息队列数据&#xff0c;定义字段映射规则&#xff1b; 2.创建目标表es_sink配置Elasticsearch输出&#xff1b; 3.通过多级视图&#xff08;tmp→tmp_dedup→tmp1/tmp2→tmp3→tmp_groupby&#xff09;实现数据清洗、去重、状态计算&#x…

【vscode-01】vscode不同项目不同语言扩展插件隔离方案

vscode不同项目不同语言扩展插件隔离方案 1. 背景2. vscode 扩展插件隔离方案2.1 code-profile 配置文件2.2 配合extensions.json 1. 背景 最近打开vscode 发现越来越卡&#xff0c;这是一个轻量级代码编辑器&#xff0c;怎么会如此占用内存呢&#xff1f; 我使用了‘code --l…

《基于大数据的营养果蔬推荐系统的设计与实现》开题报告

目录 一、选题的理论意义现实意义及应用价值 &#xff08;一&#xff09;理论意义 &#xff08;二&#xff09;现实意义 1.用户价值提升 2.效率提升 3.经济效益提升 &#xff08;三&#xff09;应用价值 1.提升用户健康水平 2.优化购物体验 3.支持健康决策 4.促进农业…

《C#上位机开发从门外到门内》2-4:Modbus协议

文章目录 一、引言二、Modbus协议概述2.1 Modbus协议的起源与发展2.2 Modbus协议的基本特点2.3 应用领域 三、Modbus通信原理详解3.1 Modbus RTU原理3.1.1 数据帧结构3.1.2 数据传输与时序3.1.3 错误检测 3.2 Modbus TCP原理3.2.1 数据封装3.2.2 通信机制3.2.3 与RTU模式的区别…

观成科技:​加密C2框架Platypus流量分析

一、工具介绍 Platypus 是一款支持多会话的交互式反向 Shell 管理器。在实际的渗透测试中&#xff0c;为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足,该工具在多会话管理的基础上增加了在渗透测试中能更好发挥作用的功能&#xff08;如&#xff1a;交互式 Sh…

OpenBMC:BmcWeb 处理http请求

OpenBMC:BmcWeb 读取http请求头-CSDN博客 介绍了,在读取完http头后,将调用Connection::handle处理http请求 1.Connection::handle void handle() {...req = std::make_shared<crow::Request>(parser->release(), reqEc);...req->session = userSession;accept …

MySQL事务深度解析:ACID特性、隔离级别与MVCC机制

引言 在数据库系统中&#xff0c;​事务是保障数据一致性与完整性的核心机制。MySQL通过ACID特性、多级隔离策略和MVCC&#xff08;多版本并发控制&#xff09;实现了高性能与高可靠性的平衡。本文将从底层原理出发&#xff0c;系统解析事务的四大特性、隔离级别的实现逻辑&am…

WireShark自动抓包

背景 异常流量检测是当前保护网络空间安全的重要检测方法。 对流量的研究&#xff0c;首先需要在系统中进行抓包&#xff0c;并对包进行分析。 这里对WireShark自动抓包进行简要介绍。 操作步骤 1、选择“捕获”>“选项”。 2、在Input下&#xff0c;选择要抓包的网络接…

Android 自定义View之底部导航栏

文章目录 Android 自定义View之底部导航栏概述代码定义TabIndex定义Tab定义TabView定义NavigationBarFragmentSwitchHelper管理类使用 源码下载 Android 自定义View之底部导航栏 概述 封装一个通用的底部导航栏控件。 代码 定义TabIndex Retention(AnnotationRetention.SOU…