前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CoreOS:最小化的定制版linux系统

CoreOS:最小化的定制版linux系统

作者头像
博文视点Broadview
发布2020-06-11 15:55:19
2.3K0
发布2020-06-11 15:55:19
举报
文章被收录于专栏:博文视点Broadview

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

CoreOS 是什么

简单的说,它是一种基于 Chrome OS 再定制的轻量级 Linux 发行版本。

作为一个操作系统,CoreOS 采用了高度精简的系统内核及外围定制,将许多原本需要复杂人工操作或者第三方软件支持的功能在操作系统级别进行了实现,同时剔除了其他对于服务器系统非核心的软件,比如GUI和包管理器。

特别值得一提的是 CoreOS 对包管理器的态度和 Docker 的原生支持。这是许多习惯了传统 Linux 管理方式的用户在刚接触 CoreOS 时,最不习惯的地方,因为 CoreOS 没有提供现成的包管理工具。一个典型的困惑是:在 CoreOS 安装软件太不方便了。事实上 CoreOS 并不鼓励用户将各种应用软件直接安装在操作系统之上,而是提倡将所有服务运行在单独的应用容器中,由应用容器提供应用所需要的基础功能环境。这种做法将操作系统和应用程序的职责做了更彻底的分离,降低操作系统和应用程序的耦合度,使运行这些服务器的公司可以更快速、更廉价地更新自己的线上业务。

CoreOS 优点有哪些

容器技术

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

双系统分区 (dual root partition) 设计

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

Systemd

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

关于 CoreOS 系统

一直以来,服务器操作系统的升级都是运维人员感到棘手的事情。目前市面上的各种服务器操作系统普遍存在版本壁垒,无法保证安全的系统升级和回滚,这使得许多服务器不得不长时间运行在已经过时的内核和系统组件上,然后手工安装紧急的安全补丁或者索性完全不在意系统的安全问题。CoreOS系统并不是第一个尝试解决这种现状的服务器系统,但它却是被最先设计出的能够安全可靠地用于生产环境中系统持续升级解决方案的操作系统。

出于这样的初衷,CoreOS采用了基于双系统分区、容器技术和集群架构的设计思路,克服了由于用户修改系统内容、用户服务对系统组件依赖,以及系统重启时服务中断等种种导致升级过程不可靠的因素,最终以一种轻量级、平台定制化的操作系统呈现出来。它尽可能地适应各种不同的基础设施环境,使得系统具备十分便捷的集群组建能力,并鼓励用户通过容器技术隔离服务运行环境。

熟悉CoreOS系统的操作,除了理解它的只读系统分区和双系统分区等特殊性,更多的要求还在于熟悉CoreOS内置的容器和集群工具,例如Docker、Rkt、Systemd、Fleet、Etcd、Locksmith,以及与Confd、Flannel和Kubernetes等非内置服务的集成使用。这些内容都会在《CoreOS实践之路》一书中逐一介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档