总24期
Technology    技术前沿
Technology    技术前沿
从虚拟化到云原生——CAS的升维之旅
文/穆臣龙
分享

随着IT技术不断渗透,企业需要开发越来越多的敏态业务,而传统的虚拟化方式不太能满足新型敏态业务的开发需求。如何在速度与稳定性之间追求平衡,达到效率的最优化成为企业需要解决的问题。以云原生为核心的新一代云计算技术出现,使得用户有更多的时间聚焦业务,而不是繁琐地重复机械操作,再有完善的自动化工具集来帮助用户完成服务发现、编排和集成,帮助技术人员发现问题、解决问题、预测问题,甚至自动修复问题,正是这些让云原生技术受到广泛欢迎。

说起云原生,就不得不从容器(Docker)这个主角说起。容器作为一种先进的虚拟化技术如今已然成为了云原生时代软件开发和运维的标准基础设施。Docker 是2013 年开源的应用容器引擎,开发者可以根据配置文件把应用及依赖包放到一个可移植的容器中,然后发布到一定版本以上的任何流行的Linux 机器上,实现轻量级别的虚拟化。容器使用沙箱机制,通过镜像来保证运行环境的一致性;通过Namespace实现资源隔离,通过Cgroup实现资源限制,通过写时复制技术(copy-on-write)实现高效的文件操作容器从镜像启动,启动速度在秒级别之内,从而可以更好地满足云计算的自动化及弹性扩容等场景。

从某种程度上说,容器技术和云原生就是相互促进、相互成就,容器技术催生了云原生思潮,云原生生态推动了容器技术发展。

从虚拟化到云原生

云原生(Cloud Native)是由Matt Stine于2013年提出,是一种构建和运行应用程序的方法,也是一套技术体系和方法论,用于帮助企业快速、持续、可靠,规模化地交付业务软件。云原生由微服务架构、DevOps和以容器为代表的敏捷基础架构组成。云原生应用主要特征包括:

1. 容器化封装。以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离。

2. 动态管理。通过集中式的编排调度系统来动态管理和调度。

3. 面向微服务。明确服务间的依赖,互相解耦。

图1 云原生应用主要功能和特性

从上述的特性可以看出,云原生的“云(Cloud)”表示应用程序位于云中,而不是传统的数据中心;“原生(Native)”表示应用程序从设计之初就要考虑到云的环境,原生地为云而设计,在云上以较佳方式运行,充分利用和发挥云平台的弹性+分布式的优势。采用基于云原生的技术和管理方法,可以更好地把业务生于“云”或迁移到云平台,从而享受“云”的高效和持续的服务能力。由于云原生是面向“云”而设计的应用,因此技术依赖于传统云计算的三层概念,即IaaS、PaaS、SaaS。

图2 云3层概念与云原生概念对应关系

兼容并包,H3C CAS的云原生升维之旅

将虚拟化、容器、云原生有效结合是未来云计算发展的方向和趋势。在这一趋势下,紫光股份旗下新华三集团H3C CAS虚拟化管理软件升级到7.0版本,基于Kubernetes和Docker技术,推出了面向云原生应用的轻量级云容器引擎服务。云容器引擎服务通过模板部署虚拟机和创建Kubespray业务容器, Kubespray通过网络连接到虚拟机内部,在虚拟机内部执行部署K8s任务,部署过程中向Harbor镜像库服务pull镜像完成k8s的安装。

H3C CAS从技术和架构设计上将云容器引擎架构与虚拟化架构完全解耦。由于K8s集群部署在虚拟机中,因此K8s集群中的控制节点和工作节点完全兼容虚拟机的特性,同时云容器引擎服务又可以轻松实现对容器的工作负载和用户K8s集群的管理。该种架构的另一种好处是在容器网络层面与虚拟机共用vSwitch,可以与虚拟机网络互通,在容器存储层面可以共享H3C CAS文件系统。

图3 CAS云容器引擎架构

H3C CAS云容器引擎为企业云原生架构开发带来如下价值:

1. 业务高可靠

云容器引擎利用K8s集群的特性,能够多平面为应用提供稳定性保障,从管理平面支持多控制节点的创建;从数据平面实时同步etcd数据到控制节点,避免数据丢失;从执行平面在工作节点发生故障时,业务自动漂移到其他节点;从页面平面控制节点会将异常Pod重新拉起,同时利用CAS虚拟化软件HA、快照和备份等功能保障虚拟机在基础设施层面的高可靠性。

图4 CAS云容器引擎双重高可靠保障机制

2. 弹性伸缩支持高并发应用

H3C CAS通过监测Pod资源的使用情况,当资源利用率达到一定峰值时能够根据容器应用快速创建Pod,当资源利用率降低到一定低谷时自动释放Pod,这就是云容器引擎的自动弹性伸缩,它还支持动态模式、定时模式、定量模式、手动模式、健康模式、混合模式等多种伸缩策略,能够灵活配置支撑不同场景。

3. 容器存储保障数据持久化

存储资源是云容器引擎的基础设施资源之一,用以保证容器的正常运行和数据持久化能力。存储不仅仅是数据持久化存储,也包括云容器引擎自身的存储需求以及镜像存储需求。因此容器存储的作用就是保证容器在启动时和运行时的数据(配置信息、依赖关系、账户、交互信息等)持久化,不受到容器状态的影响。云容器引擎通过优化开源代码,对PV/PVC静态和StorageClass动态存储进行配置,提升存储灵活性;多种存储联动,支持对接CAS 共享文件系统、块存储、NFS存储及分布式文件系统;适配多种协调协议(iSCSI、FC、NFS、RBD),支持不同类型、不同规格的存储后端;对容器的数据保护提供针对容器存储的快照、备份、回滚等数据策略,从而实现灾难恢复。

图5 CAS容器存储示意图

4. 自动化让运维省心省力

云容器引擎的监控和告警具备完善的云原生运维能力,它是基于Prometheus开发,通过Prometheus exporter实现全局可视化实施监控,通过多种协议对K8s集群、控制/工作节点、容器、日志、承载资源进行监控,还可通过定制展示用户最关心的指标;通过Prometheus Altermanager实现告警管理,灵活配置各种告警规则,适应不同业务场景;告警接收支持邮件和短信等方式。

图6 CAS云容器引擎示意图

结束语

H3C CAS虚拟化管理软件7.0的升维之旅,创新地将云原生应用与虚拟化架构结合,为企业开发云原生应用提供了便捷、有效的上云环境,提高了企业敏态业务基础架构的弹性和安全,大幅缩短了业务上线时间,帮助企业敏态业务、创新业务快速上线以及安全运营。

分享到
关闭