跳转至

容器优化

虚拟化

虚拟化或虚拟技术(Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。本质是指资源的抽象化,提高资源的利用率。

容器

容器是一个标准化的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境可靠快速地运行到另一个计算环境。

不同点 container VM
启动速度 秒级 分钟级
运行性能 接近原生(直接在内核中运行) 5%左右损失
磁盘占用 MB GB
隔离性 进程级别 系统级别
操作系统 主要支持Linux 几乎所有
封装程度 打包项目代码和依赖关系,共享宿主内核 完整的操作系统,与宿主机隔离

容器隔离缺陷

容器隔离主要基于内核提供的namespace、cgroup、seccomp等机制,实现容器内的资源、文件、系统调用等限制和隔离。由于其仍然采用共内核的机制,尤其在公有云场景下,具有较大的攻击面。

优化思路

减小攻击面

由于攻击主要因共用内核,所以可以劫持容器的系统调用指令,并模拟操作系统分析处理指令。

结合虚拟化

考虑到虚拟化的安全性和速度,对虚拟化进行阉割,保留运行容器和其中程序的必要功能,减轻常规虚拟化开销,实现结合容器化和虚拟化。