其他分享
首页 > 其他分享> > 【华为云技术分享】iSulad轻量化容器实践解析

【华为云技术分享】iSulad轻量化容器实践解析

作者:互联网

 

容器应用带来的困扰

容器应用在2019年迎来新的一轮浪潮,全球整体容器市场规模以高达30%的速度高歌猛进,大多数企业开始全面拥抱容器化,容器的规模、密度愈加扩大。

根据Sysdig 2019年容器使用报告统计,在企业内部容器规模方面,9%的企业用户容器规模已经达到5000以上;在容器密度方面,与2018年相比,每台主机中的容器密度提高了100%,从15个增加到了30个,其中最大节点密度已经达到250个。

在这样的应用规模下,也许大家有类似的经历:

面对这两个问题,是否有什么解决方案么?本文将和大家一起探讨一下解决这两个问题的一些“心路历程”。

重新造个“轮子”?!

上述两个问题在大规模容器化应用的过程中不断出现,并且随着IoT、边缘计算产业的兴起变得愈发紧迫:边缘节点资源敏感,留给容器基础设施的资源屈指可数,一个更轻量、更快速的容器引擎呼之欲出。

接下来我们想分享一下应用过程中的一些尝试:

首先考虑“能否对开源容器引擎软件进行轻量化改造”,沿着这个思路,我们尝试过对Docker容器引擎进行了裁剪和精简化,例如去除不需要的功能、组件结构优化等,甚至对Golang本身编译进行优化,但是效果不甚理想。因为我们的使用范围并不只是服务器等通用场景,我们的容器甚至会运行在端侧的嵌入式设备上,单单裁剪容器引擎其实也并不能完全满足我们的要求。

另外,由于覆盖云、IoT、边缘计算等多个场景,我们的裁剪和轻量化并不能通用适配所有场景,因此需要维护多个容器引擎版本,这对我们的升级和维护造成了不少麻烦。

这时候,一个大胆的想法涌入了我们的脑海,是不是可以重新造个“轮子”!对于软件工程师来说,没有什么是比重新造个“轮子”更棒了!

对, 那我们就重新造一个“大一统”的容器引擎!

千呼万唤,iSulad来了

2017年,iSula容器团队开始了重新开发一个容器引擎的计划,并在2018年开始在华为内部分产品进行替代。

2019年,我们针对CRI接口进行了一次大范围的重构和补全,并最终决定将它与openEuler操作系统一并开源出来。

现在的iSulad项目的目标是成为通用的端、边、云平台一体的容器引擎,可提供统一的架构设计来满足云、IoT、边缘计算等多个场景的应用。

最后,我们的小蚂蚁iSulad终于出生了!

看到这里,同学们可能会有点疑惑,iSulad到底是啥呢?

iSula 在居住中南美洲亚马逊丛林的巴西原住民眼里,它是一种非常强大的蚂蚁,学术上称为“子弹蚁”,因为被它咬一口,犹如被子弹打到那般疼痛,它是世界上最强大的昆虫之一。

iSula为全量的容器软件栈,包括引擎、网络、存储、工具集与容器OS;iSulad 作为其中轻量化的容器引擎,可以为多种场景提供最灵活、最稳定、最安全的底层支撑,与子弹蚂蚁"小个头、大能量"的形象不谋而合。

iSulad的特点:

  1. )iSulad采用C/C++语言实现,具备运行速度快、底噪低等特性,且LXC运行时优秀的并发设计也为iSulad并发性能提供了基石;
  2. )架构设计上,除了启动容器部分需要通过fork/exec的方式,其他部分均使用调用函数库的方式加快执行速度;通过将镜像和rootfs部分独立为服务,以及优化镜像模块元数据的隔离性,实现了不同镜像和rootfs之间的操作完全隔离。

 

iSulad应用实测

经过上文的介绍,是不是想看看iSulad的实际效果呢?

更多信息

想要进一步了解iSulad项目并参与iSulad项目吗?

欢迎来我们的社区玩儿哦~

openEuler开源社区:https://openeuler.org

iSulad项目源码:https://gitee.com/openeuler/iSulad

标签:容器,iSulad,场景,轻量化,华为,引擎,应用
来源: https://www.cnblogs.com/huaweicloud/p/12525383.html