首页>数码 >内容

结合Docker与K8s外挂Pure让储存阵列化身容器储存服务

数码2021-02-23 16:07:44
最佳答案

随着越来越多企业开始採用容器化的应用程式、甚至是微服务,该如何在这样的环境之下,搭配持续性储存(Persistent Storage),已成为IT基础架构管理面临的挑战之一,容器若要存取既有储存设备的Volume,除了透过容器环境内建的储存Volume外挂程式,像是Docker Volume Plugin,以及Kubernetes Persistent Volumes,几家主要的企业级储存厂商,也纷纷推出解决方案来因应这方面的需求。

例如,以全快闪储存阵列起家的厂商Pure Storage,在2018年6月召开的Accelerate全球用户大会上,发表可提供容器储存即服务(Container Storage-as-a-Service)的工具,称为Pure Service Orchestrator(PSO),採用该公司储存阵列的企业可运用PSO来建立相关的环境,促使在企业内部管理的IT基础架构,也能具备与外部公有云服务类似的资源使用弹性,并且支援基于容器、微服务架构的应用程式。

        

上图的参考架构,是Pure Storage储存阵列与Kubernetes丛集系统的整合应用示範。
Kubernetes的部分,包含了8个节点的丛集,其中有2个是主节点(Master node),而etcd的键值(key-value)储存库执行在3个节点上,负责管理整个丛集,而在Pod内执行的应用程式与主节点、etcd系统之间,是透过API来沟通。
至于Pure Storage产品的部分,负责提供持续性储存Volume(Persistent Storage Volumes,PV)。若要从Pure Storage FlashArray中,宣告部分储存区作为区块储存空间,以及从FlashBlade来挂载NFS,可透过Pure Service Orchestrator,也就是Pure Storage的Kubernetes外挂程式来促成。

在运作上,PSO整合了Docker、Kubernetes等多种容器应用平台──透过Pure Storage开发的Docker Volume Plugin,以及Kubernetes FlexDriver等两套软体,从而提供支援容器化环境的持续性储存环境。

在底层的Pure Storage储存阵列与上层的容器化应用程式之间,Pure Service Orchestrator扮演控制虚拟层(control plane virtualization layer)的角色,可将储存设备的耗用转化为储存服务的耗用,而且,这里整合了Kubernetes这类容器调度指挥框架,能为容器化应用程式提供持续性储存的支援。
有了Pure Service Orchestrator的中介处理,开发人员可以更容易在企业内部环境,搭建微服务化的应用程式、平台即服务,以及支援持续整合/持续交付(CI/CD)的应用程式发布。

同时,PSO对于此种储存环境的产生,也提供了可自动执行、便于随时扩展规模的方式,而为打算使用容器环境的软体开发人员,带来类似使用云端服务的操作体验。基于这样的动态建立储存架构,用户不仅可横跨多台储存阵列系统来扩张所需的储存资源,也能支援变化落差极大的容器化应用环境,例如,临时因应快速扩展至数千台容器规模的执行需求。

         

一般而言,我们当然可以单靠储存设备的外挂程式,来支援Kubernetes环境的运用(左图),不过,若要因应容器对于区块储存与档案储存的使用需求,并考量容器规模可能达到数以千计、多个Pods的规模,以及动态的储存区建立与扩充,Pure Storage认为,透过 Pure Service Orchestrator可提供容器即服务(container-as-a-service)的环境──亦即将Pure Storage储存阵列作为后端,提供开发者所发布的Persistent Volume(PV),以及Persistent Volume Claim(PVC)。
在这样的架构下,只需显露出区块储存的储存类别(StorageClass),当中将使用FlashArray;以及另一个基于档案的储存类别pure-file,当中将以FlashBlade作为后端供应者。之后,即可以此提供具有Read-Write-Many(RWX)或Read-Write-Once(RWO)属性的持续性储存。

在储存系统的搭配上,PSO可跨越Pure Storage两大产品线共同使用,能搭配多台FlashArray、FlashBlade,或是混合两者的架构;在储存服务的供应上,PSO所建立的环境,可支援档案储存与区块储存等两大类型。而且,用户对于储存服务当中的每一台储存系统,也能套用不同的组态,而获得使用上的弹性。

上图呈现了Kubernetes与Pure Service Orchestrator、Pure Storage储存阵列之间的互动关係,Kubernetes提出建立Persistent Volume的请求,Pure Service Orchestrator会将这样的请求转换为建立储存区的API,再传至Fleet Provisioner──在此可汇聚多种现行状态资料,像是效能、容量、运作正常度,也能根据不同标籤来进行捡选过滤。
而Fleet Provisioner又能连接多个「后端」,对应底层的Pure Storage储存阵列设备,并以REST API相互沟通。举例来说,如果现行使用的储存阵列容量不足,需要到另一台比较有余裕的储存阵列,建立储存区,我们就可以从这里新设置储存Volume。

若要在PSO的架构下,调整储存服务的规模,开发人员只需透过单一指令,就能根据他们容器化环境的成长需求,执行小型的扩充。

 

上面3张画面示範了Pure Service Orchestrator建立容器持续储存的指令输入,以及从Pure Storage储存阵列管理主控台呈现的储存区状态。

若要在OpenShift Container Platform这套容器即服务平台上,整合Pure Storage储存阵列来提供持续性储存空间,像是横挂多个OpenShift丛集节点的本地Docker容器储存,以及运用NFS档案储存来放置内部使用的容器映像,同时,又要能够支援动态调度指挥的机制,我们可以透过Pure Service Orchestrator来进行。

关于OpenShift Container Platform与Pure Service Orchestrator、FlashArray的整合应用,Pure Storage公布示範的操作影片,第一步是在OpenShift环境,安装Pure Storage提供的Kubernetes外挂程式。当中,会需要搭配对应JSON的组态描述档案,以便在FlashArray或是FlashBlade建立持续性储存,之后即可依照安装指令稿(installation script)来建立OpenShift元件。

完成前面的OpenShift Container Platform的外挂程式部署作业,接着,OpenShift的使用者就能运用FlashArray或FlashBlade建立的持续性储存,来建置各种应用程式。
而上面的萤幕截图,主要呈现的部分,是使用者透过OpenShift的网页介面,只需几个简单的滑鼠点选操作,输入MongoDB这套应用程式的组态,即可马上透过容器的自动产生与配置,建置一套NoSQL资料库环境,而底层用的储存正是坐落于FlashArray的持续性储存。

除了针对Docker、Kunernetes、OpenShift等容器化环境的整合支援,Pure Storage先前也已陆续推出两种自动化储存供应与整合的解决方案,像是基于企业伺服器虚拟化所发展出来的软体定义IT架构──VMware SDDC,以及常见的自动化组态配置与调度指挥软体生态,像是Ansible、Puppet、PowerShell等。

产品资讯

Pure Service Orchestrator
●原厂:Pure Storage(02)8729-2111
●建议售价:免费
●基本软体元件:Kubernetes FlexVolume Driver、Docker Volume Plugin
●搭配储存系统:FlashArray、FlashBlade
●支援作业系统:CentOS 7、RHEL7、Ubuntu 16.04 LTS
●搭配软体需求:Kubernetes、Docker、Helm
●支援容器环境:Docker、Swarm、Mesos

【注:规格与价格由厂商提供,因时有异动,正确资讯请洽厂商】

免责声明:本文由用户上传,如有侵权请联系删除!