浅析kubernates的pv和pvc

这篇具有很好参考价值的文章主要介绍了浅析kubernates的pv和pvc。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概要

最近,在看许多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系统发出的一种资源需求申请。)

浅析kubernates的pv和pvc
这里还需要明确几个职责:

  • 存储:存储工程师维护
  • 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就比较轻松了。文章来源地址https://www.toymoban.com/news/detail-480088.html

到了这里,关于浅析kubernates的pv和pvc的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s pv与pvc

    1.前言 PV 是 Kubernetes 集群中的一种资源对象,它代表着一块物理存储设备,例如磁盘、网络存储或云存储等。PV 可以被多个 Pod 共享,并且可以独立于 Pod 存在。PV 可以配置不同的访问模式 (Access Modes),例如 ReadWriteOnce 、 ReadOnlyMany 或 ReadWriteMany ,以确定 PV 可以被多少个 Pod 同

    2024年01月21日
    浏览(39)
  • k8s ------存储卷(PV、PVC)

    目录 一:为什么需要存储卷? 二:emptyDir存储卷  ​三:hostPath存储卷  四:nfs共享存储卷   五:PVC 和 PV 1、PVC 和 PV介绍 2、PV和PVC之间的相互作用遵循的生命周期 3、PV 的4 种状态 4、一个PV从创建到销毁的具体流程 六:静态创建pv和pvc资源由pod运用过程 ​1、配置nfs存储 ​

    2024年02月13日
    浏览(36)
  • k8s--动态pvc和pv

    目录 前情回顾 动态pv 实验模拟 步骤一:在stor01节点上安装nfs,并配置nfs服务 接下来在matser01上配置 步骤二:创建 Service Account,用来管理 NFS Provisioner 在 k8s 集群中运行的权限和动态规则 步骤三:使用 Deployment 来创建 NFS Provisioner  部署nfs-provisioners插件: 步骤四:创建 St

    2024年01月24日
    浏览(38)
  • PV & PVC in K8s

    在Kubernetes中,PV(Persistent Volume)和PVC(Persistent Volume Claim)是用于管理持久化存储的重要资源对象。PV表示存储的实际资源,而PVC表示对PV的声明性要求。当应用程序需要使用持久化存储时,它可以通过创建PVC来请求和使用PV。以下是使用PV和PVC时的一些注意事项: 定义存储类

    2024年02月09日
    浏览(21)
  • k8s 存储卷和pvc,pv

    存储卷---数据卷 容器内的目录和宿主机的目录进行挂载。 容器在系统上的生命周期是短暂的,deletek8s用控制器创建的pod,delete相当于重启,容器的状态也会回复到初始状态。 一旦回到初始状态,所有的后天编辑的文件的都会消失。 容器容器和节点之间创建一个可以持久化保

    2024年01月16日
    浏览(39)
  • 【Kubernetes】Kubernetes的PV和PVC的用法

      容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod中同时运行多个容器时,这些容器之间通常需

    2024年02月13日
    浏览(34)
  • k8s~动态生成pvc和pv

    有时,我们不想手动建立pv和pvc,这时,我们可以通过strongClass存储类来帮我们实现,动态建立pvc,并动态为它分配pv存储空间,我们以nfs为例,说一下动态分配在nfs存储截至上建立pv的方式。 StorageClass和PVC及PV 集群权限与绑定rbac.yaml 建立动态pvc的provisioner.yaml 建立strongClass的

    2024年02月03日
    浏览(36)
  • k8s里pv pvc configmap

    通过storageClassName 将PV 和PVC 关联起来。

    2024年02月11日
    浏览(20)
  • K8s---存储卷(动态pv和pvc)

    当我要发布pvc可以生成pv,还可以共享服务器上直接生成挂载目录。pvc直接绑定pv。 1、卷插件:k8s本生支持的动态pv创建不包括nfs,需要声明和安装一个外部插件 Provisioner: 存储分配器。动态创建pv,然后根据pvc的请求自动绑定和使用。 2、StorageClass:来定义pv的属性,存储类型

    2024年01月21日
    浏览(41)
  • k8s-pvc/pv扩容记录

    一次聊天过程中,对方提及pvc的扩容,虽然有注意过 storageclass 有个AllowVolumeExpansion的配置(有些csi插件是不支持该配置的,比如local-volume-provisoner),但是没有实际用过,所以还是心里没底,所以抽时间 做了下扩容的操作。这里是基于 ceph-csi 插件,在rbd的使用方式下做的 扩

    2024年01月22日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包