持久卷(Persistent Volume)详解

本文详细介绍了Kubernetes中的Persistent Volume (PV)和Persistent Volume Claim (PVC)机制,以及它们如何在Kubernetes集群中管理存储资源。PV作为存储资源的抽象,由管理员创建和配置,PVC则是用户对存储资源的申请。文章还讨论了StorageClass的使用,动态资源供应模式,以及PV和PVC的工作流程,包括资源供应、绑定、使用和回收策略。此外,还提及了PVC的扩容机制和对不同存储类型的兼容性。
摘要由CSDN通过智能技术生成

一、概述   

 在Kubenetes中,对存储资源的管理方式和计算资源(CPU/内存),截然不同。为了能够屏蔽底层存储实现的细节,让用户方便使用及管理员方便管理,Kubernetes从1.0版本就已经引入了Persistent Volume(PV)和Persistent Volume Claim(PVC)

两个资源对象来实现存储管理系统。

    PV(持久卷)是对存储资源的抽象,将存储定义为一种容器应用可以使用的资源,PV由管理员创建和配置,它与存储提供商的具体实现直接相关,例如:GlusterFS、iSCSI、RBD或GCE和AWS公有云提供的共享存储,通过插件式的机制进行管理,供应用访问和使用。除EmptyDir类型存储卷,PV的生命周期独立使用它的Pod。

    PVC是用户对存储资源的一个申请。就像Pod消耗Node的资源一样,PVC消耗PV的资源。PVC可以申请存储空间的大小(Size)和访问模式(例如ReadWriteOnce、ReadOnlyMany或ReadWriteMany)。

    使用PVC申请的存储空间仍然不满足应用对存储设备的各种需求。在很多情况下,应用程序对存储设备的特性和性能都有不同的要求,包括读写速度、并发性能、数据冗余等要求。Kubernetes从1.4版本开始引入一个新的资源对象StorageClass,用于标记存储资源和性能,根据PVC的需求动态供给合适的PV资源。在kubernetes1.6版本时,StorageClass和存储资源动态供应的机制得到完善,实现了存储卷的按需创建,在共享存储的自动化管理进程中实现了重要的一步。

     通过StorageClass的定义,管理员可以将存储资源定义为某种类型(Class),正如存储设备对自身的配置描述(Profile),例如快速存储、慢速存储、有数据冗余、无数据冗余等。用户可以根据StorageClass的描述就可以直观的得知各种存储资源的特性,根据应用对存储资源的需求去申请存储资源了。

    Kubernetes从1.9版本开始引入容器存储接口Container Storage Interface(CSI)机制,目标是在Kubernetes和外部存储系统之间建立一套标准的存储管理接口,具体的存储驱动由存储提供商在Kubenetes之外提供,并通过该标准接口为容器提供存储服务类似CRI和CNI,目标是将Kubernetes代码和存储相关代码解耦。

二、PV和PVC的工作原理  

    可以将PV看做可用的存储资源,PVC则是对存储资源的需求。PV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值