47 容器的崛起(下):系统、应用、集群的封装
你好,我是周志明。在理解了从隔离角度出发的容器化技术的发展之后,这节课我们接着从封装的角度来学习容器应用的发展。
封装系统:LXC
当文件系统、访问、资源都可以被隔离后,容器就已经具备它降生所需要的全部前置支撑条件了,并且Linux的开发者们也已经明确地看到了这一点。
因此,为了降低普通用户综合使用namespaces、cgroups这些低级特性的门槛,2008年Linux Kernel 2.6.24内核在刚刚开始提供cgroups的同一时间,就马上发布了名为Linux容器(LinuX Containers,LXC)的系统级虚拟化功能。
当然在这之前,在Linux上并不是没有系统级虚拟化的解决方案,比如传统的OpenVZ和Linux-VServer都能够实现容器隔离,并且只会有很低的性能损失(按OpenVZ提供的数据,只会有1~3%的损失),但它们都是非官方的技术,使用它们最大的阻碍是系统级虚拟化必须要有内核的支持。为此,它们就只能通过非官方内核补丁的方式来修改标准内核,才能获得那些原本在内核中不存在的能力。
如此一来,LXC就带着令人瞩目的光环登场,它的出现促使“容器”从一个阳春白雪的、只流传于开发人员口中的技术词汇,逐渐向整个软件业的公共概念、共同语言发展,就如同今天的“服务器”“客户端”和“互联网”一样。