当前位置: 首页 > Linux

K8S实战(17)-通过StorageClass实现动态卷供应

时间:2023-04-07 01:37:07 Linux

前言StorageClass相当于创建PV的模板。用户通过PVC申请存储卷,StorageClass通过模板自动创建PV,然后绑定到PVC上。更新历史20200712-初稿-左成礼原文地址-https://blog.zuolinux.com/2020/07/12/storageclass.html启用动态卷配置,创建StorageClass对象,即创建模板。apiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:slowprovisioner:kubernetes.io/gce-pdparameters:type:pd-standard---apiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:fastprovisioner:kubernetes。io/gce-pdparameters:type:pd-ssd以上文件创建了两种不同类型的StorageClass,用户可以根据自己的需要通过PVC申请。使用动态卷配置供用户通过PVC请求。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:claim1spec:accessModes:-ReadWriteOncestorageClassName:fastresources:requests:storage:30Gi上面的文档说明PVC向storageClassName快的存储类申请一个volume,会得到一个PV给当然绑定到PVC。实践《K8S实战(六)| 配置NFS动态卷提供持久化存储》https://blog.zuolinux.com/2020/06/10/nfs-client-provisioner.html回收策略StorageClass动态创建的PersistentVolume会在类的reclaimPolicy字段中指定回收策略,可以是删除或保留。如果在没有指定reclaimPolicy的情况下创建StorageClass对象,它将默认为Delete。意思是PV被删除后,原来的数据也会被删除。建议设置为保留。defaultStorageClass查看当前默认StorageClass#kubectlgetscNAMEPROVISIONERRECLAIMPOLICYVOLUMEBINDINGMODEALLOWVOLUMEEXPANSIONAGEmanaged-nfs-storage(default)fuseim.pri/ifsDeleteImmediatefalse9m46smarkdefaultStorageClassasnon-defaultkubectlpatchstorageclass-defaultstorageclasscurrent'{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'将普通sc标记为默认kubectlpatchstorageclassstorageclassname-p'{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'结论StorageClass对象不是自动创建PV的,所以静态创建机制和动态创建机制应该存在这个参数同时。如果PVC中没有指定storageClassName,那么:如果集群启用了名为DefaultStorageClass的AdmissionPlugin,Plugin会自动为PVC和PV添加一个默认的StorageClass。如果没有该Plugin,则PVC的storageClassName值为“”,只能绑定到storageClassName为“”的PV。联系我微信公众号:zuolinux_com