ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-03-19 17:03:24  阅读:408  来源: 互联网

标签:容器 iSulad 场景 轻量化 华为 引擎 应用


 

容器应用带来的困扰

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

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

  • 本统计数据来自sysdig-2019-container-usage-report

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

  • 当部署高密度容器节点或资源敏感环境时,容器的基础设施资源占用超乎了想象;
  • 当大规模应用拉起或突发流量时,原本觉得够用的并发速度却成为了瓶颈;

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

重新造个“轮子”?!

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

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

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

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

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

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

千呼万唤,iSulad来了

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

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

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

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

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

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

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

iSulad的特点:

  • iSulad的第一个使用场景是在端侧设备上,你很难想象在一个智能摄像头上会使用容器来达到快速、简单切换算法应用部署的功能,在那样严苛的资源要求环境下,iSulad (Light Mode)本身占用资源极低(<15M),并结合特殊的轻量化镜像,达成极致的资源占用的效果。
  • 当然,在通用场景下,iSulad也有着不错的轻量化表现。iSulad将端侧的优秀实践继承到通用服务器场景,利用轻量化的lxc运行时以及极其轻量的monitor进程,简化了整个调用链路
  • 随着Serverless的快速兴起,Serverless Container也成为云计算的一个重要的基础设施。为了满足Serverless Container的诉求,iSulad进行了一系列的尝试和努力:
  1. )iSulad采用C/C++语言实现,具备运行速度快、底噪低等特性,且LXC运行时优秀的并发设计也为iSulad并发性能提供了基石;
  2. )架构设计上,除了启动容器部分需要通过fork/exec的方式,其他部分均使用调用函数库的方式加快执行速度;通过将镜像和rootfs部分独立为服务,以及优化镜像模块元数据的隔离性,实现了不同镜像和rootfs之间的操作完全隔离。
  • 根据Sysdig的统计,当前79%的用户仍在使用Docker作为其主力容器引擎

  • sysdig-2019-container-usage-report

 

  • 应用的迁移一直是一个很令人头疼的问题,iSulad为了使开发者迁移方便,正在筹备开发一系列迁移工具,帮助开发者将自己的应用平滑迁移到iSulad上来。
  • 更激动的是,iSulad很快就会支持热迁移啦,那时候就能更便捷的迁移开发者的应用了。
  • iSulad针对不同的使用场景提供不同的模式供大家组合切换,开发者可以根据自己的使用需要灵活配置切换注重性能的performance模式和注重资源占用的light模式。
  • iSulad支持多种不同的容器形态,iSulad内置支持系统容器、安全容器和普通容器以及轻量化容器支持。

iSulad应用实测

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

  • 在内存资源占用方面,100容器启动情况下,iSulad比Docker所占用的内存资源消耗下降68%。

  • 在并发启动速度方面,100容器并发情况下,iSulad比Docker要快上35%:

更多信息

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

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

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

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

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有