kubernetes存储方案(二):Heketi+GlusterFS+StorageClass实现pv自动化

StorageClass介绍

StorageClass实现了pv的自动化,在动态资源供应模式下,通过StorageClass和PVC完成资源动态绑定(系统自动生成PV),并供Pod使用的存储管理机制。

Kubernetes提供了一套可以自动创建PV的机制,即:Dynamic Provisioning。而这个机制的核心在于StorageClass这个API对象。
StorageClass对象会定义下面两部分内容:

  1. PV的属性。比如,存储类型,Volume的大小等。
  2. 创建这种PV需要用到的存储插件,即存储制备器。
    有了这两个信息之后,Kubernetes就能够根据用户提交的PVC,找到一个对应的StorageClass,之后Kubernetes就会调用该StorageClass声明的存储插件,进而创建出需要的PV。

简单的说,创建一个StorageClass后,后续不管哪个命名空间的pod需要pvc,都能通过这个StorageClass自动创建pv,不需要频繁的创建pv。

参考文档:https://kubernetes.io/zh-cn/docs/concepts/storage/storage-classes/#glusterfs

StorageClass使用案例

本次案例是以heketi+glusterfs分部署存储方案来做说明的,其中的一些参数还需参考: https://www.cnblogs.com/zoujiaojiao/p/17676234.html。

比如:
clusterid: 034f10398853b67682761d318f624d33
resturl: http://10.1.30.30:8080
restuser: admin
restuserkey: adminkey

创建 StorageClass

# cat storageclass-glusterfs.yaml
 
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:   #配置集群默认的 StorageClass
    storageclass.kubernetes.io/is-default-class: "true"
  name: glusterfs   #storageclass的名称
parameters:
  clusterid: 034f10398853b67682761d318f624d33  # gfs集群的id
  gidMax: "50000"
  gidMin: "40000"
  restauthenabled: "true"
  resturl: http://10.1.30.30:8080  #gfs的管理工具heketi的地址
  restuser: admin
  restuserkey: adminkey
  volumetype: replicate:2
provisioner: kubernetes.io/glusterfs
reclaimPolicy: Delete
volumeBindingMode: Immediate

 
# 创建 storageclass 资源
kubectl create -f storageclass-glusterfs.yaml
 

创建pvc

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: dmp-datart-pvc  #pvc的名称
  namespace: dmp-dev
spec:
  storageClassName: glusterfs  #storageclass的名称
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

在pod中volumes的配置

        volumeMounts:
        - mountPath: /datart/files   #容器中的路径
          name: dmp-datart-storage   # volumes名称

      volumes:
      - name: dmp-datart-storage   # volumes名称
        persistentVolumeClaim:
          claimName: dmp-datart-pvc  #pvc的名称
      securityContext:
        runAsUser: 65534
        runAsGroup: 65534
        fsGroup: 65534
        fsGroupChangePolicy: Always
posted @ 2023-09-04 10:15  邹姣姣  阅读(18)  评论(0编辑  收藏  举报