首先介绍下有容云UFleet产品,UFleet -- 基于原生kubernetes技术,为企业打造专属的容器即服务(CaaS)平台,为企业提供应用的全生命周期管理服务和相关的资源服务,为应用的构建、部署和运行提供统一的平台,并保障应用所需的资源随需供应。
有了解决有状态应用对存储的需求,UFleet没有对接第三方存储系统,而采用的是在UFleet平台上融合有容云自主研发的分布式存储系统,从而大大提高了平台资源整合以及利用率;下面将从四个方面来讲讲UFleet平台上怎么融合存储系统?
一、Kubernetes有状态存储模型
kubernetes的存储系统大致分为三个层次:普通Volume,Persistent Volume 和StorageClass动态存储供应。
1.1 普通Volume(单节点)
普通Volume,最简单的一种是“单节点存储卷”,它和Docker的存储卷类似,使用的是Pod所在K8S节点的本地目录。具体有两种:一种是emptyDir,是一个匿名的空目录,由Kubernetes在创建Pod时创建,删除Pod时删除。 另外一种是 hostPath,与emptyDir的区别是,它在Pod之外独立存在,由用户指定路径名。
这类和节点绑定的存储卷在Pod迁移到其它节点后数据就会丢失,所以只能用于存储临时数据或用于在同一个Pod里的容器之间共享数据。
1.2 Persistent Volume(跨节点 - 静态方式)
普通Volume和使用它的Pod之间是一种静态绑定关系,我们无法单独创建一个普通volume,因为它不是一个独立的K8S资源对象。而Persistent Volume 简称PV是一个K8S资源对象,所以我们可以单独创建。它不和Pod直接发生关系,而是通过Persistent Volume Claim,简称PVC来实现动态绑定。静态方式是管理员手动创建一堆PV,组成一个PV池,供PVC来绑定
个PV创建完后状态会变成Available,等待被PVC绑定。一旦被PVC邦定,PV的状态会变成Bound,就可以被相应的Pod使用。Pod使用完后会释放PV,PV的状态变成Released。变成Released的PV会根据定义的回收策略做相应的回收工作。有三种回收策略,Retain、Delete 和Recycle:
Retain就是保留现场,K8S什么也不做。Delete 策略,K8S会自动删除该PV及里面的数据。Recycle方式,K8S会将PV里的数据删除,然后把PV的状态变成Available,又可以被新的PVC绑定使用。
1.3 StorageClass(跨节点 – 动态方式)
动态方式是通过一个叫 storage class的对象由存储系统根据PVC的要求自动创建;使用StorageClass除了由存储系统动态创建,节省了管理员的时间,还有一个好处是可以封装不同类型的存储供PVC选用。
StorageClass是Dynamic Provisioning(动态配置)的基础,允许集群管理员位底层存储平台做定义抽象。用户只需在PersistentVolumeClaim(PVC)通过名字引用StorageClass即可。

最低0.47元/天 解锁文章
2211

被折叠的 条评论
为什么被折叠?



