Kubernetes数据持久化之Storage Class(自动创建PV)

通过博文Kubernetes数据持久化可以了解到Kubernets实现数据持久化的流程为:搭建NFS底层存储——>创建PV——>创建PVC——>创建pod 最终将pod中的container实现数据的持久化!
从上述流程中,看似没有什么问题,但是仔细研究就会发现:PVC在向PV申请存储空间时,是根据指定PV的名称、访问模式、容量大小来决定具体向哪个PV申请空间的。

打比方说:如果PV的容量是20G,定义的访问模式是WRO(只允许以读写的方式挂载到单个节点),而PVC申请的存储空间为10G,那么一旦这个PVC是向上述的PV申请的空间,也就是说,那么PV有10G的空间被白白浪费了,因为其只允许单个节点挂载。这是一个非常严重的问题。就算不考虑这个问题,我们每次手动去创建PV也是比较麻烦的事情,这是就需要使用一个自动化的方案来替我们创建PV。这个自动化的方案就是——Storage Class(存储类)!

Storage class(存储类)概述

Storage class(存储类)是Kubernetes资源类型的一种,它是由管理员为管理PV更加方便而创建的一个逻辑组,可以按照存储系统的性能高低、综合服务质量、备份策略等分类。不过Kubernetes本身并不知道类别到底是什么,这是一个简单的描述而已!

存储类的好处之一就是支持PV的动态创建,当用户用到持久化存储时,不必再去提前创建PV,而是直接创建PVC就可以了,非常的方便。同时也避免了空间的浪费!

Storage class(存储类)三个重要的概念:
1)Provisioner(供给方、提供者):提供了存储资源的存储系统。Kubernetes内部多重供给方,这些供给方的名字都以“kubernetes.io”为前缀。并且还可以自定义;
2)Parameters(参数):存储类使用参数描述要关联到的存储卷,注意不同的供给方参数也不同;
3)ReclaimPlicy:pv的回收策略,可用的值有Delete(默认)和Retain;

下面通过一个nginx基于自动创建PV实现数据持久化的案例进一步的了解Storage Class的具体使用!
1)搭建NFS共享存储
为了方便,就直接在master节点上部署NFS存储了!

[root@master ~]# yum -y install nfs-utils rpcbind
[root@master ~]# vim /etc/exports
/nfsdata *(rw,sync,no_root_squash)
[root@master ~]# systemctl start nfs-server
[root@master ~]# systemctl start rpcbind
[root@master ~]# showmount -e
Export list for master:
/nfsdata *

2ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值