⛱️

[K8S] SC PV PVC

我们先询问一下 ChatGPT,看看 人工智能AI 怎么回答:

省流版:

定义

问:一句话解释 K8S 中 SC、PV、PVC

答:

存储类(StorageClass)定义了持久卷声明(PersistentVolumeClaim)所需的属性和行为,而持久卷(PersistentVolume)是实际的存储资源,持久卷声明(PersistentVolumeClaim)是 Pod 对持久卷的请求。
 
简而言之,存储类定义了持久卷的供应方式,持久卷是预先配置的存储资源,持久卷声明是 Pod 对持久卷的请求。存储类通过与 持久卷声明 绑定来创建符合需求的 持久卷,使得 Pod 可以使用持久卷。

从北漂租客眼中的看法:

  • 存储类 相当于我爱*家、链*等这种租房中介商
  • 持久卷 相当于一套房子(三室两厅、两室三厅、豪华别墅等)
  • 持久卷声明 相当于租客的需求
  • Pod 相当于租客
租客(Pod)想租房子需要找到中介(SC)说出自己的需求(PVC)。中介(SC)根据租客需求(PVC)找到房子(PV)提供给租客使用。
注意:省流版结束了,下面是大篇幅的专业解释和演示(三个租客合租到三室的例子)。

正经版:

定义

notion image
在 Kubernetes 中,存储类(StorageClass)、持久卷(PersistentVolume,PV)和持久卷声明(PersistentVolumeClaim,PVC)是用于管理持久化存储的关键组件。下面是它们之间的关系和作用:
  1. 存储类(StorageClass):存储类是用于定义持久卷的供应方式的抽象。它定义了存储卷的类型、访问模式、回收策略等信息。存储类允许管理员为不同的存储需求创建不同的策略,并且可以根据需要动态创建和删除持久卷。当创建 PVC 时,可以指定要使用的存储类,以便 Kubernetes 根据存储类的定义来创建相应的 PV。
  1. 持久卷(PersistentVolume,PV):持久卷是集群中的一块网络存储空间,它独立于 Pod 的生命周期。PV 是由管理员预先配置的,可以是物理存储设备、网络存储或云存储等。PV 具有容量、访问模式和回收策略等属性。PV 可以手动创建,也可以由存储类动态创建。当 PVC 请求一个符合条件的 PV 时,Kubernetes 会根据存储类的定义和可用的 PV 来选择并绑定一个 PV 给 PVC。
  1. 持久卷声明(PersistentVolumeClaim,PVC):持久卷声明是 Pod 对持久卷的请求。PVC 描述了 Pod 对存储的需求,包括容量、访问模式等。PVC 是通过与存储类绑定来创建符合需求的 PV 的一种方式。当创建 PVC 时,可以指定所需的存储类和其他属性,Kubernetes 会根据这些信息来选择并绑定一个合适的 PV 给 PVC。Pod 可以通过 PVC 来访问和使用持久卷。

演示

演示环境使用到了基于OKD开源项目发行的企业版(统信有雀)。
NFS 外部驱动

通过使用 nfs 存储类演示

1、git clone 自动脚本
2、搭建 nfs 服务器
notion image
3、使用有雀平台创建 NFS 动态分配服务器
notion image
4、创建测试 pod1、pod2、pod3
notion image
通过 UCCPS web 拓扑图查看pod
notion image
5、登录 nfs 服务查看演示结果
notion image

演示完成!!!

  • 给没有看懂的人补个图理解一下,也和省流版进行一下呼应。
notion image

专业名词解析

  • K8S: Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
  • OC: oc 是 OKD 的命令行工具,用于与 OKD 集群进行交互和管理。
  • OKD: (Origin Community Distribution of Kubernetes)是一个开源的Kubernetes发行版,它是Red Hat OpenShift的上游项目。OKD提供了一个容器化应用程序平台,用于构建、部署和管理容器化应用程序。与标准的Kubernetes发行版相比,OKD提供了一些额外的功能和工具,以帮助开发人员更轻松地构建和管理容器化应用程序。
  • UCCPS: 统信容器云管理平台(Uniontech Container Cloud Platform Solution-UCCPS)简称:【统信有雀】
 

如有不正确的内容欢迎大佬们指出,我必将改正~