k8s的存储卷

存储卷------数据卷

把容器内的目录,和宿主机的目录进行挂载。

容器在系统上的生命周期是短暂的,delete,k8s用控制(deployment)创建的pod,delete相当于重启,容器的状态也会回复到初始状态。

一旦回到初始状态,所有后天编辑的文件都会消失。

容器和节点之间创建一个可以持久化保存容器内文件的存储卷。即使容器被销毁,删除,重启,节点上的存储卷的数据依然存在,后续也可以继续使用。可以继续容器内目录和宿主机挂载,保存的数据继续使用。

1、emptyDir

作用:在容器内部共享存储卷,k8s系统中,是一个pod当中的多个容器共享一个存储卷目录。

emptyDir卷可以是pod当中容器在这个存储卷上读取和写入。

emptyDir是不能挂载到节点上的。随着pod的生命周期结束,emptyDir也会结束,数据也不会保留。

容器内部共享。lnmp。

第一个name,存储卷的名称,可以自定义,mountPath,定义容器内的挂载目录点,和节点或者其他容器的共享目录

- image:nginx:1.22

  name:nginx2

  volumeMounts:

    name:html

    mountPath:/data

引用上一个挂载点的名称,表示我将和/usr/share/nginx/html/这个目录挂载,由data目录和它挂载

command: ["/bin/bash","-c","while true";do]

volumes:

2、hostPath:

将容器内的挂载点,和节点上的目录进行挂载,hostPath可以实现数据的持久化。node节点被销毁,那么数据也会丢失。

污点设置为:NoExecute:节点上的pod会被驱逐,文件数据在不在?

pod的驱逐,并不是node节点被销毁,所有数据还保留在节点上。

pod被驱逐(基于控制器创建的)会在其他节点重新部署,又会在其他节点生成一个新的存储卷。数据依然可以持久化。

emptyDir的共享数据,会丢失。hostPath还在。

hostPath:

  path: /opt/test

  type:DirectoryCreate

一个pod有多个容器,用-c进入不同的容器

3、NFS共享存储:

/data/volumes  192.168.233.0/24(rw,no_root) 9:38

方式1:

所有pod内的目录和节点上的nfs共享目录形成数据卷,所有的数据文件都保存在

释义图:

方式2:

9:52

指定server可以共享节点的ip地址,也可以是主机名,主机名要做映射

pvc和pv:

pv:全称Persistent Volume 持久化存储,描述和定义一个存储卷,pv是由我们运维人员来定的。

pvc:persistent Volume Claim 持久化存储的请求。pvc实际上是用来描述或者声明我希望使用什么样的pv来进行存储。

pvc-pv是一一对应的关系(描述,存储(大小))

pvc------>pv------NFS

pvc和pv都是虚拟化的概念,是k8s的抽象的虚拟的存储资源。

图示:

发起请求的读写方式要一致,读写空间要比它大,最优选择

pod内的挂载点声明一个请求,pvc请求,pvc会找一个最合适的pv来作为pod的存储卷,pv和共享目录再一一映射,最终由nfs来提供最终的共享存储空间。

pvc和pv之间的静态请求,一旦有成百个pvc怎么办,所以还有动态pvc。10:13

pv是集群当中的存储资源,pvc请求存储资源,也是对存储资源的一个检索(检查索引),选择一个最合适pv来存储资源。

pv和pvc之间是由生命周期管理:

1、Provisioning(配置)------pvc请求request------检索(找一个合适的pv)------pvc和pv(binding绑定)------使用------pod被删除------pv的releasing(释放)------recying(回收)

配置:静态,动态

绑定:就是把pv分配给pvc

使用:就是pod通过pvc使用存储资源------NFS

释放:pod解除和挂载卷volume的关系,删除pvc

回收:保留pv,以供下一个pvc使用。

pv的状态:

Available:可用,而且没有被任何pvc绑定

Bound:绑定,表示pv已经绑定到了pvc,绑定即使用

released:释放,pvc已经被删除了,但是pv的存储资源还没有被集群回收

Failed:表示pv资源回收失败,而且pv为不可用状态。

ReadWriteOnce:RWO,配置文件里面是全称,表示存储pv可读可写,但是只能被单个pod挂载

ReadOnlyMany:ROX,存储的pv可以以只读的方式被多个pod挂载

ReadRriteMany:RWX,存储可以支持读写的方式被多个pod共享。

nfs:可以支持三种读写和挂载的方式

SCSI

ISCSI:不支持ReadRriteMany

iscsiadm -m session -P 3

iscsiadm 查看服务器是否有iscsi设备

-m session:指定操作的会话模块,管理iscsi会话

-P 3:显示详细信息的级别。级别就是3.显示详细信息。

hostPath:只支持ReadWriteOnce方式。

集群回收pv资源的方式:

Retain 保留,pod和挂载点的数据不会被删除

Recycle:回收,pv上的数据被删除,挂载点的数据也被删除

Delete:淡出,解绑时,自动删除PV上的数据。(本地磁盘不能使用,AWS,EBS GCE)支持动态卷的可以使用,pv不再使用(云平台自己处理)。

补充:当pod运行之后,通过pvc请求到了pv,除非pod被销毁,否则无法删除pvc.

vim /etc/exports

/data/volumes 192.168.233.0/24(rw,no_root_squash)

/data/v1 192.168.233.0/24(rw,no_root_squash)

/data/v2 192.168.233.0/24(rw,no_root_squash)

/data/v3 192.168.233.0/24(rw,no_root_squash)

/data/v4 192.168.233.0/24(rw,no_root_squash)

/data/v5 192.168.233.0/24(rw,no_root_squash)

在各个节点上查看挂载情况

vim pv.yaml

一个yaml文件里面定义多个

apiversion: v1

kind: PersistentVolume

metadata:

  name: pv001

  labels:

    name: pv001

spec:

  nfs:

    path: /data/v1

    server: 192.168.233.94

  accseeModes: ["ReadwriteMany","ReadWriteOnce"]

  capacity:

      storage: 2Gi

---

apiversion:v1

kind: PersistentVolumeClaim

metadata:

  name:  mypvc

spec:

  accessModes: ["ReadWriteMany"]

#pvc期望请求的pv的读写挂载类型是什么

  resource:

    requests:

      storage: 2Gi

#pvc期望请求pv的存储大小是2G,期望的pv类型:readwritemany 大小是2G

---

11:24

静态

pvc--------

delete之后

动态卷是要删除的。

总结:

k8s当中存储卷的模式:

emptyDir:容器内存储卷,随着pod被销毁,也会销毁,数据不保留

hostPath:节点目录的存储卷,可以实现持久化存储。数据在每个节点上都有,不方便集中管理

nfs:共享目录存储卷,可以实现持久化,数据集中在一个目录,方便管理

pv和pvc:

pvc请求---------pv的存储资源------磁盘空间(NFS)

nfs支持pvc的所有挂载方式和读写模式

hostPath仅支持ReadWriteOnce方式

pvc是以检索的方式找到匹配的pv资源

检索挂载方式和读写方式

检索pv能够提供的存储资源的大小

谁合适选谁

保留:默认可以不写

回收:自动回收,节点上的数据会被删除

删除:pv会变成failed模式,不可用,数据也会被删除。

静态比较繁琐,如何能自动的匹配pv资源呢?

动态pvc

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国京津冀光伏展

京津冀在中国光伏展是中国光伏行业的一次重要展览活动,旨在推动京津冀地区光伏产业的发展和合作,促进全国光伏产业的健康发展。 京津冀地区是中国光伏产业的重要基地之一,拥有丰富的太阳能资源和发展潜力。中国光伏展作为光伏行业的盛会&…

firewall防火墙(二)

一、IP伪装与端口转发: 当用户数据包经过NAT设备时.NAT设备将源地址替换为公网P地址.而返回的数据包就可以被路由,NAT技术一般都是在企业边界路由器或者防火墙上来配置. Firewaild支持两种类型的NAT;P地址伪装和端口转发. 1.1 I…

优化 ParamValidator,让编辑器Pycharm智能提示校验方法

目录 一、前置说明1、总体目录2、相关回顾3、本节目标 二、操作步骤1、项目目录2、代码实现3、测试代码4、日志输出 三、后置说明1、要点小结2、下节准备 一、前置说明 1、总体目录 《 pyparamvalidate 参数校验器,从编码到发布全过程》 2、相关回顾 基于 Valid…

鱼哥赠书活动第⑥期:《内网渗透实战攻略》看完这本书教你玩转内网渗透测试成为实战高手!!!!

鱼哥赠书活动第⑥期:《内网渗透实战攻略》 如何阅读本书:本书章节介绍:本书大致目录:适合阅读对象:赠书抽奖规则:往期赠书福利: 当今,网络系统面临着越来越严峻的安全挑战。在众多的安全挑战中&…

产品使用说明书也能进行SEO?要怎么制作才能使其易于搜索?

产品使用说明书也能进行SEO?是的,你没有听错,不过是在线化的产品使用说明书。产品使用说明书能通过特定的策略和技巧进行搜索引擎优化(SEO)。这不只是为了让产品信息更易被找到,更是为了提升品牌知名度和用…

ubuntu20.04安装cuda11.4以及cudnn

系统:ubuntu20.04硬件配置:GPU3080、CPU未知通过《软件和更新》在附加驱动选项中添加了驱动: 1.检查自己电脑支持的cuda nvidia-smi4. 下载cuda11.4.2 wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/c…

昇腾910b部署qwen-7b-chat进行流式输出【pytorch框架】NPU推理

文章目录 准备阶段避坑阶段解决方案一、modeling_qwen.py二、cli_demo.py 结果展示 准备阶段 参考我上一篇文章910b上跑Chatglm3-6b进行流式输出【pytorch框架】 避坑阶段 我在mindspore框架下运行了qwen-7b-base、qwen-7b-chat输出都有大大的问题,参考官方文档 …

C++qt-信号-信号槽

1、概念 信号和槽是两种函数,这是Qt在C基础上新增的特性,类似于其他技术中的回调的概念。 信号和槽通过程序员提前设定的“约定”,可以实现对象之间的通信,有两个先决的条件: 通信的对象必须都是从QObject类中派生出来…

iOS 应用上架指南:资料填写及提交审核

摘要 本文提供了iOS新站上架资料填写及提交审核的详细指南,包括创建应用、资料填写-综合、资料填写-IOS App和提交审核等步骤。通过本指南,您将了解到如何填写正确的资料,并顺利通过苹果公司的审核。 引言 在开发iOS应用后,将其…

视频监控系统EasyCVR如何通过调用API接口查询和下载设备录像?

智慧安防平台EasyCVR是基于各种IP流媒体协议传输的视频汇聚和融合管理平台。视频流媒体服务器EasyCVR采用了开放式的网络结构,支持高清视频的接入和传输、分发,平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联…

oracle基本用户管理和权限分配

1.用户与模式的关系,一一对应的关系 2.创建与管理用户 2.1创建用户语法 CREATE user wdf IDENTIFIED by tiger--创建用户wdf,密码tiger DEFAULT tablespace users--用户的默认表空间 quota 10M on users;--在表空间的占用最大空间 注意:用户创建以后…

基于TableAgent实现IT职位招聘数据分析—以传统机器学习与TableAgent 数据分析方式相对比以凸显TableAgent 特性

目录 🚀一. TableAgent—新AI时代的数据分析智能体 🔎1.1 基于DataCanvas Alaya九章元识大模型 🔎1.2 TableAgent的亮点 🚀二. 使用TableAgent分析数据与传统机器学习分析数据对比 🔎2.1 项目背景 🔎2.2 数…

统信UOS命令行设置未签名软件安装权限

原文链接:统信UOS命令行设置未签名软件安装权限 hello,大家好啊!今天我要给大家介绍的是在统信UOS操作系统上通过命令行设置安全中心应用安装权限的方法。在某些情况下,用户可能需要安装未经官方签名的软件包。虽然这可以提供更多…

在python里面探索web框架

一、常识性知识 python Web框架三巨头:Flask(简单易学)、Django(复杂庞大)、FastAPI 1. Django:Django是一个高级的Web框架,它提供了强大的功能和工具,用于快速开发复杂的Web应用程序。 2. Flask&#xff…

2024 CSRankings全球计算机科学排名发布!清华AI第一,哈工大NLP第一

大家好我是二狗。 这两天全球计算机科学排名 CSRankings 2024发布啦! 下面二狗就带大家来看一下最新的排名情况。 清华、北大、上海交大AI领域霸榜前三 在AI板块,主要有人工智能、计算机视觉、机器学习、自然语言处理、网络&信息检索5个细分领域。…

【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数 (一)

目录 0 引言1 3DTiles数据2 objTo3DTiles2.1 工具的安装2.1.1 拓展:Node.js 和 npm 2.2 工具的使用2.2.1 输出成瓦片数据2.2.2 输出带有坐标参数的瓦片数据 3 查看3DTiles数据 🙋‍♂️ 作者:海码007📜 专栏:Cesiumfor…

玄子Share-云计算入门指南

玄子Share-云计算入门指南 一、Windows 键盘字符输入 1. 单键位 直接通过键盘输入即可 2. 双键位 功能键,键盘上显示为两排符号,普通输入模式默认输入下排字符,键盘按下Shift(转换)键,上档键&#xff0…

8 单链表---带表头节点

上节课所学的顺序表的缺点 顺序表的最大问题:插入和删除时需要移动大量元素 链式存储的定义 链式存储的逻辑结构 链表中的基本概念: 注意:表头节点并不属于数据元素 单链表图示: 把3个需要的结构体定义出来: typdef …

矩阵中的最长递增路径

题目链接 矩阵中的最长递增路径 题目描述 注意点 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕) 解答思路 因为最长递增路径一定是连续的,所以想到使用深度优先遍历来做。如果只使用深度优先遍历会导致超时(同一个…

IP风险画像:源头防范网络攻击的全面策略

在当今数字化的时代,网络攻击呈现多样化和复杂化的趋势,为了确保网络的安全,制定全面的IP风险画像并从源头防范网络攻击是至关重要的。ip数据云将探讨如何通过建立IP风险画像来识别和应对潜在的威胁,从而实现更加安全可靠的网络环…