k8s存储之PV、PVC
在k8s集群中,资源存储会散落到各个工作节点上,这样对用资源调用很不方便,那么k8s是如何实现存储资源共享的呢,本文浅尝辄止的探讨一下,k8s是通过pv、pvc实现的。
一、PV、PVC的概念
1、持久卷(PV)
pv是PersistentVolume的缩写,pv是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。 持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样, 也是使用卷插件来实现的,拥有独立于任何使用 PV 的 Pod 的生命周期。
2、持久卷声明(PVC)
pvc是PersistentVolumeClaim的缩写, 是用户对存储的请求,PVC 申领会耗用 PV 资源。pvc的访问模式有 ReadWriteOnce、ReadOnlyMany、ReadWriteMany、ReadWriteOncePod。
二、PV、PVC的生命周期
1、制作PV
PV 卷的制备有两种方式,静态制备或动态制备。静太制作集群管理员创建若干 PV 卷,这些卷对集群用户可用,可供用户消费。动态制备,当没有提前制作好的pv卷供pvc匹配,集群可以尝试为该 PVC 申领动态制备一个存储卷。
2、绑定
用户创建一个带有特定存储容量和特定访问模式需求的 PersistentVolumeClaim 对象, 控制平面中的控制回路监测新的 PVC 对象,寻找与之匹配的 PV 卷 并将二者绑定到一起。。
3、使用
Pod 将 PVC 申领当做存储卷来使用。集群会检视 PVC 申领,找到所绑定的卷, 并为 Pod 挂载该卷。对于支持多种访问模式的卷, 用户要在 Pod 中以卷的形式使用申领时指定期望的访问模式。
4、回收策略
当用户不再使用其存储卷时,他们可以从 API 中将 PVC 对象删除, 从而允许该资源被回收再利用。PersistentVolume 对象的回收策略告诉集群, 当其被从申领中释放时如何处理该数据卷。 目前,数据卷可以被 Retained(保留)、Recycled(回收)或 Deleted(删除)。
(1)保留(Retain)
回收策略 Retain
使得用户可以手动回收资源。当 PersistentVolumeClaim 对象被删除时,PersistentVolume 卷仍然存在,对应的数据卷被视为"已释放(released)"。 由于卷上仍然存在之前用户的数据,该卷还不能用于其他申领。如果需要继续使用这一块的资源,需要手动手动删除所关联的存储数据。
(2)删除(Delete)
对于支持 Delete
回收策略的卷插件,删除动作会将 PersistentVolume 对象从 Kubernetes 中移除,同时也会从外部基础设施中移除所关联的存储资产。
(3)回收(Recycle)
目前已经废弃,推荐使用动态制作。
三、NFS服务搭建
1、文件存储技术分类
分布式的文件存储技术实现常用的有三种:
(1)块存储ISCSI
优点:速率块 不可取代 可以简单的方式实现数据的可用性
缺点:不可共享 以及 文件系统的约束
(2)文件存储 NFS
优点:实现了数据共享、构建资金较低
缺点:速率较慢
(3)对象存储 MFS
优点:实现了数据共享、读写效率高、有更高的磁盘IO 网络 IO,存储量级更高
缺点:造价高 难度实现大
2、NFS部署
本文使用nfs作为存储类型
(1)安装nfs-utils
yum install -y nfs-utils rpcbind
(2)配置挂载点
mkdir -p /home/data/nfs
vim /etc/exports/home/data/nfs *(insecure,rw,sync,no_root_squash)exports -r
(3)启动nfs服务
systemctl start rpcbindsystemctl start nfs
systemctl status nfs
(4)节点挂载
假如主节点的主机名为server200,那么从节点的安装步骤按照前三步执行。然后在各个节点执行挂载命令即可:
mount –t nfs server205:/home/data/nfs /home/data/nfs
showmount -e server205
四、PV、PVC创建与应用
1、编写pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: k8s-dep-pvnamespace: wmy-dev
spec:capacity:storage: 256MiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /home/data/nfs/testserver: server205
kubectl apply -f pv.yaml
2、编写pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: k8s-dep-pvcnamespace: wmy-dev
spec:resources:#申请资源requests:storage: 256MiaccessModes:- ReadWriteManystorageClassName: nfs
kubectl apply -f pvc.yaml
3、应用PVC资源
安装一个nginx服务,将其根目录挂载到/home/data/nfs/test
apiVersion: apps/v1
kind: Deployment
metadata:name: my-nginxnamespace: wmy-dev
spec:replicas: 1selector:matchLabels:app: my-nginxtemplate:metadata:labels:app: my-nginxspec:containers:- name: k8s-depimage: ningximagePullPolicy: IfNotPresentports:- containerPort: 80name: tcpprotocol: TCPvolumeMounts:- name: v-nfs# 容器内需要挂载的目录文件mountPath: /usr/share/nginx/htmlvolumes:# 容器卷名称,按照规范命名即可,与挂载名称volumeMounts保持一致- name: v-nfspersistentVolumeClaim:claimName: k8s-dep-pvc
kubectl apply -f nginx.yaml
相关文章:

k8s存储之PV、PVC
在k8s集群中,资源存储会散落到各个工作节点上,这样对用资源调用很不方便,那么k8s是如何实现存储资源共享的呢,本文浅尝辄止的探讨一下,k8s是通过pv、pvc实现的。 一、PV、PVC的概念 1、持久卷(PV) pv是Pe…...
go-基于逃逸分析来提升性能程序
go-基于逃逸分析来提升性能程序 为什么要学习逃逸分析: 为了提高程序的性能,通过逃逸分析我们能知道指标是分配到堆上还是栈上,如何是 分配到栈上,内存的分配和释放都是由编译器进行管理的,分配和释放的速度都非常的…...

[软件工具]文档页数统计工具软件pdf统计页数word统计页数ppt统计页数图文打印店快速报价工具
文档页数统计工具软件——打印方面好帮手 在信息化时代,文档已成为我们工作、学习、生活中不可或缺的一部分。无论是学术论文、商业报告,还是个人日记,都需要我们对其进行有效的管理。而在这个过程中,文档页数统计工具软件就显得…...
linux编译ffmpeg动态库
1,获取源码:git clone https://git.ffmpeg.org/ffmpeg.git 2,创建编译目录,并编译、安装, cd ffmpeg mkdir build cd build ../configure --prefix~/ffmpeg --enable-shared --enable-debug1 //configure后需要使…...

Unity3d Cinemachine篇(完)— TargetGroup
文章目录 前言使用TargetGroup追随多个模型1. 创建二个游戏物体2. 创建TargetGroup相机3. 设置相机4. 完成 前言 上一期我们简单的使用了ClearShot相机,这次我们来使用一下TargetGroup 使用TargetGroup追随多个模型 1. 创建二个游戏物体 2. 创建TargetGroup相机 3…...

事件驱动架构:使用Flask实现MinIO事件通知Webhooks
MinIO的事件通知可能一开始看起来并不激动人心,但一旦掌握了它们的力量,它们就能照亮您存储桶内的动态。事件通知是一个全面、高效的对象存储系统中的关键组件。Webhooks是我个人最喜欢的工具,用于与MinIO集成。它们在事件的世界中就像一把瑞…...

力扣面试150 只出现一次的数字Ⅱ 哈希 统计数位 DFA有穷自动机
Problem: 137. 只出现一次的数字 II 文章目录 思路💖 哈希💖 位数统计💖 DFA 状态机 思路 👨🏫 参考 💖 哈希 ⏰ 时间复杂度: O ( n ) O(n) O(n) 🌎 空间复杂度: O ( n ) O(n) O(n) cl…...

R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图
step1: 导入ggplot2库文件 library(ggplot2)step2:带入自带的iris数据集 iris <- datasets::irisstep3:查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4:利用ggplot工具包绘图 plot5 <- ggparcoord(…...

Easy Excel动态表头的实现
步骤: 1.查找官方API文档理解实现 2.实现融入到代码里面 一:Easy Excel动态头实时生成头写入 动态头实时生成头写入 二:实现 目的:实现表头为,第一列是固定列,第二列为动态生成的时间段的每一天的日期…...

kvm qemu 优化 windows 虚拟机速度
主要优化磁盘 io 和网络 io 都选为 virtio windows 驱动下载 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.185-2/virtio-win-0.1.185.iso I also had incredibly slow performance with my virtual HDD. The followin…...

银行数据仓库体系实践(18)--数据应用之信用风险建模
信用风险 银行的经营风险的机构,那在第15节也提到了巴塞尔新资本协议对于银行风险的计量和监管要求,其中信用风险是银行经营的主要风险之一,它的管理好坏直接影响到银行的经营利润和稳定经营。信用风险是指交易对手未能履行约定契约中的义务而…...
每日一练 | 华为认证真题练习Day179
1、关于配置STUB区域需要注意的事项中描述正确的是 A. 骨干区域可以配置成为STUB区域 B. 如果将一个区域配置成为STUB区域,则该区域中的所有路由器都要配置STUB区域属性 C. STUB区域可以存在ASBR D. 虚连接可以穿越STUB 2、关于PIM-SM中的HellO报文的描述&#…...
[ubuntu]add-apt-repository 添加以及移除
add-apt-repository是一个用于添加PPA(Personal Package Archive)存储库的命令。它是Ubuntu和基于Ubuntu的Linux发行版中的apt软件包管理系统的一部分。 PPA存储库允许用户安装和更新软件包,这些软件包不包含在官方软件源中。通过添加PPA存储…...

PySpark(二)RDD基础、RDD常见算子
目录 RDD RDD五大特性 RDD创建 RDD算子 常见的Transformation算子 map flatMap mapValues reduceByKey groupBy filter distinct union join intersection glom groupByKey groupByKey和reduceByKey的区别 ? sortBy sortByKey 常见的action算子 countByKey…...

修改MFC图标
摘要:本文主要讲解了MFC程序窗口图标的添加、任务栏、底部托盘的图标添加,以及所生成的exe文件图标的添加。 1、在资源视图添加Icon资源 透明图标怎么制作? 1)点击图片》右键:使用画图3D进行编辑 2&a…...

springboot158基于springboot的医院资源管理系统
简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…...

【算法】枚举——蓝桥杯、日期统计、特殊日期(位数之和)、2023、特殊日期(倍数)、跑步锻炼
文章目录 蓝桥杯日期统计特殊日期(位数之和)2023特殊日期(倍数)跑步锻炼 蓝桥杯 日期统计 日期统计 如果暴力枚举100个数的八次循环那就是1016次运算,时间复杂度太高了,好在前四次的2023是确定的…...

基于flask的个人博客项目从0到1
项目展示(持续完善中…) 首页 文章时间线页面 笔记页面 留言页面 关于页面 后台页面-文章管理 后台页面-笔记页面 后台页面-分类 后台管理-新增标签 后台管理-标签页面 后台管理-新增标签 后台管理-关于页面 2.项目详述 该博客开源地址点击跳转,该项目已部署上…...

基于OpenCV灰度图像转GCode的单向扫描实现
基于OpenCV灰度图像转GCode的单向扫描实现 引言单向扫描存在的问题灰度图像单向扫描代码示例结论 系列文章 ⭐深入理解G0和G1指令:C中的实现与激光雕刻应用⭐基于二值化图像转GCode的单向扫描实现⭐基于二值化图像转GCode的双向扫描实现⭐基于二值化图像转GCode的…...
JAVA生成Word文档
第一步:导入依赖 <!--生成word文档--> <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.3</version> </dependency> <!--数字转为汉字大写--> <depend…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...