IT之家 11 月 3 日消息,据 openEuler 发布,NestOS 是一款在欧拉开源社区 Cloud Native SIG 孵化的云底座操作系统,专注于提供最佳的容器主机,大规模下安全的运行容器化工作负载。
Nest 即“巢穴”,作为可以包容 podman(鼹鼠)、iSulad(蚂蚁)、Docker(集装箱)的“巢穴”,NestOS 即化身为可以搭载 iSulad、docker、podman 等基础平台的操作系统。
NestOS 将配置工具 ignition 与 rpm-ostree、OCI 支持、SElinux 强化等技术集成在一起,采用基于双系统分区、容器技术和集群架构的设计思路,可以适应各种不同的基础设施环境,并与 OKD 紧密集成,针对运行 Kubernetes 进行了优化,使系统具备十分便捷的集群组建能力。
NestOS 架构图
NestOS 适用场景
集群规模
NestOS 支持大规模集群部署,分布式应用的数据同步和传输量会随着节点的数量增加而增加,NestOS 可以很好的发挥自动升级,集群管理的特性。同时判断集群是否适用 NestOS 的一个关键依据就是服务是否能够容器化。
面向无状态服务架构
要求系统中的所有服务对单次请求的处理不依赖其他请求。即处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取,服务器本身不存储任何信息。
微服务架构
微服务架构是面向无状态服务架构的一种发展形式,提倡更加松耦合的 SOA 方式。这种部署结构与 NestOS 轻量,快速,分布式数据等特性十分吻合,善用 NestOS 的集群化运维能力能够节省不少迁入微服务架构的运维成本。
NestOS 技术特性
容器技术
搭载 iSulad、docker、podman 等主流容器基础平台,克服了由于用户修改系统内容、用户服务对系统组件依赖,以及系统重启时服务中断等种种导致升级过程不可靠的因素,最终以一种轻量级、定制化的操作系统呈现出来。
Ignition
Ignition 是一个与分发无关的配置实用程序,用于安装系统和读取配置文件(JSON 格式)来初始化 NestOS。可配置的组件包括存储和文件系统,systemd 单元和用户等。
NestOS-installer
NestOS-installer 是一个帮助安装 NestOS 的程序,它可以安装操作系统到目标磁盘,可使用 ignition 和首次引导内核参数对其进行自定义。同时可以列出可供下载的 NestOS 镜像并且下载验证各种云平台、虚拟化或者裸机平台的操作系统镜像。
Rpm-ostree
Rpm-ostree 可以看成是 rpm 和 ostree 的合体。一方面提供了基于 rpm 的软件包安装管理方式,另一方面提供了基于 ostree 的操作系统更新升级。每次对系统的更新都像 rpm-ostree 在提交一次“Transaction”,从而确保更新全部成功或全部失败,并允许在更新系统后回滚到更新前的状态。
Zincati
Zincati 是 NestOS 自动更新的代理,它作为 Cincinnati 和 rpm-ostree 的客户端,负责自动更新/重启机器。它支持自动更新代理、用户自定义配置文件和多种更新策略,具有可配置优先级的日志记录。
双系统分区
NestOS 两个分区分别被设置成主动模式和被动模式,并在系统运行期间各司其职。主动分区负责系统运行,被动分区负责系统升级。一旦新版本的操作系统被发布,一个完整的系统文件将被下载至被动分区,并在系统下一次重启时从新版本分区启动,原来的被动分区将切换为主动分区,而之前的主动分区则被切换为被动分区,两个分区扮演的角色将相互对调。同时在系统运行期间系统分区被设置成只读状态,确保了 NestOS 的安全性。
NestOS 项目地址:https://gitee.com/openeuler/NestOS
--------------------------------------------------------------------------
摘取gitee,NestOs项目ReadMe
NestOS
介绍
NestOS是一款在openEuler社区CloudNative sig组孵化的云底座操作系统,专注于提供最佳的容器主机,大规模下安全的运行容器化工作负载。
Nest即“巢穴”,作为可以包容podman(鼹鼠)、iSulad(蚂蚁)、docker(集装箱)的“巢穴”,NestOS即化身为可以搭载iSulad、docker、podman等基础平台的操作系统。
NestOS将配置工具ignition与rpm-ostree、OCI支持、SElinux强化等技术集成在一起,采用基于双系统分区、容器技术和集群架构的设计思路,搭载iSulad、docker、podman等主流容器基础平台,克服了由于用户修改系统内容、用户服务对系统组件依赖,以及系统软件包升级时不稳定中间态等种种导致升级过程不可靠的因素,最终以一种轻量级、定制化的操作系统呈现出来。可以适应各种不同的基础设施环境,并与OKD紧密集成,针对运行Kubernetes进行了优化,使系统具备十分便捷的集群组建能力。
快速开始
NestOS应用指南
功能特性
- 容器技术
- rpm-ostree
- nestos-installer
- Zincati
- Cincinnati
- ignition系统初始化
- Afterburn
详细内容请点击功能特性详细说明
容器性能测试
使用NestOS 20211009版本,横向对比 docker,podman,iSulad 容器引擎性能。测试结果如下:
operator(ms) | Docker | Podman | iSulad | vs Docker | vs Podman |
---|---|---|---|---|---|
100*creat | 1745 | 22919 | 1122 | -36% | -95% |
100*start | 8561 | 8133 | 1561 | -82% | -81% |
100*stop | 1483 | 1445 | 296 | -80% | -80% |
100*rm | 1691 | 5286 | 741 | -56% | -86% |
更多详细内容请点击
FAQ
1、NestOS与Fedora CoreOS是什么关系?
NestOS是基于Fedora CoreOS的衍生版本,后续我们将会结合openeuler社区的各项特性,独立维护发展,也欢迎各位伙伴在issue中提出自己的需求和意见。
2、config文件夹是什么?
config是制作NestOS镜像时使用的配置文件,由于现阶段没有跟随社区版本发布,所以该文件为我们根据openeuler定制的一份配置文件。配置文件中有一些注释,以及个别软件包引入与否,均为我们本地进行测试评估需要,现开源出来供大家交流学习使用。并且配置文件中所包含的软件包源、IP地址均为本地搭建。
主要贡献者
Gitee ID | 公司 | 邮箱 |
---|---|---|
@duyiwei7w | 麒麟软件 | duyiwei@kylinos.cn |
@ningjinnj | 麒麟软件 | ningjin@kylinos.cn |
@shanph | 麒麟软件 | lishanfeng@kylinos.cn |
@yahoohey | 麒麟软件 | chenjian@kylinos.cn |
@wangyueliang | 麒麟软件 | wangyueliang@kylinos.cn |
@fu-shanqing | 麒麟软件 | fushanqing@kylinos.cn |
@kylinhao | 麒麟软件 | wanghao6@kylinos.cn |
@duguhaotian | 华为 | liuhao27@huawei.com |
欢迎感兴趣的小伙伴加入我们