浅析kubernates的pv和pvc

news2024/11/26 0:41:56

文章目录

    • 概要
    • 名词解释
      • 什么是Pod
      • 什么是StorgeClass
      • 静态PV和动态PV
      • PV和PVC的生命周期
    • PVC , PV和 StorageClass的关系
    • 小结

概要

最近,在看许多Kubenates的相关文章的时候,了解到了一个概念,是我之前不清楚的。PV&PVC 。那么今天就总结下这几天的收获。

在总结之前我先解释下PV和PVC是什么意思。

  • PV:Persistent Volume
  • PVC:Persistent Volume Claim

【通俗字面理解】

从英文的解释上看,大致可以理解为PV就是一个持久化的卷;PVC就是PV的声明


【docker层面理解】

谈到卷,相信学习过docker的小伙伴并不陌生。Volume用于持久化数据的一种机制。那么就可以把PV看做成docker里的卷,那么PVC又怎么理解呢?就是用于统一调用管理PV的。

【官方解释】

PV :持久化卷的意思,是对底层的共享存储的一种抽象
PVC(Persistent Volume Claim):是持久卷请求于存储需求的一种声明(PVC其实就是用户向kubernetes系统发出的一种资源需求申请。)

在这里插入图片描述
这里还需要明确几个职责:

  • 存储:存储工程师维护
  • PV: kubernetes管理员维护
  • PVC:kubernetes用户维护

所以kubernates引入了pvc的概念后,用户就很好的能够使资源的利用率达到最高

名词解释

上面在简单的了解了什么是PV和PVC之后,接下来根据上图所示,介绍几个概念。

概述:

  • 什么是Pod
  • 什么是StorageClass
  • 静态PV和动态PV
  • PV和PVC的生命周期

什么是Pod

Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。
大家都知道,docker是利用生成镜像在容器里运行的工具。
kubernates则是通过Pod承载容器进行运行的工具。
在k8s里一个Pod可以运行一个容器,也可以运行多个容器。不过最常用的是单个容器。

什么是StorgeClass

在上图种,我们可以看到Pod与我们的PVC进行绑定,换言之,Pod消耗的是PVC。然后PVC请求PV资源,而PV资源必须要是管理员事先创建好的。
这样一来就会存在一个问题,当我们的Pod请求的资源没有相应的PV去与PVC匹配的时候,这个时候就必须要管理员手动创建PV。二者之间必然会存在一定的误差,这个时候就引入了StorgeClass

可用于将存储资源定义为具有显着特性的类别(Class)而不是具体的PV,用户通过PVC直接向意向的类别发出申请,匹配由管理员事先创建的PV,或者由其按需为用户动态创建PV,这样做甚至免去了需要事先创建PV的过程。

静态PV和动态PV

在了解了StorgeClass机制后,我们就很好的理解什么是静态PV和动态PV

【静态】:
需要我们自己去手动创建,业务少的情况下可以用手动创建。

【动态】:
根据 yaml 文件里面的参数自动创建合适的 pv,业务量大或者静态 pv 无法满足需求的时候需要动态创建 pv。

PV和PVC的生命周期

其实不论是PV还是PVC,他们之间的关联关系都遵循着一个统一的生命周期:
资源创建–>资源绑定–>资源使用–>资源释放–>资源回收。这么一个生命周期。

【资源创建】
由管理员静态创建PV,或者由PVC动态创建PV。
【资源绑定】
由PVC根据Pod所需要的资源大小以及读取模式绑定PV。PV一旦被绑定,就被该Pod独占。
【资源使用】
PV一旦被PVC绑定,那么Pod就可以像使用Volume一样根据PVC的定义消耗PVC,进而PVC消耗PV
【资源释放】
用户删除PVC来释放PV
当存储资源使用完毕后,用户可以删除PVC,与该PVC绑定的PV将会被标记为“已释放”,但还不能立刻与其他的PVC进行绑定,通过之前PVC写入的数据可能还被留在存储设备上,只有在清除之后该PV才能再次使用
【资源回收】
Kubernetes根据PV设置的回收策略进行资源的回收
对于PV,管理员可以设定回收策略,用于设置与之绑定的PVC释放资源之后如何处理遗留数据的问题,只有PV的存储空间完成回收,才能供新的PVC绑定和使用

PVC , PV和 StorageClass的关系

  • PVC 描述的** 是 Pod 想要使用的持久化存储的属性** 。比如存储的大小、读写权限等。

  • PV 描述的则是一个具体的 Volume 的属性,比如 Volume 的类型、挂载目录、远程存储服务器地址等。

  • 而 StorageClass 的作用,则是充当 PV 的模板。并且,只有同属于一个 StorageClass 的 PV 和 PVC,才可以绑定在一起。

小结

pv,pvc实际上可以看作是接口和实现类的关系。
pvc定义了pod所需要的存储属性,pvc根据这个属性调用了某一个可以实现此存储能力的pv。
这样理解pv和pvc就比较轻松了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java010——Java八大基本数据类型的进一步学习

前言:前面文章Java009——Java数据类型&变量的简单认识中我们学习了Java数据类型&变量,也简单介绍了Java八大基本数据类型。下面我们继续学习Java八大基本数据类型 回顾:Java八大基本数据类型 大类 类型名称 关键字 占用内…

理性讨论,4年经验,面试要20K很高吗?....

普通二本,4年多测试工作经验,现在依然在测试岗位,只是时间长了和一些个人原因有跳槽的想法,懂python,会写脚本,会selenium,会性能,本来信心满满的,像这样优秀的人找份高薪…

CAN304 计算机安全

本笔记来自基友 加特-林 Lec1: Computer security的概念,一些术语,攻击类型 CIA Lec2:对称加密,Shift cipher,Vigenere,AES,块加密 私钥加密的别称为对称加密 比如shift cipher&#xff…

腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

6月5日,香港交易所发布公告,将于6月19日在香港证券市场推出“港币-人民币双柜台模式”,当日确定有21只证券指定为双柜台证券。同时,港交所还表示,在双柜台模式推出前,更多证券或会被接纳并加入双…

Allegro16.6详细教程(三)

確定Pad的層面 (1)用Single layer mode開關來控制pad type 勾選Single layer mode,則pad為單面孔,比如SMD 不勾選Single layer mode,則pad為通孔,比如:via (2)用滑鼠左鍵點選BEGIN LAYER彈出下面3個欄位 Regular, Thermal Relief, Anti Pad;Regular用於正片,Thermal R…

Nginx + Tomcat 反向代理,负载均衡,动态分离

这里写目录标题 一. Nginx的引入背景公司产品出现瓶颈? 二 nginx 和 Tomcat 的关系三. 什么是Nginx ?(1)Nginx 是什么?(2) Nginx 特点: 四. Nginx作用?1. 反向代理:2. 负载均衡3. 动…

TURTLEBOT3 Burger Waffle Pi 对比

TurtleBot3简介 TurtleBot3是TurtleBot系列中的第三代产品,它在二代的基础之上做了一些改进,并开发了一些新功能,以补充其前身缺乏的功能和满足用户的需求。 TurtleBot3采用机器人智能驱动器Dynamixel驱动,是一款小型的、可编程…

运维小白必学篇之基础篇第十八集:DNS和DHCP中继实验作业

DNS和DHCP中继实验作业 目录 DNS和DHCP中继实验作业 题1:实现DNS服务 服务器: 客户端: 题2:实现DHCP中继服务 服务端配置如下: 客户端配置: 服务端配置:(vmware11) 中继服务器端配置&…

能听懂语音的ChatGPT来了:10小时录音扔进去,想问什么问什么

类 ChatGPT 模型的输入框里可以粘贴语音文档了。 大型语言模型(LLM)正在改变每个行业的用户期望。然而,建立以人类语音为中心的生成式人工智能产品仍然很困难,因为音频文件对大型语言模型构成了挑战。 将 LLM 应用于音频文件的一…

SpringBoot入门程序以及启动方式 - 项目中切换服务器依赖

文章目录 SpringBootSpringBoot入门程序SpringBoot快速启动SpringBoot基本介绍SpringBoot切换服务器 SpringBoot SpringBoot入门程序 SpringBoot入门程序步骤如下: 创建新模块,选择Spring初始化,并配置模块相关基础信息 选择当前模块需要使用的技术集 …

你真的会写用例吗?自动化测试用例如何编写?看着资深测试的总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

Rocky9配置固定IP

vim /etc/NetworkManager/system-connections/enp4s0.nmconnection[ipv4] methodmanual # 子网掩码为 255.255.254.0 address1192.168.1.207/23,192.168.1.1 # 如果子网掩码为 255.255.255.0 则使用下面配置 # address1192.168.1.207/24,192.168.1.1 dns192.168.1.200;45.116.2…

Springcloud--异步通信RabbitMq

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应&am…

全网对BGP团体属性讲的最透彻的一篇,附华为、思科、瞻博网络三厂商配置!

你好,这里是网络技术联盟站。 Border Gateway Protocol(边界网关协议,简称BGP)是一种广泛用于互联网的路由选择协议。BGP的设计目标是实现自治系统(AS)之间的路由选择和交换,它决定了网络中数据…

性能测试loadrunner

目录 基本概念 性能工具jemeter代码调试 loadrunner实战代码笔记 使用Loadrunner的步骤 性能指标分析结果 基本概念 一、什么是性能: 性能:是用来描述产品除功能外的所具有的速度,效率和能力的综合能力评价。 二、什么是性能测试&…

【马蹄集】第十四周作业

第十四周作业 目录 MT2134 泡泡MT2135 调整队伍MT2141 快排变形MT2142 逆序MT2143 线段树 MT2134 泡泡 难度:黄金    时间限制:1秒    占用内存:128M 题目描述 小码哥小时候喜欢吹泡泡,有一次他吹出了 n n n 个一样小的泡泡&…

工业无监督缺陷检测,提升缺陷检测能力,解决缺陷样品少、不平衡等问题

1. 简介 在工业生产中,质量保证是一个很重要的话题, 因此在生产中细小的缺陷需要被可靠的检出。工业异常检出旨在从正常的样本中检测异常的、有缺陷的情况。工业异常检测主要面临的挑战: 难以获取大量异常样本正常样本和异常样本差异较小异常的类型不能预先得知这些挑战使得…

Linux Tomcat服务 【Tomcat-JVM-系统内核】 优化

---------------------Tomcat 优化------------------------- Tomcat默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面,分别为操作系统优化&…

智能电表价格比机械电表价格高那么多?为什么?

智能电表是一种电子式电表,采用微处理器进行数据处理和控制,具有远程监控、数据传输、电量显示等多种功能。而机械电表则是传统的机械式电表,采用旋转式或弹簧式机械结构进行计量。 智能电表的价格比机械电表高,这主要是由于以下几…

【每日挠头算法题(1)】——旋转字符串|亲密字符串

文章目录 一、旋转字符串思路1思路2 二、亲密字符串思路 总结 一、旋转字符串 点我直达终点~ 思路1 前提:如果s串和goal串长度不等,则goal串不可能是s串旋转得来,直接返回false; 通过观察,可以发现每旋转一次&#…