k8s---PV、PVC

本文介绍了Kubernetes中的PersistentVolume (PV) 和 PersistentVolumeClaim (PVC),详细阐述了它们的作用、生命周期以及如何查看定义方式。此外,还讨论了PV的静态与动态配置方式,重点解析了使用NFS配置PV和PVC的多种情况,以及StorageClass在动态创建存储空间中的作用。
摘要由CSDN通过智能技术生成

一、PVC和PV概述

1.1 、什么是pvc和pv

PersistentVolume (PV)是集群中已由管理员配置的一段网络存储。集群中的资源就像一个节点是一个集群资源。PV是诸如卷之类的卷插件,但是具有独立于使用Pv的任何单个pod的生命周期。该API对象捕获存储的实现细节,即NFS, iscs1或云提供商特定的存储系统。

PersistentVolumeClaim (PVC)是用户存储的请求。PVC的使用逻辑:在pod中定义一个存储卷(该存储卷类型为PVC) ,定义的时候直接指定大小, pvc必须与对应的pv建立关系, pvc会根据定义去pv申请, 而pv是由存储空间创建出来的。pv和pvc是kubernetes抽象出来的一种存储资源。

虽然PersistentvolumeClaims允许用户使用抽象存储资源,但是常见的需求是,用户需要根据不同的需求去创建PV,用于不同的场景。而此时需要集群管理员提供不同需求的PV,而不仅仅是PV的大小和访问模式,但又不需要用户了解这些卷的实现细节。对于这样的需求,此时可以采用storageclass资源。

PV是集群中的资源。PVc是对这些资源的请求,也是对资源的索引检查。

PV和pvc之间的相互作用遵循这个生命周期

Provisioning (配置)–> Binding (绑定)–Using (使用)–> Releasing (放) —> Recycling (回收)
在这里插入图片描述

1.2、两种pv的提供方式

PV的提供方式有两种,分别是静态和动态

静态----> 直接固定存储空间

集群管理员创建一些pv。它们携带可供集群用户使用的正式存储的详细信息。它们存在于kubernetes API 中,可用于消
费。

动态----> 通过存储类进行动态创建空间

当管理员创建的静态pv都不匹配用户的pvc时,集群可能会尝试动态的为pvc配置卷。此配置基于StorageClasses: PVC 
必须请求存储类,并且管理员必须已创建并配该类才能进行动态的配置。要求该类的声明有效地为自己禁用动态配置

在这里插入图片描述
在这里插入图片描述

小结
PV 就是从存储设备的空间创建出一个存储资源(逻辑上存在)

静态:由k8s管理员创建的,供k8s集群(pod)使用的存储资源,可以从远程的NFS,或者分布式对象存储系统中创建
得来(pv存储空间大小,访问方式)

动态storageClass(存储类资源):用于动态的自动创建pvc申请的pv资源供pod使用

pod 使用pvc ----请求------> PV资源 ------> 存储设备中

二、 查看pv和pvc的定义方式

2.1 、使用explain 查看pv的定义方式

2.1.1、 查看pv的定义方式

kubectl  explain pv  #查看pv的定义方式

FIELDS:
  apiVersion
  kind
  metadata
  spec

2.1.2 、查看pv定义的规格

[root@master ~]# kubectl  explain pv.spec
spec:
  nfs (定义存储类型)
    path (定义挂载卷路径)
    server (定义服务器名称)
  accessModes (定义访问模型,有以下三种访问模型,以列表的方式存在,也就是说可以定义多个访问模式)
    ReadwriteOnce (RWO) 单节点读写
    ReadonlyMany (ROX) 多节点只读
    ReadwriteMany (RWX) 多节点读写
  capacity (定义PV空间的大小)
    storage (指定大小)

2.2 、使用explain 查看pvc的定义方式

2.2.1、 查看pvc的定义方式

kubectl  explain  pvc  #查看pvc的定义方式
KIND:  PersistentVolumeClaim
VERSION:  v1
FIELDS:
    apiVersion: <string>
    kind <string>
    metadata <Object>
    spec <Object>
    

2.2.2、 查看pvc的规格

kubectl  explain pvc.spec  #查看pvc的规格

spec:
	accessModes (定义访问模式,必须是pv的访问模式的子集)
	resources (定义申请资源的大小)
	  requests:  
	  storage:

三、配置nfs使用pv和pvc

3.1、配置nfs存储

[root@nfs ~]# yum -y install nfs-utils rpcbind
[root@nfs ~]# mkdir -p /data/volumes/v{
   1..5}
[root@nfs ~]# ls -R /data/
[root@nfs ~]# chmod  -R 777 /data/*

#配置nfs共享的目录
[root@nfs ~]# for i in {
   1..5}
do 
echo "/data/volumes/v$1 192.168.52.0/24(rw,no_root_squash,sync)" >> /etc/exports
done 


#写入网页内容
[root@nfs ~]# for i in {
   1..5}
do
echo "this is pv00$i" > /data/volumes/v$i/index
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值