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
相关文章:
k8s的存储卷
存储卷------数据卷 把容器内的目录,和宿主机的目录进行挂载。 容器在系统上的生命周期是短暂的,delete,k8s用控制(deployment)创建的pod,delete相当于重启,容器的状态也会回复到初始状态。 …...
Git 实战指南:常用指令精要手册(持续更新)
👑专栏内容:Git⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、Git 安装过程1、Windows 下安装2、Cent os 下安装3、Ubuntu 下安装 二、配置本地仓库1、 初始化 Git 仓库2、配置 name 和 e…...
关于SpringMVC前后端传值总结
一、传递方式 1、查询参数&路径参数 查询参数: URI:/teachers?typeweb GetMapping("/klasses/teachers") public List<Teacher> getKlassRelatedTeachers(String type ) { ... }如果查询参数type与方法的名称相同,则直接将web传入…...
【排序】归并排序(C语言实现)
文章目录 1. 递归版的归并排序1.1 归并排序的思想2. 递归版的归并排序的实现 2. 非递归版的归并排序 1. 递归版的归并排序 1.1 归并排序的思想 归并排序(MERGE - SORT)是建立在归并操作上的一种有效的排序算法, 该算法是采用分治法(Divide a…...
127. 单词接龙
和433.最小基因变化这道题一样的解法。 https://blog.csdn.net/qq_43606119/article/details/135538247 class Solution {public int ladderLength(String beginWord, String endWord, List<String> wordList) {Set<String> cnt new HashSet<>();for (int …...
计算机算法贪心算法
贪心算法(Greedy Algorithm)是一种常见的算法思想,它在每一步选择当前状态下最优的解决方案,从而希望最终能够达到全局最优解。 贪心算法的基本思路是每一步都选择当前状态下的局部最优解,而忽略了当前选择所带来的影…...
基于css实现动画效果
介绍 本文将会基于css,实现各种动画效果,接下来会从简单几个例子入手。 案例 三颗球 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" /><title>React App</title><style>…...
18.将文件上传至云服务器 + 优化网站的性能
目录 1.将文件上传至云服务器 1.1 处理上传头像逻辑 1.1.1 客户端上传 1.1.2 服务器直传 2.优化网站的性能 2.1 本地缓存优化查询方法 2.2 压力测试 1.将文件上传至云服务器 客户端上传:客户端将数据提交给云服务器,并等待其响应;用户…...
Linux: module: kheaders;CONFIG_IKHEADERS
文章目录 参考错误开一个玩笑。configcommit参考 https://github.com/iovisor/bcc/pull/2312 https://github.com/iovisor/bcc/pull/3588 https://bugs.gentoo.org/809347 https://lore.kernel.org/lkml/20190408212855.233198-1-joel@joelfernandes.org/ 错误 <built-in…...
Page 251~254 Win32 GUI项目
win32_gui 源代码: #if defined(UNICODE) && !defined(_UNICODE)#define _UNICODE #elif defined(_UNICODE) && !defined(UNICODE)#define UNICODE #endif#include <tchar.h> #include <windows.h>/* Declare Windows procedure */…...
Kafka(七)可靠性
目录 1 可靠的数据传递1.1 Kafka的可靠性保证1.2 复制1.3 Broker配置1.3.1 复制系数1.3.2 broker的位置分布1.3.3 不彻底的首领选举1.3.4 最少同步副本1.3.5 保持副本同步1.3.6 持久化到磁盘flush.messages9223372036854775807flush.ms9223372036854775807 1.2 在可靠的系统中使…...
Spring Data JPA入门到放弃
参考文档:SpringData JPA:一文带你搞懂 - 知乎 (zhihu.com) 一、 前言 1.1 概述 Java持久化技术是Java开发中的重要组成部分,它主要用于将对象数据持久化到数据库中,以及从数据库中查询和恢复对象数据。在Java持久化技术领域&a…...
MES系统数据采集的几种方式
生产制造执行MES系统具有能够帮助企业实现生产数据收集与分析、生产计划管理、生产过程监控等的功能板块,在这里小编就不一一介绍了,主要讲讲它的数据采集功能板块,可以说,数据采集是该系统进行数据统计与生产管理等后续工作的基础…...
铭文 LaunchPad 平台 Solmash 推出早鸟激励计划
为感谢用户对Solmash的支持,Solmash 特别推出“Solmash早鸟激励计划”,以回馈社区的早期参与者,这是专为已经参与Staking Pool或Honest Pool的用户推出的激励。 Solmash NFT激励 被列入早鸟计划的用户,可通过点击:sol…...
【前端规范】
1 前言 HTML 作为描述网页结构的超文本标记语言,一直有着广泛的应用。本文档的目标是使 HTML 代码风格保持一致,容易被理解和被维护。 2 代码风格 2.1 缩进与换行 [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符…...
12、JVM高频面试题
1、JVM的主要组成部分有哪些 JVM主要分为下面几部分 类加载器:负责将字节码文件加载到内存中 运行时数据区:用于保存java程序运行过程中需要用到的数据和相关信息 执行引擎:字节码文件并不能直接交给底层操作系统去执行,因此需要…...
【Docker】Docker安装入门教程及基本使用
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…...
语义解析:如何基于SQL去实现自然语言与机器智能连接的桥梁
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 语义解析 定义 作用 语义解析的应用场景 场景一: 场景二: 总结语…...
Java项目:117SpringBoot动漫论坛网站
博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 117SpringBoot动漫论坛网站 一、项目介绍 动漫论坛网站是由SpringBootMybatis开发的,旅游网站分为前台和后台,前台为用户浏览,后台进…...
Jenkins基础篇--添加节点
节点介绍 Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows 和 Linux 系统)中编译、测试等。 Jenkins 运行的主机在逻辑上是 master 节点,下图是主节点和从节点的关系。 添加节点 …...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
