近期 UnitedStack 公有云在国内率先提供了对 CoreOS 的支持,广大玩家可以很轻松地在 UOS 上体验、研究 CoreOS 了。以下是一点经验分享,抛砖引玉,希望能给大家带来些许帮助。
CoreOS 和 docker 简介
关注云计算的同学一定注意到了 docker ,而关注 docker 的朋友,也一定听说过 CoreOS 。它们都是近期很火热的焦点,网上铺天盖地有各式各样的介绍,不再引述,这里仅说一点个人看法。
可以说,CoreOS 是Linux发行版中的一朵奇葩,而 docker 是虚拟化领域的一朵奇葩,二者合在一起,于是我们得到了。。。两朵奇葩。。。哈哈,玩笑。严肃讲,CoreOS 不是以传统模式做的 OS:
1,传统的 Linux 发行版(除了Gentoo这样的奇葩),都有包管理体系、软件包repo,系统安装的过程就是从repo(可以是http/ftp、nfs、iso等)中获取软件包解包安装。而 CoreOS 压根就没有包管理机制,官方直接发布二进制的系统映像,安装方式就是dd。不过映像格式倒是很丰富,ISO、PXE、各大虚拟机、多种云平台一应俱全。
2,分区模式也比较独特,号称有两个root分区,一个用于常规启动,另一个作为更新分区,系统更新将会被安装到更新分区。两个分区可以切换,系统更新后,更新分区会自动变为常规启动分区,重启就会加载新系统。在支持的平台上,使用kexec方式重启,避免漫长的硬件自检过程,仅需数秒即可完成。从实际的分区列表看,具体实现细节要更复杂,精力所限笔者尚未深究,有了解的同学还请不吝赐教,谢谢!
3,CoreOS 设计之初,就没打算让用户以传统的裸进程的方式跑服务,而是全部通过docker来运行应用,CoreOS 就是一个极简的、只跑docker的 Linux 系统。另一方面,docker 也不是要做传统意义的虚拟机(尽管 docker 容器很像虚拟机),其设计理念是“一种新的应用打包/部署/运行/管理方式”。 CoreOS 与 docker 的配合,相当于把传统的混杂在一起的操作系统和应用做了解耦,分成两层,CoreOS 更偏底层,甚至有点像硬件固件,而 docker 负责偏上的应用层。
CoreOS官网