Kubernetes—动态存储卷配置(StorageClass资源)

StorageClass的介绍

  StorageClass是对存储资源的一个抽象定义。与静态模式的存储卷配置(就是集群管理员手动去创建持久卷PV),StorageClass是一种动态模式的存储卷配置。StorageClass资源同PV一样,也不是命名空间级别的,是集群级别的。
  StorageClass资源使得集权管理员解放双手,无需多次手动创建持久卷PV,集群管理员只需要创建不同类别的存储类对应的StorageClass资源,供用户的PVC资源进行引用,k8s系统会自动创建持久卷PV与持久卷声明PVC进行绑定。
  在用户创建持久卷声明PVC之前,集群管理员需要创建StorageClass资源,这样才能动态的创建新的持久卷PV。

StorageClass的作用or优势

  1. 减少了用户对于底层存储资源各方面细节的关注,只需要关注自己创建的PVC资源,引用存储类的对应StorageClass资源即可;
  2. 集群管理员将从多次创建PV这项工作中解脱出来,只要有了StorageClass资源,PVC创建引用好后,k8s系统会自动为其创建合适的PV,并且将PV和PVC绑定好,从而实现动态的资源供应。

StorageClass的定义

StorageClass主要包含了名称、后端存储提供者、后端存储参数等配置;
yaml文件示例:

apiVersion: storage.k8s.io/v1beta1
kind: StorageClass
metadata:
  name: nfs-storage-test
provisioner: fuseim.pri/ifs
parameters: 
  type: xxx
  ... ...                       

关键配置说明:

  1. 名称:
    metadata.name主要描述了StorageClass的名称,主要为持久卷声明PVC应用,在PVC的yaml文件中通过spec.storageClassName对其进行引用。

  2. 提供者:
    provisioner描述的是底层存储资源的提供者,一般是以"kubernetes.io/"开头,用户也可以自定义,如上述例子。在PVC创建后,持久卷PV由该metadata.name的StorageClass资源中引用的provisioner创建。

  3. 参数:
    parameters可有可无,这是后端存储资源提供者的一些参数设置,如果是自定义的provisioner,不一定有参数。

StorageClass常用命令

创建StorageClass资源(yaml方式)
$ kubectl create -f storageclass_test.yaml

查看StorageClass资源
$ kubectl get storageclass -n ns1
我们也可以通过缩写进行查看kubectl get sc

查看某个StorageClass资源详情
$ kubectl describe sc sc_name
其中,sc_name为StorageClass资源的名称

删除StorageClass资源
$ kubectl delete sc sc_name
其中,sc_name为StorageClass资源的名称

猜你喜欢

转载自www.cnblogs.com/Andya/p/12445067.html