关于容器:Kata-Containers-20-的进击之路

41次阅读

共计 4915 个字符,预计需要花费 13 分钟才能阅读完成。

Kata Containers 开源我的项目于 2017 年底正式启动,其指标是将虚拟机(VM)的平安劣势与容器的高速及可管理性相结合,为用户带来杰出的容器解决方案。该我的项目在过来两年获得了哪些停顿?下一版本的路线图蕴含什么个性?首先让咱们疾速回顾一下 Kata Containers 我的项目的奋进之路… 

缘起:Kata Containers

2013 年,Docker 问世,容器成为热门新事物,寰球的开发者为之着迷。也难怪,容器以规范格局封装,将运行于规范操作系统环境上的利用打包,使应用程序可从一个计算环境疾速牢靠的切换至另一个计算环境,这对于那些想要疾速构建、测试和部署软件的开发者而言至关重要。容器具备轻量化、低开销的个性,简直能够立刻被调度和启动,可在任何环境中运行,为微服务提供便当,扩大资源等(以上仅列举了一些风行的劣势)。只管有许多技术劣势,但容器有一个毛病 – 容器与宿主机共享内核,这可能会引发重大的安全漏洞问题。实践上,如果您在单个主机上部署了多个容器,一旦其中某个容器被恶意代码利用,因为共享 namespace,该主机上的其余所有容器也容易受到攻打,在这种状况下,可能会对云基础设施整体形成重大的平安威逼。如果您是云供应商,平安威逼可能会扩大到云端客户的数据和业务,这是相对要防止的。

图 1. 传统容器:次要通过共享内核的 Cgroup 和 Namespace 来达到容器隔离和资源限度的目标

因而,许多负责大规模容器运行的运维人员将容器“嵌套”在虚拟机中,从逻辑上将其与运行在同一主机上的其余过程隔离开,但在虚拟机中运行容器会丢失容器的速度和敏捷性劣势。Intel 和 Hyper.sh(已退出蚂蚁团体)的开发人员意识到了这个问题,同时开始独立研发解决方案,两家公司都心愿容器能够解脱传统虚机的所有包袱,换言之,就是开发“面向云原生的虚拟化”技术:

  • 来自 Intel 开源技术核心的工程师在 Intel Clear Containers 我的项目中使用 Intel Virtualization Technology(Intel VT)技术来强化性能和平安隔离;
  • 与此同时,Hyper.sh 的工程师采纳类似的策略启动了开源我的项目 runV,将容器放在一个平安“沙箱”中,通过反对多种 CPU 架构和管理程序,侧重于开发技术中立的解决方案;

2017 年,两家公司将我的项目合并,互为补充,创立了开源我的项目 Kata Containers。Intel 和 Hyper.sh 联结开发者社区,心愿在各方的共同努力下,兼顾性能和兼容性,在为终端用户提供杰出利用体验的同时,减速开发新的性能个性以满足将来新兴用例的需要。Kata Containers 成为 OpenStack 基金会(OSF)除 OpenStack 之外的首个托管我的项目,该我的项目于 2017 年 12 月在北美 KubeCon 上正式公开亮相,社区座右铭是“快如容器,稳似虚机”。其实质是,通过 Kata Containers 让每个容器 /pod 采纳其独自的内核,运行在一个轻量级的虚拟机中。因为每个容器 /pod 当初都运行在专属虚拟机中,恶意代码无奈再利用共享内核来拜访邻近的容器,因而,容器即服务 (CaaS) 供应商可能更平安的提供在裸金属上运行容器的服务。因为容器之间的硬件隔离,Kata Containers 容许互不信赖的租户,甚至生产利用及未经认证的生产应用程序都能在同一集群内平安运行。

图 2. Kata Containers: 
每个容器 /pod 被隔离在各自的轻量级虚拟机中

因而,Kata Containers 与容器一样轻便快捷,并且可与容器生态系统无缝集成(包含风行的编排工具,如 Docker 和 Kubernetes),同时还具备虚拟机的平安劣势。

社区停顿

Kata Containers 我的项目成立的第一年,社区次要致力于合并 Intel 及 Hyper.sh 的代码,并在寰球的行业流动中介绍该我的项目独特的硬件隔离计划,这是其余容器运行时所不足的性能,同时也邀请了大量的社区开发者独特推动该我的项目。Kata Containers 社区现在曾经领有泛滥的贡献者和支持者,包含来自九州云、阿里巴巴、AMD、AWS、百度、Canonical、中国移动、CityNetwork、戴尔易安信、易捷行云、战火通信、谷歌、华为、IBM、微软、红帽、SUSE、腾讯、同方有云、中兴、英伟达、Mirantis、NetApp、PackageCloud、Packet、Vexxhost 等许多有影响力公司的开发者。随着社区的一直壮大,该我的项目正在稳步发展中。社区成就包含:

  • 退出凋谢容器倡导(OCI)标准,Kata Containers 社区继续与 OCI 和 Kubernetes 社区严密单干,并在 AWS、Azure、GCP 和 OpenStack 私有云环境以及所有次要 Linux 发行版中对 Kata Containers 进行定期测试;
  • 增加了对次要架构的反对,除 x86_64 外,还包含 AMD64,ARM,IBM p- 系列和 IBM z- 系列等架构;
  • 无缝集成上游 Kubernetes 生态系统,Kata Containers 当初能够立刻连贯到大多数开箱即用的 Kubernetes 网络;
  • 删除不必要的间接层,社区曾经去掉了 kata-proxy 组件,并在 KubernetesSIG-Node 开发者和 containerd 社区的帮忙下引入了 shim-v2,从而缩小了 Kata Containers 辅助过程的数量;
  • 升高开销,晋升速度,社区正致力晋升启动速度,缩小内存耗费,并朝着创立(简直)“零开销”沙箱技术的指标迈进。为此引入多个虚拟机管理程序,包含 QEMU,QEMU-lite,NEMU 和 AWSFirecracker。还与 containerd 我的项目整合,推动建设了 rust-vmm 我的项目,2019 年,社区用 Rust 重写了一个沙箱内的 agent,显著缩小了匿名页。总之,社区正通过一系列的改良工作来最大限度地缩小开销,通过引入 FirecrackerVMM 将内存开销缩小到 10MB,而通过 rust-agent 的合并将 agent 的匿名页从 10MB 缩小到 1.1MB;
  • “面向云原生的虚拟化”,与面向虚拟机畛域不同,容器畛域是以利用为核心的,为了解决这种差别,社区引入了 virtio-vsock 和 virtio-fs,后续将引入更灵便的内存弹性技术 virtio-mem;

如需具体理解我的项目停顿,可查看王旭的系列博客:KataContainers: 两年而立  

百度智能云的 Kata Containers 利用实际

百度,中国当先的搜索引擎运营商,寰球最大的中文网站托管商,寰球当先的 AI 公司 - 正在其百度智能云中大规模(超过 43k CPU 内核!)利用 Kata Containers,包含百度智能云函数计算(CFC)、百度智能云容器实例(BCI)、百度边缘计算等多种实际场景。百度智能云是百度面向企业和开发人员的智能云计算平台,致力于为各行各业的企业提供一体化的人工智能、大数据和云计算服务。依据 Synergy Research Group 公布的《2019 年第一季度亚太私有云市场报告》,百度已跻身中国私有云市场前四营垒。百度智能云是一个领有大量流量和简单部署场景的简单网络,如单集群峰值每日网页访问量达 10 亿 +,单租户容器规模 50,000+ 等。基于宽泛的平安容器技术调研,百度团队认为 Kata Containers 是一项具备高度平安和实践性的平安容器技术,最终抉择采纳 Kata Containers 进行技术开发和利用。百度在“Kata Containers 在百度智能云的利用实际”白皮书中具体论述了抉择 Kata Containers 的起因,记录并分享了其无关 Kata Containers 的利用案例,利用该技术时遇到的技术挑战以及百度工程师解决这些问题的翻新形式。张宇,百度高级架构师及白皮书作者示意:

  • 百度必须找出如何在充分发挥容器轻量化和敏捷性的同时,进步其容器隔离性来保障资源共享的平安,从而保障整个云基础架构和租户业务及数据的平安;
  • Kata Containers 的虚拟机隔离模式既保障了容器在在多租户环境中的平安隔离,同时也实现了对利用和用户的不可见;
  • Kata Containers 作为一种平安容器解决方案,在百度的容器服务中表演重要角色,并通过在不同场景下将虚拟机监控器(Virtual Machine Monitor, VMM)做替换来满足客户多样化的须要;

在胜利申请成为超级用户的过程中,百度论述了 Kata Containers 扭转其业务的形式:

2019 年,咱们基于 Kata Containers 的产品在 FaaS(性能即服务)、CaaS(容器即服务)和边缘计算畛域获得了市场胜利。百度智能云函数计算服务(CFC)基于 Kata Containers 为小度助手(DuerOS,达到亿级装机量的对话式人工智能操作系统)智能硬件的技术开发者提供部署平台,为 3,000 多名开发者、近 20,000 个技能提供了计算能力。百度容器实例服务(BCI)为百度外部的大数据业务提供了弱小的基础架构撑持,帮忙大数据部门构建起面向多租户的 Serverless 数据处理平台。百度智能云边缘计算节点(BEC)为所有客户提供开放式服务,基于 Kata Containers 的个性使多用户相互隔离、互不影响。

张宇在 2019 年 11 月开源基础设施峰会上海发表演讲时示意:百度曾经有 17 个重要的线上业务迁徙到了 Kata Containers 平台。Kata Containers 提供容器级别的相似于虚拟机的安全性机制,这给客户带来了极大的信念,缩小了他们将业务转移到容器环境时的担心。

Kata Containers 2.0 技术线路图

过来两年,Kata Containers 社区在付出一些开销的代价下,加强了容器的隔离性,同时推动了虚拟化更加的轻量化且“容器敌对”。Kata Containers 我的项目的将来愿景是持续欠缺沙箱隔离,进一步升高开销,开发面向云原生的虚拟化技术,以最小的老本进一步通明地隔离云本机应用程序。Kata Containers 2.0 版本预计于往年晚些时候公布,其次要指标如下:

  • 与已有的 Kubernetes 生态系统放弃兼容;
  • 容许将全副的利用,包含运行时过程、镜像 / 根文件系统等封装进沙箱中;
  • 去掉 Agent 的非必要性能,通过重写 Rust 中的要害组件以及改良其余架构,缩小对 Kata Containers 过程的封装;
  • 改良安全性,如调整架构等,将宿主机的性能尽量留在用户空间,并让长生命周期过程能够应用非 root 权限进行;
  • 增加对新内存缩放技术 virtio-mem 的反对,从而可在不毁坏平安隔离性的状况下,可按页进行内存的扩缩容,且不再须要思考内存条这些物理上原本并不存在的硬件的限度;
  • 反对 cloud-hypervisor 并为 Kata Containers 的场景进行配置与定制;

如需进一步理解社区无关 2.0 版本的改良打算,请拜访王旭的系列博客:

  • Kata Containers: 面向云原生的虚拟化
  • Kata Containers: 2.0 的蓝图

进一步理解 / 参加 Kata Containers 我的项目百度公司是一个很好的示范,积极参与开源我的项目及社区并取得成功。Kata Containers 社区欢送其余集体和组织的退出,通过奉献代码、文档及用例,促成我的项目的开发、优化和倒退。

如需具体理解 Kata Containers 我的项目,能够点击链接拜访社区官网:https://katacontainers.io/

对于作者

李昊阳 Horace Li:OpenStack 基金会中国社区经理,次要负责推动 OpenStack 生态系统在中国的倒退,晋升开源基础设施我的项目(包含 Kata Containers 等我的项目)及社区的活跃度与参与度。在退出 OpenStack 基金会之前,曾在 Intel 开源技术核心任职 13 年,负责技术客户经理,为中国的开源社区我的项目提供反对。

本文英文原文:https://thenewstack.io/the-road-to-kata-containers-2-0/

正文完
 0