arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1802.10375cs.DCcs.SE
收藏

i2kit:一个基于轻量级虚拟机的不可变基础设施部署工具,专门用于运行容器

i2kit: A Tool for Immutable Infrastructure Deployments based on Lightweight Virtual Machines specialized to run Containers

Pablo Chico de Guzman, Felipe Gorostiaga, Cesar Sanchez

摘要:

Docker等容器技术正变得越来越流行。容器提供了卓越的开发人员体验,因为容器提供了轻量级的隔离和易于软件分发。容器还广泛用于生产环境中,在生产环境中会出现一系列不同的挑战,例如安全性,网络,服务发现和负载均衡。容器集群管理工具(如Kubernetes)试图通过引入一个新的控制层来解决这些问题,该控制层将容器作为部署单元。但是,添加新的控制层是一个额外的配置步骤,也是运行时错误的另一个潜在来源。云提供商提供的虚拟机技术在安全性、网络、服务发现和负载均衡方面更加成熟和成熟。然而,对于本地开发而言,虚拟机比容器更重,对于资源分配而言不太灵活,并且遭受更长的引导时间。本文提出了一种容器的替代方案,它具有两种方法的最佳特性:(1)使用成熟的、经过验证的云供应商技术;(2)不需要新的控制层;(3)与容器一样轻量级。我们的解决方案是i2 kit,这是一个基于不可变基础架构模式的部署工具,其中虚拟机是部署单元。i2 kit工具接受简化格式的Kubernetes部署清单,以便重用Kubernetes最成功的原则,但它使用Linuxkit为每个Pod创建轻量级虚拟机。Linuxkit消除了使用虚拟机所带来的大小缺陷,因为Linuxkit的占用空间大约为60 MB。最后,由于Linuxkit只安装最小的OS依赖集来运行容器,并且不同的Pod通过hypervisor技术隔离,因此系统的攻击面减少。

英文摘要:

Container technologies, like Docker, are becoming increasingly popular. Containers provide exceptional developer experience because containers offer lightweight isolation and ease of software distribution. Containers are also widely used in production environments, where a different set of challenges arise such as security, networking, service discovery and load balancing. Container cluster management tools, such as Kubernetes, attempt to solve these problems by introducing a new control layer with the container as the unit of deployment. However, adding a new control layer is an extra configuration step and an additional potential source of runtime errors. The virtual machine technology offered by cloud providers is more mature and proven in terms of security, networking, service discovery and load balancing. However, virtual machines are heavier than containers for local development, are less flexible for resource allocation, and suffer longer boot times. This paper presents an alternative to containers that enjoy the best features of both approaches: (1) the use of mature, proven cloud vendor technology; (2) no need for a new control layer; and (3) as lightweight as containers. Our solution is i2kit, a deployment tool based on the immutable infrastructure pattern, where the virtual machine is the unit of deployment. The i2kit tool accepts a simplified format of Kubernetes Deployment Manifests in order to reuse Kubernetes' most successful principles, but it creates a lightweight virtual machine for each Pod using Linuxkit. Linuxkit alleviates the drawback in size that using virtual machines would otherwise entail, because the footprint of Linuxkit is approximately 60MB. Finally, the attack surface of the system is reduced since Linuxkit only installs the minimum set of OS dependencies to run containers, and different Pods are isolated by hypervisor technology.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑