k8s——pv(静态+动态storageclass)与pvc

本文介绍了Kubernetes中PersistentVolume(PV)和PersistentVolumeClaim(PVC)的概念及其关系,详细阐述了如何基于NFS创建静态PV资源和PVC资源,以及如何利用动态StorageClass创建PV和PVC。通过示例展示了PV与PVC的生命周期,以及StorageClass在解决PVC匹配PV需求中的作用。
摘要由CSDN通过智能技术生成

PVC和PV

PV概念

  1. PersistentVolume(PV)是集群中已由管理员配置的一段网络存储。集群中的资源就像一个节点是一个集群资源,可以从远程的NFS或分布式对象存储系统中创建得来(pv存储空间大小、访问方式)
  2. Pv是诸如卷之类的卷插件,但是只有独立于使用Pv的任何单个pod的生命周期。
  3. 该API对象捕获存储的实现细节,即NFS,isCSI或云提供商特定的存储系统
  4. PV就是从存储设备中的空间创建出一个存储资源

PVC概念

  1. PersistentVolumeClaim (Pvc)是用户存储的请求。Pvc的使用逻辑:在podt中定义一个存储卷(该存储卷类型为pvc),定义的时候直按指定大小,pvc必须与对应的pv建立关系,pvc会根据定义去pv申请,而pv是由存储空间创建出来的。pr和pvc是kubernetes抽象出来的一种存储资源
  2. 虽然PersistentVolumeClaims允许用户使用抽象存储资源,但是常见的需求是,用户需要根据不同的需求去创建v,用于不同的场景。而此时需要集群管理员提供不同需求的Pv,而不仅仅是Pv的大小和访问模式,但又不需要用户了解这些卷的实现细节
  3. 对于这样的需求,此时可以采用storageclass资源

PV与PVC之间的关系

PVv是集群中的资源。Pvc是对这些资源的请求,也是对资源的索引检查。PV和Pvc之间的相互作用遵循这个生命周期:Provisioning(配置)—> Binding(绑定)—>Using(使用)—>Releasing(释放)—>Recycling(回收)

两种PV的提供方式

1.这里有两种PV的提供方式:静态或者动态
2.静态-->直接固定存储空间:
集群管理员创建一些PV。它们携带可供集群用户使用的真实存储的详细信息。它们存在于Ktbernetes API中,可用于消费
3.动态-->通过存储类进行动态创建存储空间:
当管理员创建的静态PV都不匹配用户的 PvC时,集群可能会尝试动态地为 Pvc配置卷。此配置基于StorageClasses: PvC必须请求存储类,并且管理员必须已创建并配置该类才能进行动态配置。要求该类的声明有效地为自己禁用动态配置

基于nfs创建静态PV资源和PVC资源

img

配置nfs存储(192.168.80.14)

1.mkdir -p /data/v{
   1..5}
chmod 777 -R /data/*

2.vim /etc/exports
/data/v1 192.168.10.0/24(rw,no_root_squash,sync)
/data/v2 192.168.10.0/24(rw,no_root_squash,sync)
/data/v3 192.168.10.0/24(rw,no_root_squash,sync)
/data/v4 192.168.10.0/24(rw,no_root_squash,sync)
/data/v5 192.168.10.0/24(rw,no_root_squash,sync)

3.systemctl start rpcbind
  systemctl start nfs

4.showmount -e

5.hostnamectl set-hostname nfs01
su

6.echo '11111' > /data/v1/index.html
echo '22222' > /data/v2/index.html
echo '33333' > /data/v3/index.html
echo '44444' > /data/v4/index.html
echo '55555' > /data/v5/index.html

img
img

k8s的master节点定义PV

//这里定义5个Pv,并且定义挂载的路径以及访问模式,还有pv划分的大小
vim pv-demo.yaml
==========================================================
apiVersion
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PV(Persistent Volume)和PVC(Persistent Volume Claim)是ubernetes中用于实现持久化存储的概念。 PV是集群中的一块存储资源,可以是物理存储设备、网络存储或云存储。PV与实际的存储资源进行绑定,并且可以被多个Pod共享。PV具有独立于Pod的生命周期,即使Pod被删除,PV中的数据仍然保留。 PVC是Pod对PV的请求,类似于Pod对CPU和内存的请求。PVC定义了对PV的需求,包括存储容量、访问模式(例如读写单一或读写多个)、存储类别等。Pod可以通过声明一个PVC来请求与之绑定的PV动态供应是指Kubernetes集群中的存储插件可以根据PVC的需求自动创建PV,并将其与PVC绑定。动态供应的原理如下: 1. 首先,管理员需要配置一个或多个存储类(Storage Class)。存储类定义了一组存储插件和参数,用于创建PV。每个存储类都有一个唯一的名称。 2. 当Pod中声明了一个PVC,并指定了存储类名称,Kubernetes会自动查找匹配该存储类的插件。 3. 存储插件根据PVC的需求,自动创建一个PV,并将其与PVC绑定。 4. Pod可以通过声明一个与PVC绑定的Volume来使用这个PV。Kubernetes会自动将PV挂载到Pod中。 5. 当Pod被删除时,PV不会被立即删除,而是保留在集群中供其他Pod使用。管理员可以手动删除PV,或者根据策略自动回收。 总结来说,动态供应的原理就是Kubernetes根据PVC的需求和存储类的配置,自动创建PV并与之绑定,从而实现了动态的、按需的存储供应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值