01
—
CoreOS是什么
简单的说,它是一种基于ChromeOS再定制的轻量级Linux发行版本。
作为一个操作系统,CoreOS采用了高度精简的系统内核及外围定制,将许多原本需要复杂人工操作或者第三方软件支持的功能在操作系统级别进行了实现,同时剔除了其他对于服务器系统非核心的软件,比如GUI和包管理器。
特别值得一提的是CoreOS对包管理器的态度和Docker的原生支持。这是许多习惯了传统Linux管理方式的用户在刚接触CoreOS时,最不习惯的地方,因为CoreOS没有提供现成的包管理工具。一个典型的困惑是:在CoreOS安装软件太不方便了。事实上CoreOS并不鼓励用户将各种应用软件直接安装在操作系统之上,而是提倡将所有服务运行在单独的应用容器中,由应用容器提供应用所需要的基础功能环境。这种做法将操作系统和应用程序的职责做了更彻底的分离,降低操作系统和应用程序的耦合度,使运行这些服务器的公司可以更快速、更廉价地更新自己的线上业务。
02
—
CoreOS优点有哪些
容器技术
通过容器化(containerized)的运算环境向应用程序提供运算资源。应用程序之间共享系统内核和资源,但是彼此之间又互不可见。这样就意味着应用程序将不会再被直接安装到操作系统中,而是通过Docker运行在容器中。这种方式使得操作系统、应用程序及运行环境之间的耦合度大大降低。相对于传统的部署方式而言,在CoreOS集群中部署应用程序更加灵活便捷,应用程序运行环境之间的干扰更少,而且操作系统自身的维护也更加容易。
双系统分区(dualrootpartition)设计
两个分区分别被设置成主动模式和被动模式并在系统运行期间各司其职。主动分区负责系统运行,被动分区负责系统升级。一旦新版本的操作系统被发布,一个完整的系统文件将被下载至被动分区,并在系统下一次重启时从新版本分区启动,原来的被动分区将切换为主动分区,而之前的主动分区则被切换为被动分区,两个分区扮演的角色将相互对调。同时在系统运行期间系统分区被设置成只读状态,这样也确保了CoreOS的安全性。CoreOS的升级过程在默认条件下将自动完成,并且通过cgroup对升级过程中使用到的网络和磁盘资源进行限制,将系统升级所带来的影响降至最低。
Systemd
CoreOS使用Systemd取代SysV作为系统和服务的管理工具。与SysV相比,Systemd不但可以更好的追踪系统进程,而且也具备优秀的并行化处理能力,加之按需启动等特点,并结合Docker的快速启动能力,在CoreOS集群中大规模部署DockerContainers与使用其他操作系统相比在性能上的优势将更加明显。Systemd的另一个特点是引入了“target”的概念,每个target应用于一个特定的服务,并且可以通过继承一个已有的target扩展额外的功能,这样使得操作系统对系统上运行的服务拥有更好的控制力。
03
—
关于CoreOS系统
一直以来,服务器操作系统的升级都是运维人员感到棘手的事情。目前市面上的各种服务器操作系统普遍存在版本壁垒,无法保证安全的系统升级和回滚,这使得许多服务器不得不长时间运行在已经过时的内核和系统组件上,然后手工安装紧急的安全补丁或者索性完全不在意系统的安全问题。CoreOS系统并不是第一个尝试解决这种现状的服务器系统,但它却是被最先设计出的能够安全可靠地用于生产环境中系统持续升级解决方案的操作系统。
出于这样的初衷,CoreOS采用了基于双系统分区、容器技术和集群架构的设计思路,克服了由于用户修改系统内容、用户服务对系统组件依赖,以及系统重启时服务中断等种种导致升级过程不可靠的因素,最终以一种轻量级、平台定制化的操作系统呈现出来。它尽可能地适应各种不同的基础设施环境,使得系统具备十分便捷的集群组建能力,并鼓励用户通过容器技术隔离服务运行环境。
熟悉CoreOS系统的操作,除了理解它的只读系统分区和双系统分区等特殊性,更多的要求还在于熟悉CoreOS内置的容器和集群工具,例如Docker、Rkt、Systemd、Fleet、Etcd、Locksmith,以及与Confd、Flannel和Kubernetes等非内置服务的集成使用。
更多干货知识分享请关注微信公众号:软考社区。关注还可领取备考大礼包一份!!!
网友评论