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资源? 下回分解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338883.html

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

相关文章

机器人制作开源方案 | 乒乓球自动拾取机器人

作者:刘众森、王森、王绘东、崔岳震、宋维鑫 单位:山东农业工程学院 指导老师:潘莹月、廖希杰 1. 场景调研 我们小组选择项目的任务方向乒乓球的捡取与存放,针对此问题我们研发了一款乒乓球自动拾取机器人。众所周知&#xff0…

序列模型(4)—— Scaling Laws

本文介绍 LLM 训练过程中重要的 Scaling Laws,这是一个经验规律,指出了固定训练成本(总计算量FLOPs) C C C 时,如何调配模型规模(参数量) N N N 和训练 Token 数据量 D D D,才能实现…

提升测试多样性,揭秘Pytest插件pytest-randomly

大家可能知道在Pytest测试生态中,插件扮演着不可或缺的角色,为开发者提供了丰富的功能和工具。其中,pytest-randomly 插件以其能够引入随机性的特性而备受欢迎。本文将深入探讨 pytest-randomly 插件的应用,以及如何通过引入随机性…

Untiy HTC Vive VRTK 开发记录

目录 一.概述 二.功能实现 1.模型抓取 1)基础抓取脚本 2)抓取物体在手柄上的角度 2.模型放置区域高亮并吸附 1)VRTK_SnapDropZone 2)VRTK_PolicyList 3)VRTK_SnapDropZone_UnityEvents 3.交互滑动条 4.交互旋…

云端建模:开启三维重建的全新时代

在数字化时代的浪潮下,建筑设计和地理信息科学领域正迎来一场前所未有的变革。云端建模作为一项创新技术,以其强大的能力和创造性的方法,正开启着实景三维建模与倾斜摄影三维重建的全新时代。这一时代不仅为测绘工程师、设计师和决策者带来了…

Windows系统下python版本Open3D-0.18.0 的快速安装与使用

目录 一、安装Anaconda3二、安装open3d三、测试代码四、结果展示五、测试数据 Windows系统下python版本Open3D-0.18.0 的快速安装与使用由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、安装Anaconda…

String#intern

1.intern方法 intern()方法可以在运行期间向字符串中动态加入字符串实例的方式,它的功能很简单,总结起来就一句话 可以在运行时向字符串池中添加字符串常量 添加的原则是,如果常量池中存在当前字符串,则直接返回常量池中它的引用&#xff1b…

【占用网络】SurroundOcc:基于环视相机实现3D语义占用预测 ICCV 2023

前言 本文分享“占用网络”方案中,来自ICCV 2023的SurroundOcc,它基于环视相机实现3D语义占用预测。 使用空间交叉注意力将多相机图像信息提升到3D体素特征,即3D体素Query到2D图像中查询融合特征的思想。 然后使用3D卷积逐步对体素特征进行…

【Spring Boot】SpringMVC入门

1.什么是springMVC MVC就是把一个项目分成了三部分: MVC是一种思想。Spring进行了实现,称为Spring MVC。SpringBoot是创建SpringMVC项目的一种方式而已。springMVC对于MVC做出了一些改变: 当前阶段,MVC的概念又发生了一些变化,后端开发人员不涉及前端页…

【学术会议】第三届神经计算青年研讨会 学习笔记

第三届神经计算青年研讨会 学习笔记 会议时间:2024-1-6至2024-1-7 会议地点:电子科技大学 会议介绍: 为提升我国神经计算⻘年研究队伍的学术⽔平和国际影响⼒,研讨会主题涵盖:神经系统建模与模拟、脑机接⼝与类脑智能、…

【Helm 及 Chart 快速入门】03、Chart 基本介绍

目录 一、Chart 基本介绍 1.1 什么是 Chart 1.2 Chart ⽬录结构 1.3 Chart.yaml ⽂件 二、创建不可配置 Chart 2.1 创建 Chart 2.2 安装 Chart 三、创建可配置的 Chart 3.1 修改 chart 3.2 安装 Chart 一、Chart 基本介绍 1.1 什么是 Chart Helm 部署的应…

Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)

0x01 产品简介 Ncast盈可视 高清智能录播系统是广州盈可视电子科技有限公司一种先进的音视频录制和播放解决方案,旨在提供高质量、高清定制的录播体验。该系统采用先进的摄像和音频技术,结合强大的软件平台,可以实现高清视频录制、多路音频采集、实时切换和混音、定制视频分…