0
点赞
收藏
分享

微信扫一扫

k8s存储管理之存储类(动态存储)

StorageClass:存储类

PV的供给有两种方式:静态供给和动态供给

1.静态PV:集群管理员创建多个PV,它们携带着真实存储的详细信息,
这些存储对于集群用户是可用的。它们存在于Kubernetes API中,并可用于存储使用。

2.动态PV:当管理员创建的静态PV都不匹配用户的PVC时,集群可能会尝试专门地供给
volume给PVC。这种供给基于StorageClass。

PVC与PV的绑定是一对一的映射。没找到匹配的PV,那么PVC会无限期的处于unbound未绑定状态。

集群管理员也可以使用StorageClass实现PV资源的动态供给。每个StorageClass都包
含provisioner、parameters和reclaimPolicy字段, 这些字段会在StorageClass
需要动态分配PV时会使用到。

k8s存储管理之存储类(动态存储)_StorageClass:存储类

StorageClass的属性:

1)Provisioner(存储分配器):用来决定使用哪个卷插件分配 PV,该字段必须指定。
可以指定内部分配器,也可以指定外部分配器。外部分配器的代码地址为:kubernetes-incubator/external-storage,其中包括NFS和Ceph等。

(2)Reclaim Policy(回收策略):通过reclaimPolicy字段指定创建的
Persistent Volume的回收策略,回收策略包括:Delete 或者 Retain,没有指定默
认为Delete。

更多属性查看:https://kubernetes.io/zh/docs/concepts/storage/storage-classes/

补充:
a. NFS Client Provisioner是一个automatic provisioner,使用NFS作为存储**,
自动创建PV和对应的PVC**,本身不提供NFS存储,需要外部先有一套NFS存储服务;

b.PV以 $ {namespace}-$ {pvcName}-$ {pvName}的命名格式提供(在NFS服务器上);
c.PV回收的时候以 archieved-$ {namespace}-$ {pvcName}-$ {pvName} 的命名格式
(在NFS服务器上);

d.nfs-client-provisioner源码地址:
https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client

每个存储类都有一个provisioner,用来决定使用哪个卷插件制备PV。

目前,NFS没有内部制备器,需要使用外部制备器插件来实现PV的动态供给。

官方内部支持的制备器参见:https://kubernetes.io/zh-cn/docs/concepts/storage/storage-classes/#provisioner
NFS外部制备器插件参考:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner


举报

相关推荐

0 条评论