首先介绍下有容云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里的容器之间共享数据。 普通Volume和运用它的Pod之间是一种静态绑定关系,我们无法单独创建一个普通volume,因为它不是一个独立的K8S资源对象。而Persistent Volume 简称PV是一个K8S资源对象,所以我们可以单独创建。它不和Pod直接发生关系,而是通过Persistent Volume Claim,简称PVC来实现动态绑定。静态方式是管理员手动创建一堆PV,组成一个PV池,供PVC来绑定。 Retain就是保留现场,K8S什么也不做。Delete 策略,K8S会自动删除该PV及里面的数据。Recycle方式,K8S会将PV里的数据删除,然后把PV的状态变成Available,又可以被新的PVC绑定运用。 1.3 StorageClass(跨节点 – 动态方式) 动态方式是通过一个叫 storage class的对象由存储系统根据PVC的要求自动创建;运用StorageClass除了由存储系统动态创建,节省了管理员的时间,还有一个好处是可以封装不同类型的存储供PVC选用。 |