今天继续给大家介绍Linux运维相关知识,本文主要内容是Storage Class相关内容。
一、Storage Class简介
在前文Kubernetes详解(三十八)——NFS对PVC和PV使用实战中,我们通过一个实战来提现了PV和PVC在Pod运行中的作用。然而,PVC申请PV的这种机制存在很大的问题,即在很多情况下,并没有合适的PV可以供PVC申请,又或者是虽然有满足PVC要求的PV,但是该PV能够提供的存储空间超过PVC申请的存储空间,存在浪费的现象。
在这种情景下,我们提出了存储类StorageClass的概念,例如,系统划分出10T的总空间,并将其设置为一个存储类,PVC并不是直接申请PV资源,而是向restful发送资源申请,restful在接收到该申请后,会立即创建一个完全符合PVC申请需求的空间,以提供给Pod使用。Storage Class存储类的使用,对底层的存储有较高的要求,其架构如下所示:
二、Storage Class定义
在Kubernetes集群中,执行命令:
kubectl explain storageclass
可以查看storageclass资源的相关参数和使用。
该命令执行结果如下:
在该资源的配置清单中,有以下几个重要参数:
mountOptions: 挂载选项
parameters: 挂载参数
provisioner: 存储分配器
reclaimPolicy: 回收策略
volumeBindingMode: 卷的绑定模式
StorageClass的资源配置清单示例如下:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
reclaimPolicy: Retain
mountOptions:
- debug
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200