K8S 存储卷
意义:存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的,delete,k8s用控制器创建的pod,delete相当于重启,容器的状态也会回复到初始状态
一旦回到初始状态,所有的后天编辑的文件都会消失。
容器和节点之间创建一个可以持久化保存容器内文件的存储卷,即使容器被销毁,删除,重启,节点上存储卷的数据依然存在,后续也可以继续使用,继续将容器内的目录和宿主机挂载,保存的数据继续使用
1、emptyDir
容器内部共享存储卷,k8s系统中,是一个pod当中的多个容器共享一个存储卷目录
emptyDir卷可以使pod当中的容器在这个存储卷上读取和写入
emptyDir是不能挂载到节点的。随着pod生命周期结束,emptyDir也会结束,数据也不会保留
容器内部共享。LNMP
2、hostPath
将容器内的挂载点,和节点上的目录进行挂载,hostPath可以实现数据的持久。node节点被销毁,那么数据也会丢失
污点设置为:
NoExecute:节点上的pod会被驱逐,文件数据在不在?
pod被驱逐,并不是node节点被销毁。所有数据还保留在节点上
pod被驱逐 (基于控制器创建的)会在其他重新部署,又会在其他节点生成一个新的存储卷。数据依然可以持久化
emptyDir的共享数据,会丢失
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name,存储的名称,可以自定义,mountpath,定义容器内的挂载目录点,和节点或者##其他容器的
共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称,表示我将和、usr/share/nginx/html这个目录挂载,由data目录和他挂载 command: ["/bin/bash","-c", "while true; do echo $(date) >> /data/index.html; sleep 2; done"]volumes:- name: htmlhostPath:path: /opt/testtype: DirectoryOrCreate
3、NFS共享存储

所有的pod内的目录都和节点上的nfs共享目录形成数据,所有的数据文件都保存在共享目录当中,集中,方便管理
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name,存储的名称,可以自定义,mountpath,定义容器内的挂载目录点,和节点或者##其他容器的
共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称,表示我将和、usr/share/nginx/html这个目录挂载,由data目录和他挂载 command: ["/bin/bash","-c", "while true; do echo $(date) >> /data/index.html; sleep 2; done"]volumes:- name: htmlnfs:path: /data/volumesserver: harbor
#server可以是共享节点的ip地址,也可以是主机名,主机名要做映射
pvc和pv
pv:全称Persistent Volume 持久化存储卷,描述和定义一个存储卷,pv是由我们运维人员来定的
pvc:全称Persistent Volume Claim 持久化存储的请求,pvc实际上是用来描述或者声明我希望使用什么样的pv来进行存储
pvc-pv是一一对应的关系(描述,存储(大小))
pvc---->pv----->NFS
pvc和pv都是虚拟化的概念,是k8s的抽象的虚拟的存储资源

pv是集群当中的存储资源,pvc请求存储资源,也是对存储资源的一个检索 (检查索引),选择一个最合适的pv来存储资源
pv和pvc之间是有生命周期管理:
1、Provisioning(配置)-----pvc请求request-----检索(找一个合适的pv)----pvc和pv(binding 绑定)-------使用-----
pod被删除-------pv的releasing(释放)------资源回收recyling
配置:静态,动态
绑定:就是把pv分配给pvc
使用:就是pod通过pvc使用存储资源—NFS
释放:pod解除和挂载卷的关系,删除pvc
回收:保留pv,以供下一次pvc使用
pv的状态
Avaliable:可用,而且没有被任何pvc绑定
Bound:绑定,pv已经绑定了pvc,绑定即使用
released:释放,pvc已经被删除了,但是pv的存储资源还没有被集群回收
Failed:表示pv资源回收失败,而且pv为不可用状态。
ReadWriteOnce RWO,配置文件里是全称,存储pv可读可写,但是只能被单个pod挂载
ReadOnlyMany:ROX 存储pv可以以只读的方式被多个pod挂载
ReadWriteMany:RWX 存储可以支持读写的方式被多个pod共享
NFS:可以支持以上三种读写和挂载方式
SCSI
[root@master01 opt]# lsscsi
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[2:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
ISCSI 不支持ReadWriteMany(RWX )
[root@master01 opt]# iscsiadm -m session -P 3
iscsiadm: No active sessions.
查询服务器是否有ISCSI设备 -m seesion 管理iscsi的会话 -P 3 显示详细信息的级别
hostpath:只支持RWO ,其他两个不支持
回收策略
集群回收pv资源的方式
Retain保留,pod和挂载点的数据不会被删除
Recycle:回收,pv上的数据会被删除,挂载点的数据也被删除
Delete: 删除,解绑时会自动删除pv上的数据 (本地硬盘无法使用)支持动态卷的可以使用,pv也不再可用(云平台自己处理)
补充:当pod运行之后,通过pvc请求到了pv,除非pod被销毁,否则无法删除pvc
pvc----请求用哪个pv的存储----pv和物理存储做映射 (挂载)----物理设备提供存储卷
pvc yaml文件
apiVersion: v1
kind: PersistentVolume
metadata:name: pv001labels:name: pv001
spec:nfs:path: /data/v1server: 192.168.211.40accessModes:- ReadWriteMany- ReadWriteOncecapacity:storage: 1Gi
更改回收策略
apiVersion: v1
kind: PersistentVolume
metadata:name: pv004labels:name: pv004
spec:nfs:path: /data/v4server: 192.168.211.40accessModes:- ReadWriteMany- ReadWriteOncepersistentVolumeReclaimPolicy: Recycle 添加这一行 capacity:storage: 4Gi[root@master01 opt]# kubectl apply -f pv.yaml
persistentvolume/pv001 unchanged
persistentvolume/pv002 unchanged
persistentvolume/pv003 configured *
persistentvolume/pv004 configured * 显示这个就是更改策略成功
persistentvolume/pv005 unchanged
k8s当中存储卷的模式:
emptyDir:容器内的存储卷,随着pod被销毁,也会被销毁,数据不保留
hostPath:节点目录的存储卷,可以实现持久化存储,数据在每个节点上都有,不方便集中管理
nfs:共享目录存储卷,既可以实现持久化,也可以数据集中在一个目录,方便管理
pv和pvc:
pvc请求----pv的存储资源----硬盘空间(NFS)
NFS支持pvc的所有类型挂载权限和读写方式
hostpath:仅支持ReadWriteOnce 方式
pvc是以检索的方式找到匹配的pv资源
检索挂载方式和读写模式
检索pv能提供的存储资源的大小
谁合适选谁
保留:默认可以不写
回收:自动回收,节点上的数据也会被删除
删除:pv会变成failed模式,不可用,数据也会被删除
静态比较麻烦,但是如何自动匹配pv资源? 下回分解
相关文章:
K8S 存储卷
意义:存储卷----数据卷 容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的,delete,k8s用控制器创建的pod,delete相当于重启,容器的状态也会回复到初始状态 一旦回到初始状态,所有的后天编辑的文件…...
一个SqlSugar实际案例
SqlGugar是一个非常好的数据库操作框架,今天用一个示例来分享如何使用。 新建一张课程表 结构如下: CREATE TABLE t_course (id int NOT NULL AUTO_INCREMENT COMMENT ID,title varchar(1024) NOT NULL COMMENT 课程标题,description text NOT NULL C…...
【RT-DETR有效改进】ShapeIoU、InnerShapeIoU关注边界框本身的IoU(包含二次创新)
前言 大家好,我是Snu77,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持Re…...
从理论到实践:数字孪生技术的全面应用探讨
数字孪生是一种将实际物体或系统的数字模型与其实时运行状态相结合的概念。这一概念的核心在于创建一个虚拟的、与真实世界相对应的数字副本,以便监测、分析和优化实体系统的性能。 简单理解,数字孪生就是在一个设备或系统的基础上,创造一个…...
2.1.2 一个关于y=ax+b的故事
跳转到根目录:知行合一:投资篇 已完成: 1、投资&技术 1.1.1 投资-编程基础-numpy 1.1.2 投资-编程基础-pandas 1.2 金融数据处理 1.3 金融数据可视化 2、投资方法论 2.1.1 预期年化收益率 2.1.2 一个关于yaxb的…...
Rust-解引用
“解引用”(Deref)是“取引用”(Ref)的反操作。取引用,我们有&、&mut等操作符,对应的,解引用,我们有操作符,跟C语言是一样的。示例如下: 比如说,我们有引用类型p:&i32;,那么可以用符…...
记录一下vue项目引入百度地图
公共部分 #allmap { width: 500px; height: 500px; font-family: "微软雅黑"; } 1、 <div id"allmap"> <baidu-map :center"center" :zoom"zoom" ready"handler"></baidu-map> </div> data()…...
基于Docker官方php:7.4.33-fpm镜像构建支持67个常见模组的php7.4.33镜像
实践说明:基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2),所构建的php7.4.33镜像应用于RHEL7-9(如AlmaLinux9.1),但因为docker的特性,适用场景是不限于此的。 文档形成时期:2017-2023年 因系统或软件版本不同&am…...
opencv通过轮廓点生成闭合图像
前言 有时候需要将某一些点生成闭合的二值图像。记录一下。 // 轮廓点个数 int nrCurvePoints curContour.nr; // 轮廓点 DIM2DL* curvePoints curContour.pts;std::vector<cv::Point> points; // 轮廓点集合 for (int cntPoint 0; cntPoint < nrCurvePoints; cn…...
Python 网络编程之TCP详细讲解
【一】传输层 【1】概念 传输层是OSI五层模型中的第四层,负责在网络中的两个端系统之间提供数据传输服务主要协议包括**TCP(传输控制协议)和UDP(用户数据报协议)** 【2】功能 **端到端通信:**传输层负责…...
直饮水系统服务认证:提升水质与安全的必要举
直饮水系统作为一种便捷、卫生的饮水方式,已经越来越受到人们的欢迎。然而,随着市场的发展,直饮水系统的质量和服务也面临着一些挑战。因此,直饮水系统服务认证应运而生,成为了提升水质与安全的必要举措。 一、直饮水…...
Qt 调试系统输出报警声以及添加资源
文章目录 前言一、方法1 使用 Qsound1.添加都文件 直接报错2.解决这个错误 添加 QT multimedia3. 加入代码又遇到新的错误小结 二、第二种方法1.引入库2.添加资源2.1依次点击Qt--->Qt Resource File--->Choose2.2给资源文件起个名字,如:res&#…...
Linux下文件的创建写入读取编程
在linux下操作一个文件,首先要保证文件的存在(不存在就创建),接着打开文件(打开成功)并得到文件描述符,接着在进行读写操作,最后还需要关闭文件。如果我们对文件进行读写之后不关闭文…...
python 解析
list(pd.DataFrame) # 所有列名切片:print("显式 切片:\n", df.loc[:, "number":"sum"]) 所有行,列是从number 到sum ,前闭后开print("隐式 切片:\n", df.iloc[:, 1:3]) # 结果和上面一样转化成字典…...
谷歌aab包在Android 14闪退而apk没问题(targetsdk 34)
问题原因 Unity应用(target SDK 34)上线到GooglePlay,有用户反馈fold5设备上(Android14系统)疯狂闪退,经测试,在小米手机Android14系统的版本复现成功了,奇怪的是apk直接安装没问题,而打包成aa…...
34.在排序数组中查找元素的第一个和最后一个位置
34.在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为…...
js树过滤
// 递归过滤得到每一项的hidden为false的数据 function filterTree(arr) { return arr.filter(item > { if (item.children) { item.children filterTree(item.children) } if (!item.hidden) { return true } }) }...
Java多线程并发篇----第十六篇
系列文章目录 文章目录 系列文章目录前言一、线程等待(wait)二、线程睡眠(sleep)三、线程让步(yield)四、线程中断(interrupt)五、Join 等待其他线程终止前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…...
测评结果:免费的“文心一言3.5”香,但是付费的产品质量更高
文章目录 前言一、文心一言3.5生成的图片和文章1.文心一言生成的图片在文心一言3.5中输入以下内容:我的测评结果: 2.文心一言生成的文章在文心一言3.5中输入以下内容:我的测评结果: 二、ChatGPT生成的图片和文章1.ChatGPT4.0 生成…...
Matlab GUI设计基础范例(可以一步一步跟着做)
我们要做一个GUI界面,可以选择peaks、membrane和sinc三种三维图数据,选择画出surf、mesh和contour三种图像。 打开GUI 每个版本打开方式可能都不一样,但有一个是相同的,就是在命令行输入guide回车。 绘制控件 大概就绘制成这样…...
VR环保学习机|开启沉浸式环保教育新时代
在环保教育不断升级的今天,如何让公众尤其是青少年真正理解环保的重要性、养成绿色习惯,已经成为教育领域的重要课题。传统的图文讲解虽然内容充足,却往往缺少互动性和代入感,难以让学习者产生深刻的记忆。VR环保学习机正是在这样…...
AI 短剧变现的 4 大合规赛道 新手低门槛可切入
当下AI短剧成为内容领域的热门风口,不少人想入局分一杯羹,却因担心踩坑违规、找不准变现方向而犹豫不决。其实新手入局无需焦虑,只要选对合规赛道,低门槛也能轻松切入。本文将详细拆解4个核心变现路径,全程贴合平台审核…...
2025届最火的十大AI辅助论文平台横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网AIGC检测服务是学术规范领域里较为重要的技术工具,它的核心功能是去识别学术…...
nerdctl 入门指南:从安装到容器管理
1. 为什么选择 nerdctl 管理容器? 如果你已经熟悉 Docker 的命令行工具,那么第一次接触 nerdctl 时会感到非常亲切。作为 containerd 生态中的明星工具,nerdctl 提供了与 Docker CLI 高度兼容的操作体验,但底层却采用了更轻量级的…...
终极指南:如何使用Rust构建企业级数据脱敏系统
终极指南:如何使用Rust构建企业级数据脱敏系统 在当今数据驱动的时代,企业面临着日益严格的隐私保护法规和数据安全挑战。数据脱敏作为保护敏感信息的关键技术,正成为企业数据治理的核心环节。本文将详细介绍如何利用Rust这一安全高效的系统编…...
域名过期后会不会影响网站的SEO排名
域名过期后是否会影响网站的SEO排名:深入探讨与解决方案 在当今互联网时代,域名是网站的核心标识,它不仅代表了网站的身份,还在搜索引擎优化(SEO)中扮演着重要角色。有时我们可能会面临域名过期的情况&…...
效率提升秘籍:借助快马AI自动生成健壮的视频续播管理模块
最近在开发视频播放功能时,遇到了一个很常见的需求:实现"继续播放上次观看位置"的功能。本以为是个简单的功能,但实际开发中发现要考虑的细节还真不少。经过一番折腾,我总结出了一套高效的解决方案,分享给大…...
RocketMQ的“三高”架构设计
RocketMQ的“三高”架构设计,主要围绕高可用、高吞吐、高扩展三个维度展开,分别解决服务不中断、性能不瓶颈、规模不设限的核心问题。1 高可用(High Availability)高可用的目标是确保部分组件故障时,消息服务依然可用&…...
全平台资源下载利器:res-downloader零门槛使用指南
全平台资源下载利器:res-downloader零门槛使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否曾遇到想…...
终端智能编程助手Claude Code:让自然语言驱动你的开发工作流
终端智能编程助手Claude Code:让自然语言驱动你的开发工作流 【免费下载链接】claude-code Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining c…...
