[转]服务器操作系统CoreOS介绍



服务器操作系统CoreOS初体验


CoreOS官网主页使用一句话概括其理念:“A new way to think about servers”,以及紧接着的“CoreOS is Linux for massive server deployments”, 表示这是一个新思维方式思考未来服务器大规模部署的的Linux服务器操作系统。

CoreOS宣称最小化的定制版linux系统,具有:

  • Linux内核,Linux运行所需
  • 存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区 
    更新分区在更新完成后,自动重新启动系统,当前机器不需要从负载集群中移除,为了保证其它应用程序不被打断,会通过Linux cgroup限制更新过程中的磁盘、网络等IO使用。
  • systemd,作为默认系统和服务管理器,其优秀特性:

    支持并行化任务;
    同时采用 socket 式与 D-Bus 总线式激活服务;
    按需启动守护进程(daemon);
    利用 Linux 的 cgroups 监视进程;
    支持快照和系统恢复;
    维护挂载点和自动挂载点;
    各服务间基于依赖关系进行精密控制。
    
  • root分区被设计成只读,用以保证数据的一致性和更新可用

  • CPU、IO等资源隔离,自然要祭出容器(Container)来,CoreOS很明智使用Docker作为容器管理器用以构建、发布应用,从这个层面来看,一个应用其实就是一个容器。
  • etcd组件负责服务发现和配置共享,采用Raft分布式一致性协议算法,承担起,组件之间服务通信使用。很自然的,容器(Container)之间应用、服务的伸缩,就显得很简单了。其基因层面支持集群特性,当然,你也可以解读为云环境的支持。

看起来,这个系统是为类似于拥有众多平台的IT公司准备的。服务之间,粒度变得很细。

刚刚发布第一个0.1.0版本,官方总结特性如下:

  1. 接口简单,HTTP+JSON
  2. 安全,可选择的SSL通信协议
  3. 快速,经测试1000s单一实例写入操作
  4. 可靠,分布式层面使用Raft协议
  5. 坚固,集群的失败可以从磁盘恢复

要想体验,目前看来,最简单方式,需要在一个虚拟环境中尝试一把,当然也是这样做的。本次体验,基于Windows 7 64位系统。以下为简单步骤:

  1. 先安装VirtualBox 4.2.16,建议从官网下载。
  2. Vagrant,这次安装最新的1.2.7版本,下载地址
  3. 安装Git for Windows 1.8.3,可以让命令下直接使用git命令
  4. 安装CoreOS环境,打开windows命令行环境:

    git clone https://github.com/coreos/coreos-vagrant/
    cd coreos-vagrant
    vagrant up
    vagrant ssh
    

    执行完毕 vagrant ssh, 会自动生成一些ssh的一些信息:

    Host: 127.0.0.1
    Port: 2222
    Username: core
    Private key: C:/Users/nieyong/.vagrant.d/insecure_private_key
    

    使用熟悉的SSH终端工具登陆即可,这里推荐xshell,不在细述。SSH成功登入,可以看到欢迎信息:

    coreos-ssh

  5. 体验一把Docker作为容器管理器 
    这里快速体验一把,敲入一下命令:

    docker run ubuntu /bin/echo hello world
    

    此时,自动下载Ubuntu系统容器镜像文件:

    CoreOS-ubuntu

    更多Docker操作,请参阅其文档

  6. 进程管理systemd的一处使用这里想让系统启动时,执行一些简单任务。终端下输入

    sudo -i
    

    切换到Ubuntu ROOT用户角色下, 执行vi /media/state/units/hello.service,敲入如下内容:

    [Unit]
    Description=My Service
    After=docker.service
    
    [Service]
    Restart=always
    ExecStart=/usr/bin/docker run ubuntu /bin/sh -c "while true; do echo Hello World; sleep 1; done"
    
    [Install]
    WantedBy=local.target
    

    保存之后,我们需要做到模拟重启:

    systemctl restart local-enable.service
    

    现在查看一下日志,可以看到其输出:

    journalctl -u hello.service -f
    

    coreos-log

    更多systemd细节,请参考http://www.freedesktop.org/wiki/Software/systemd/

  7. 本次浅尝辄止,到此结束

总体看,CoreOS最大特色,专门为大规模服务器部署定制的Linux精简系统,尽可能的精简无关紧要的功能,将操作系统和应用程序完全分离,从而降低操作系统和应用程序的耦合度,同时解决了现有Linux服务器在容器资源、权限管理方面的欠缺。目前若说是颠覆性的操作系统,十分牵强,是不是未来,也不好说,但肯定是一种趋势。

因此,十分值得期待。 



来源:http://www.blogjava.net/yongboy/archive/2013/08/26/403325.html



CoreOS 实战:CoreOS 及管理工具介绍




【编者按】CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设计,旨在通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度。CoreOS作为Docker生态圈中的重要一员,日益得到各大云服务商的重视,目前已经完成了A轮融资,发展风头正劲。InfoQ希望《CoreOS实战》系列文章能够帮助读者了解CoreOS以及相关的使用方法。如果说Docker是下一代的虚拟机,那CoreOS就应该是下一代的服务器Linux,InfoQ愿和您一起探索这个新生事物。另外,欢迎加入InfoQ Docker技术交流群,QQ群号:365601355。

1. 概述

随着 Docker 的走红,CoreOS 作为一个基于 Docker 的轻量级容器化 Linux 发行版日益得到大家的重视,目前所有的主流云服务商都提供了对 CoreOS 的支持。CoreOS 是新时代下的Linux 发行版,它有哪些独特的魅力了?本篇作为《CoreOS实战》的第一部分,将向大家简要介绍 CoreOS 以及CoreOS 相关的管理工具,试图向您揭开CoreOS背后神秘的面纱。

2. CoreOS之禅

云计算新星 Docker 正在以火箭般的速度发展,与它相关的生态圈也渐入佳境,CoreOS 就是其中之一。CoreOS 是一个全新的、面向数据中心设计的 Linux 操作系统,在2014年7月发布了首个稳定版本,目前已经完成了800万美元的A轮融资。 CoreOS 专门针对大型数据中心而设计,旨在以轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度。现在CoreOS 已经推出了付费产品。通过付费,用户可以使用可视化工具管理自己的 CoreOS 集群。

与其他历史悠久、使用广泛的 Linux 操作系统相比,CoreOS 拥有下面几个优点。

首先,CoreOS 没有提供包管理工具,而是通过容器化 (containerized) 的运算环境向应用程序提供运算资源。应用程序之间共享系统内核和资源,但是彼此之间又互不可见。这样就意味着应用程序将不会再被直接安装到操作系统中,而是通过 Docker 运行在容器中。这种方式使得操作系统、应用程序及运行环境之间的耦合度大大降低。相对于传统的部署方式而言,在 CoreOS 集群中部署应用程序更加灵活便捷,应用程序运行环境之间的干扰更少,而且操作系统自身的维护也更加容易。

其次, CoreOS 采用双系统分区 (dual root partition) 设计。两个分区分别被设置成主动模式和被动模式并在系统运行期间各司其职。主动分区负责系统运行,被动分区负责系统升级。一旦新版本的操作系统被发布,一个完整的系统文件将被下载至被动分区,并在系统下一次重启时从新版本分区启动,原来的被动分区将切换为主动分区,而之前的主动分区则被切换为被动分区,两个分区扮演的角色将相互对调。同时在系统运行期间系统分区被设置成只读状态,这样也确保了 CoreOS 的安全性。CoreOS 的升级过程在默认条件下将自动完成,并且通过 cgroup 对升级过程中使用到的网络和磁盘资源进行限制,将系统升级所带来的影响降至最低。

另外,CoreOS 使用 Systemd 取代 SysV 作为系统和服务的管理工具。与 SysV 相比,Systemd 不但可以更好的追踪系统进程,而且也具备优秀的并行化处理能力,加之按需启动等特点,并结合 Docker 的快速启动能力,在 CoreOS 集群中大规模部署 Docker Containers 与使用其他操作系统相比在性能上的优势将更加明显。Systemd 的另一个特点是引入了 “target” 的概念,每个 target 应用于一个特定的服务,并且可以通过继承一个已有的 target 扩展额外的功能,这样使得操作系统对系统上运行的服务拥有更好的控制力。

通过对系统结构的重新设计,CoreOS 剔除了任何不必要的软件和服务。在一定程度上减轻了维护一个服务器集群的复杂度,帮助用户从繁琐的系统及软件维护工作中解脱出来。虽然CoreOS 最初源自于Google ChromeOS,但是从一开始就决定了 CoreOS 更加适合应用于一个集群环境而不是一个传统的服务器操作系统。

3. CoreOS相关工具

除了操作系统之外,CoreOS 团队和其他团队还提供了若干工具帮助用户管理 CoreOS 集群以及部署 Docker containers。

3.1. etcd

在CoreOS 集群中处于骨架地位的是 etcd。 etcd 是一个分布式 key/value 存储服务,CoreOS 集群中的程序和服务可以通过 etcd 共享信息或做服务发现 。etcd 基于非常著名的 raft 一致性算法:通过选举形式在服务器之中选举 Lead 来同步数据,并以此确保集群之内信息始终一致和可用。etcd 以默认的形式安装于每个 CoreOS 系统之中。在默认的配置下,etcd 使用系统中的两个端口:4001和7001,其中4001提供给外部应用程序以HTTP+Json的形式读写数据,而7001则用作在每个 etcd 之间进行数据同步。用户更可以通过配置 CA Cert让 etcd 以 HTTPS 的方式读写及同步数据,进一步确保数据信息的安全性。

3.2. fleet

fleet 是一个通过 Systemd对CoreOS 集群中进行控制和管理的工具。fleet 与 Systemd 之间通过 D-Bus API 进行交互,每个 fleet agent 之间通过 etcd 服务来注册和同步数据。fleet 提供的功能非常丰富,包括查看集群中服务器的状态、启动或终止 Docker container、读取日志内容等。更为重要的是 fleet 可以确保集群中的服务一直处于可用状态。当出现某个通过 fleet 创建的服务在集群中不可用时,如由于某台主机因为硬件或网络故障从集群中脱离时,原本运行在这台服务器中的一系列服务将通过fleet 被重新分配到其他可用服务器中。虽然当前 fleet 还处于非常早期的状态,但是其管理 CoreOS 集群的能力是非常有效的,并且仍然有很大的扩展空间,目前已提供简单的 API 接口供用户集成。

3.3. Kubernetes

Kuberenetes 是由 Google 开源的一个适用于集群的 Docker containers 管理工具。用户可以将一组 containers 以 “POD” 形式通过 Kubernetes 部署到集群之中。与 fleet 更加侧重 CoreOS 集群的管理不同,Kubernetes 生来就是一个 Containers 的管理工具。Kubernetes 以 “POD” 为单位管理一系列彼此联系的 Containers,这些 Containers 被部署在同一台物理主机中、拥有同样地网络地址并共享存储配额。

3.4. flannel (rudder)

flannel (rudder) 是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络 (overlay network) 工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。Kubernetes 会为每一个 POD 分配一个独立的 IP 地址,这样便于同一个 POD 中的 Containers 彼此连接,而之前的 CoreOS 并不具备这种能力。为了解决这一问题,flannel 通过在集群中创建一个覆盖网格网络 (overlay mesh network) 为主机设定一个子网。

4. 下篇介绍

在下一篇中,笔者将为大家展示如何建立一个 CoreOS 集群并通过 Kubernetes 管理其中的 Docker Containers。


感谢郭蕾对本文的策划和审校。


来源:http://www.infoq.com/cn/articles/what-is-coreos/





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AcoreOS操作系统是一款基于容器技术的轻量级操作系统。它主要用于支持分布式应用程序的部署和管理。AcoreOS采用了一种精简的设计思路,只保留了最基本的操作系统组件和服务,将其他功能和应用程序容器化,使得整个操作系统非常轻量级且高度可扩展。 AcoreOS操作系统主要以三个核心组件为基础:etcd、fleet和Docker。etcd 是一种分布式键值存储系统,用于保存集群中所有节点的配置信息,保证其中任意一个节点发生故障时能够迅速恢复。fleet 是一个基于systemd的集群管理器,用于监控和调度容器应用程序的运行。而Docker则是用于创建和管理容器的关键技术,它可以帮助用户快速部署和管理应用程序,提供了高度的可移植性和隔离性。 AcoreOS操作系统的核心理念是"不进行升级或修补",取而代之的是使用生命周期管理方式,通过将整个操作系统升级或替换为新版本来解决安全和可靠性问题。这种设计确保了系统的稳定性和可靠性,同时也减少了对系统维护的工作量。 AcoreOS操作系统适用于云环境、容器化部署以及对高可用性和分布式计算的要求较高的场景。它提供了完善的集群管理工具,支持动态伸缩和容灾,能够帮助用户快速构建可靠的分布式应用架构。此外,AcoreOS还内置了对容器网络和存储的支持,提供了一系列的网络和存储插件,方便用户根据实际需求进行配置和管理。 总体而言,AcoreOS操作系统是一款注重安全性、可靠性和易于管理的轻量级操作系统。它的设计理念和核心组件使得用户能够轻松构建和管理分布式应用,提高系统的可靠性和弹性。 ### 回答2: AcoreOS操作系统是一种基于Linux内核的开源操作系统,专为云计算环境设计而成。它采用容器化的架构,以提供高度可靠性、安全性和可扩展性的解决方案。 AcoreOS操作系统的主要特点之一是使用了CoreOS Container Linux,这是一个精简的Linux发行版,只包含了运行Docker容器所需的最基本组件。它遵循了“一切皆为容器”的理念,通过将应用程序和它们的依赖项封装在轻量级的容器中,提供了一种高效、可移植和可部署的方式。 AcoreOS操作系统还采用了etcd和fleet等分布式系统工具,用于实现集群管理和服务调度。etcd是一个可靠的键值存储系统,用于在集群中进行配置和分布式锁定。fleet则提供了对容器集群的管理和调度功能,可以自动将容器分配到空闲的节点上,实现负载均衡和容错能力。 除了容器化和集群管理,AcoreOS操作系统还提供了强大的安全性和可靠性功能。它采用了自动升级机制,确保系统始终运行在最新的版本上,以修复漏洞和提供性能改进。同时,它还支持核心隔离(Kernel isolation)技术,通过将内核和用户空间分开运行,提供了更高的安全性和隔离性。 总体来说,AcoreOS操作系统是一种创新的、面向云计算的操作系统。它的容器化架构、集群管理和安全性功能使得它成为了运行分布式应用程序和大规模云计算环境的理想选择。 ### 回答3: AcoreOS操作系统是一种开源的、轻量级的操作系统,专门设计用于运行在云计算环境中。它采用了容器化的架构,使得应用程序能够以独立的、可移植的方式在各种不同的硬件平台上运行。AcoreOS操作系统以安全性、可靠性和可扩展性为设计目标,可以轻松地进行集群管理和部署。 AcoreOS操作系统的核心特点之一是其容器化架构。它以Docker容器为基础,将应用程序和其依赖项打包在一起,并隔离在独立的运行环境中。这种容器化的架构提供了更高的资源利用率,更好的可移植性和更简化的应用程序管理。 另一个关键特点是AcoreOS操作系统的自动升级功能。它使用了分层的文件系统,使得操作系统的核心部分可以独立于应用程序进行升级。该操作系统可以在运行时自动升级,而无需重启服务器。这种自动升级能够提供更高的安全性和可靠性,同时减少管理员的工作量。 AcoreOS操作系统还提供了强大的集群管理功能。它集成了Ectd和Fleet等工具,可以简化集群的配置和管理。管理员可以轻松地进行扩容和缩容,实现高可用性和负载均衡。此外,AcoreOS操作系统还支持多种云平台的接口,使得在不同的云环境中进行迁移和部署变得更加简单。 总的来说,AcoreOS操作系统是一种专为云计算环境设计的轻量级操作系统。它通过容器化的架构、自动升级功能和强大的集群管理能力,提供了更高的安全性、可靠性和可扩展性。它成为了现代云计算环境中重要的操作系统之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值