OSC 第 73 期高手问答 — 应用容器化和 CoreOS 系统

叶秀兰 发布于 2015/05/19 07:40
阅读 3K+
收藏 11

OSCHINA 本期高手问答(5月19日- 5月25日)我们请来了 @Freyr林帆)为大家解答关于应用容器化和 CoreOS 系统方面的问题。

林帆,ThoughtWorks 成都 Cloud&DevOps 小组成员,目前主要研究内容是应用容器化和 CoreOS 系统相关领域。近期主要文章有《CoreOS 实践指南》系列,《CoreOS 那些事》系列和程序员杂志2015年5月刊的《Linux容器:Docker vs Rkt》等。

CoreOS 是一种专为集群环境设计的轻量级 Linux 发行版本。其设计初衷是提供更快的启动和运行速度,更小的系统资源消耗,更安全稳定的运行环境,以及更高效的集群组建体验。与普通Linux操作系统最明 显的不同就在于,CoreOS的系统分区是只读的,并预装了Docker和Rkt应用容器,这样就要求所有的用户应用通过容器来运行。这种特立独行的前卫 设计理念,在带来用户使用习惯的改变的同时,也为服务器的运维带来了新的思路。现在 CoreOS 方面的网站:http://www.serfdom.cn/

高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 应用容器化和 CoreOS 系统 方面问题向@Freyr 提问,请直接回帖提问。

加载中
1
Freyr
Freyr

引用来自“longfirst”的评论

@Freyr :1,coreos和Ubuntu及centos的本质区别,什么情况下用coreos,什么情况下用Ubuntu或centos。

2,coreos是不是因为linux+etcd才叫了个新名称coreos?

3,coreos配合k8s是不是很主流?是不是coreos也有类似与k8s的工具


抱歉这么晚了才来看消息哈!

-------------------------------------------
>> 1,coreos和Ubuntu及centos的本质区别,什么情况下用coreos,什么情况下用Ubuntu或centos。

本质上都是Linux的独立发行版,大的区别主要有两点:
1)预装的软件不一样,CoreOS系统预装的软件相比Ubuntu或CentOS少的多(从系统的安装CD内容也能看出来,CoreOS只有100多MB,Ubuntu的有700多MB),因此CoreOS系统在启动速度和运行内存上都有优势。另外CoreOS预装的软件很多是为集群环境配备的,例如Etcd和Fleet。
2)CoreOS的系统分区是只读的,也就说,用户不能直接安装程序到系统里面。所有用户程序的运行都要使用到Docker或Rkt容器,从而确保系统升级时候不会因为系统被用户修改而出现意外问题。

其他的还一些比较容易感受到的差异:
1) CoreOS的更新周期更短,Alpha版本每周更新一次,Release版本也基本每个月更新一次,而Ubuntu的更新周期是半年,长期支持版则是2年,CentOS的更新周期也差不多是1年多2年一次。
2) CoreOS的系统升级是支持够跨任意版本,随时向上升级到最新版本的,而Ubuntu和CentOS则会面临几年过后系统版本不再被支持而又无法安全升级到最新版本的问题。
3) CoreOS一般是以集群的方式运行的,官方推荐的节点数量是至少3台以上(其实是要使用Etcd的自发现组网功能则至少需要3台,否则一台也是可以的)。而Ubuntu和CentOS没有这种推荐。

使用场景而言,CoreOS更适合于产品运行环境,特别是需要长期运行的集群环境,而Ubuntu和CentOS更适合于开发环境。

-------------------------------------------
2,coreos是不是因为linux+etcd才叫了个新名称coreos?

和Ubuntu或者CentOS一样,只是一个发行版的名字而已。
CoreOS是基于ChromeOS做的二次开发,和Ubuntu、CentOS差别还是比较大,详见第一个问题。

-------------------------------------------
3,coreos配合k8s是不是很主流?是不是coreos也有类似与k8s的工具

CoreOS现在是k8s的官方主推平台。今年4月的时候,Google投了CoreOS公司1200万美元以共同合作发展k8s (http://www.ifanr.com/news/508889)。现在k8s正在和CoreOS做比较深度的集成,k8s从0.17版本开始已经可以支持CoreOS的自家容器Rkt了。
CoreOS有个Fleet,但是功能上和k8s不是一个级别的。未来在容器调度方面也会主推k8s的解决方案。
Freyr
Freyr
回复 @longfirst : 直接Virtualbox安装可以参考http://www.serfdom.cn/index.php/archives/4/这篇,但是里面没有提到镜像去哪儿下载(他提供的那个百度网盘的已经太古老了),镜像的下载地址可以参考这篇:http://www.it165.net/pro/html/201411/27908.html。总体来说还是偏麻烦的,建议用Vagrant。
Freyr
Freyr
回复 @longfirst : 我在本地一般是直接用Vagrant起集群的,博客里有一篇介绍的,官方文档在 https://coreos.com/docs/running-coreos/platforms/vagrant/。
longfirst
longfirst
你回答的太认真,详细了,非常感谢你 现在我遇到了一个实际的问题,我使用Virtualbox安装coreos集群,安装在硬盘上,在安装coreos1时正常,也能正常登陆,但是coreos2和coreos3在启动后,提示coreos is .然后是ssh host key is a出现3次,我看了,sshkey和第一个coreos配置一样,我重新安装了多次,都是同一个问题,不知道哪里的问题,你是...
0
longfirst
longfirst

@Freyr :1,coreos和Ubuntu及centos的本质区别,什么情况下用coreos,什么情况下用Ubuntu或centos。

2,coreos是不是因为linux+etcd才叫了个新名称coreos?

3,coreos配合k8s是不是很主流?是不是coreos也有类似与k8s的工具


0
沉默的幻想师
沉默的幻想师
@Freyr :如果不是为了分布式或者云计算啥的,单台服务器用coreos意义大吗?和centos比如何?
0
龙上
龙上
@Freyr :作为一个个人的用户是否可以使用这个系统?我现在每次用一个VPS都要重新配置环境,自己又不懂的写shell,使用这个系统是否可以避免每次都重新配置环境?
0
Freyr
Freyr

引用来自“沉默的幻想师”的评论

@Freyr :如果不是为了分布式或者云计算啥的,单台服务器用coreos意义大吗?和centos比如何?

用单台CoreOS服务器的唯一比较有说服力的理由就是无限版本升级,相当于内核版本可以随时升级到最新稳定版,安全补丁自动打,平时管都不用管,也不会出现CentOS 6升级不到CentOS 7只好重装这样的情况。不过这个功能在国内还有点坑,可以参考我博客里面的《CoreOS那些事之系统升级》那篇文章。除此以外,可以说,意义不大。

如果作为开发用的机器还是推荐CentOS,作为运行环境可以考虑(我指的是单纯用来运行服务,平时几乎不会登陆的那种)。

沉默的幻想师
沉默的幻想师
太感谢了,回答的非常好
0
Freyr
Freyr

引用来自“龙上”的评论

@Freyr :作为一个个人的用户是否可以使用这个系统?我现在每次用一个VPS都要重新配置环境,自己又不懂的写shell,使用这个系统是否可以避免每次都重新配置环境?

开源免费的,个人用户是可以使用的哈。CoreOS主要是针对集群环境设计的Linux系统发行版,安装和运维会比较依靠shell,并且很多操作会需要使用到容器,和其他的Linux系统在操作上略有差异,如果对shell本身不熟悉,上手会相对困难。

解决每次重新配置环境的一种比较好的方法是使用例如Docker这样的应用容器来打包整个运行环境并上传到DockerHub,这样新的主机只需要运行一下Docker,一条命令就可以把整个环境下载并准备好了。CoreOS预装了Docker,但是Docker本身是可以安装在各种发行版上面的。

Docker也是需要Shell来启动的,可以安装一些基于Web的操作界面,比如 DockerUI、Seagull、Shipyard

dockerer
dockerer
回复 @Freyr : 谢谢,以上几家类似于是做“公有云”,企业内部要部署的话不适合。查到一家cSphere-希云.这个是提供中文界面的管理控制面板!
Freyr
Freyr
回复 @kernalsky : 据我所知的没有,倒是有一些直接提供Docker容器服务的云平台有中文的界面,比如云雀(https://www.alauda.cn)、道客(https://www.daocloud.io/)、时速云(https://www.tenxcloud.com/)这些,大多还在内测阶段。都是连镜像存储和容器运行一起托管的服务。
dockerer
dockerer
国内有对管理Container好的控制面板吗?
0
云原生
云原生
@Freyr :CoreOS使用了哪种设计模式,为什么使用这种设计模式
0
云原生
云原生
@Freyr :请问CoreOS ,在哪些公司和渠道使用过,轻量级,指的是哪几个方面??
0
barlcky
barlcky
@Freyr :我一直没法理解在何种情况下适用容器化。现在知道数据库肯定是不适合的,但是什么样的应用场景更适合容器化呢?
返回顶部
顶部