作者:阿里云 ACK 和操作系统团队
三年前的云栖大会上,LifseaOS 正式发布,这是一款专为云原生场景而垂直优化的操作系统发行版,即业界统称的 ContainerOS。初始发布时,它提供了如下几个突出的特性:轻量(Lightweight)、快速(Fast)、安全(Secure)、镜像原子管理(Atomic)。
如今 LifseaOS 已在阿里云容器服务 ACK Pro 的托管节点池获得广泛使用,经过一年多的打磨优化,它在基于 Kubernetes 的云原生集群中正展现出越来越多的独特优势,本次所介绍的即为 LifseaOS 在扩容弹性上所展现出的极速优势。
两秒启动 OS,分钟级千节点扩容
在 ACK 集群中实现弹性扩容,是一项基础、关键且被重度依赖的能力。尤其是在集群资源池紧张或者不足时,如何快速扩容节点、恢复资源水位对用户业务至关重要。
在节点自动伸缩场景,ACK 通过组件轮询判断集群内资源是否充足,一旦出现不足则自动触发扩容节点。如果在这种情况下,节点扩容速度慢,则会严重影响自动伸缩效果,甚至因为资源水位长期不足而影响用户业务。目前的节点扩容速度在 ACK 节点自动伸缩端到端耗时中占比超过 90%,可以说节点扩容速度的优化的程度决定了自动伸缩的体验。
以某量化公司的扩容场景为例,在其长期提供服务的过程中,经过了上千次百节点级别的扩容活动,平均每次扩容 P90 节点就绪耗时(即单次扩容活动开始至 90% 的节点处于就绪状态)为 162s,耗时较长。若能将扩容活动耗时压缩至 1min 以内,将大幅提高用户在节点扩容场景中的体验。
基于此,LifseaOS 针对 ACK 集群节点池的弹性扩容场景,实现了极速扩容的特性。
一方面,LifseaOS 通过简化 OS 本身的启动流程大大提高了 OS 启动速度。它裁剪掉了大量云上场景无需的硬件驱动,必要的内核驱动模块修改为 built-in 模式,去除了 initramfs,udev 规则也被大大简化,OS 首次启动时间从传统 OS 的 1min 以上下降到了 2s 左右。
另一方面,LifseaOS 结合 ACK 场景进行了定制优化。它通过预置集群管控必备组件的容器镜像以减少节点启动过程中因镜像拉取而带来的耗时,并结合 ACK 管控链路优化(例如调节关键逻辑的检测频率、调整高负载下系统瓶颈中的限流值等),极大地提高了节点扩容速度。
LifseaOS 在节点弹性扩容场景上,相比于传统 OS 方案有非常大的优势,且并发启动的节点数目越多,LifseaOS 的优势越明显!如下图所示,并发启动 1000 个节点时,P90 节点就绪时间 CentOS 为 380s,而 LifseaOS 仅需 53s,实现了分钟级别的千节点扩容体验!!!
降低 OS 运维负担,专为容器场景深度优化
在 ACK 节点池中使用 ContainerOS(基于 LifseaOS),相比传统的 Linux OS 而言,ContainerOS 为容器场景深度优化,具备更加安全、轻量、启动快速、不可变镜像等优点。
- 轻量(Lightweight)
LifseaOS 默认集成 Containerd、Kubernetes 组件,仅仅保留 Kubernetes Pods 运行所需的系统服务与软件包,相比传统操作系统(Alibaba Cloud Linux 2/3、CentOS)软件包数量减少 60%,镜像大小减少 70%。
- 快速(Fast)
LifseaOS 裁剪掉了大量云上场景无需的硬件驱动,必要的内核驱动模块修改为 built-in 模式,去除了 initramfs,udev 规则也被大大简化,大大提升了启动时间,OS 首次启动从传统 OS 的 1min 以上下降到了 2s 左右。
- 安全(Secure)
LifseaOS 根文件系统为只读权限,只有 /etc 和 /var 目录可以满足基础的系统配置需求。去除了 sshd 服务与 python 支持,减少 sshd CVE 漏洞带来的威胁。同时将 OS 的常规运维 API 化,减少用户直接登录系统进行一些可能无法追溯的黑屏操作而带来的稳定性、安全性风险。不过,LifseaOS 仍然提供一个专用的运维容器用以登录系统,满足紧急的运维需求,运维容器需要通过 API 按需拉起,默认不开启。
- 镜像原子管理(Atomic)
LifseaOS 不支持单个 rpm 包的安装、升级和卸载,通过 ostree 技术,将 OS 镜像版本化管理,更新操作系统上的软件包、或者固化的配置时,需要以整个镜像为粒度进行更新(或回滚),尽可能保证集群中各个节点的软件包版本与系统配置的一致性。
ContainerOS 结合 ACK 托管节点池的自动化管理能力,包括节点快速 CVE 修复、节点自愈、镜像自动升级等,能够进一步降低用户在 OS 运维方面的管理负担,让用户更加关注上层应用。
开始体验 LifseaOS 吧
LifseaOS 是 Linux Base 操作系统,专门为容器场景而特别优化,与 ACK 的深度集成,用户可以开箱即用实现集群内快速的弹性扩容。
目前 LifseaOS 已在 ACK Pro 1.24.6 及以上版本集群的托管节点池中开放(产品形态即为下图中的 ContainerOS)。
您可以前往 ACK 产品控制台创建基于 LifseaOS 的托管节点池,参考下图。现在开始玩转 LifseaOS 吧。
OpenAnolis 龙蜥社区已经成立了 ContainerOS 的特别兴趣小组,LifseaOS 相关代码也将贡献到龙蜥社区,敬请大家期待,更多信息请前往下方链接查看:https://openanolis.cn/sig/container-os
点击此处,即可查看阿里云容器服务 ACK 产品详情