您当前的位置是:  首页 > 资讯 > 国内 >
 首页 > 资讯 > 国内 >

当vSAN遇上Kubernetes

2019-04-30 11:11:40   作者:庄才家   来源:CTI论坛   评论:0  点击:


  Kubernetes项目在2015年成为CNCF的首个项目,该容器编排平台是由谷歌开源给CNCF的,最初是从谷歌的Borg项目中脱颖而出。Kubernetes开源之后迅速成为整个云原生领域的首选开源容器编排器,支持并集成Kubernetes等开源技术的原生云计算基金会(CNCF)于2018年3月8号宣布,Kubernetes从CNCF旗下正式毕业,这也意味着该开源项目已经成熟,并且足够灵活,可在任何行业、各种规模的公司中大规模地管理容器。
  从2018年8月29号发布的最新CNCF用户调查报告可看到,企业在部署Kubernetes架构时面临的容器持久化存储挑战仍然处在高位。虽然当前Kubernetes Rook Ceph与CSI等开放Plugins接口致力于支撑Kubernetes容器持久化存储管理方面的问题,但这些技术均为开源项目,一般的企业客户难于掌握和持续运维这些成熟度不高的存储架构。
  VMware vSAN产品作为一款企业级分布式架构自2013年推出后,迅速成为SDS市场上主流产品,得到全球范围内19000家客户的采购与部署。
  本文致力于介绍如何通过VMware vSAN存储平台解决企业客户所面临Kubernetes容器持久化存储难度。
  首先,我们了解为Kubernetes提供持久数据的一些关键要求:
  • 工作负载Pod的数据需要通过重新启动/重新调度容器来持久化存储。
  • 当容器被重新调度时,它们可能暂时固定在一台主机上,也可能被调度到另一台主机上。
  • 对持久数据的Pod引用应该保持工作负载的可移植性。
  • 在容器上,重新调度磁盘需要与正确的ID重新关联。
  • 容器还可以跨Pod共享和并发访问数据。
  因为这些关键要求,使得Kubernetes要实现容器持久化存储非常困难,这也是社区正在致力解决的问题之一,主要困难如下:
  • 存储操作(挂载/绑定/创建/删除)需要让Kubernetes协调和编排。
  • 需要让Kubernetes调度平台感知到不同存储平台的特征和功能。
  • 需要为Kubernetes主节点和所有工作节点提供配置。
  其次,正是为了弥补这些关键要求与困难之间的差距,VMware Kubernetes Cloud provider 插件则可以帮助企业客户解决这些问题。
  一、为虚拟化下环境下的Kubernets 管理节点和工作节点提供存储空间
  一般情况下:管理节点和工作节点需要以下空间:
  1. 2个ephemeral磁盘空间
  2. 1个持久化空间(用于存放持久化数据如管理节点的etcd key/value数据和工作节点的docker images文件 )
  这部分的操作比较简单,只需要在VMware vCenter管理界面为不同管理VM和工作节点创建不同的磁盘即可。
  二、 为Kubernets Pod空号提供存储空间
  Kubernetes Pod存储空间需要通过Persistent Volume (PV)来实现
  1. 在vSphere vCenter管理界面上通过K8s Cloud Provider plugin将Persistent Volume 映射到vSANDatastore存储空间上的VMDK文件。
  2. 附加VMDK文件到工作节点VM,作为磁盘使用。
  3. Pod再从这个磁盘挂载volume进行使用。
  三、同时还可通过Cloud Provider plugin为PV分配不同的SPBM,过程如下:
  可在VMware vCenter管理界面创建对应的SPBM policy,如副本保护数量,磁盘条带数等参数(如右图所示)。
  将Provisioner、Datastore、StoragePolicyName等参数写入Pod创建时所用到的volume yaml文件(如左图所示)。
  最终将实现Pod volume被分配到vSANDatastore存储空间,并采用指定的存储策略。
  来源:vmware中国
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业