使用 LifseaOS 体验 ACK 千节点分钟级扩容

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-应用监控,每月50GB免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 使用 LifseaOS 体验 ACK 千节点分钟级扩容

作者:阿里云 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,实现了分钟级别的千节点扩容体验!!!

image.png


降低 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 镜像版本化管理,更新操作系统上的软件包、或者固化的配置时,需要以整个镜像为粒度进行更新(或回滚),尽可能保证集群中各个节点的软件包版本与系统配置的一致性。

image.png

ContainerOS 结合 ACK 托管节点池的自动化管理能力,包括节点快速 CVE 修复、节点自愈、镜像自动升级等,能够进一步降低用户在 OS 运维方面的管理负担,让用户更加关注上层应用。


开始体验 LifseaOS 吧

LifseaOS 是 Linux Base 操作系统,专门为容器场景而特别优化,与 ACK 的深度集成,用户可以开箱即用实现集群内快速的弹性扩容。


目前 LifseaOS 已在 ACK Pro 1.24.6 及以上版本集群的托管节点池中开放(产品形态即为下图中的 ContainerOS)。

image.png

您可以前往 ACK 产品控制台创建基于 LifseaOS 的托管节点池,参考下图。现在开始玩转 LifseaOS 吧。

image.png

OpenAnolis 龙蜥社区已经成立了 ContainerOS 的特别兴趣小组,LifseaOS 相关代码也将贡献到龙蜥社区,敬请大家期待,更多信息请前往下方链接查看:https://openanolis.cn/sig/container-os


点击此处,即可查看阿里云容器服务 ACK 产品详情

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
Kubernetes API 调度
k8s中节点无法启动Pod
【10月更文挑战第3天】
107 6
|
4月前
|
存储 Kubernetes Docker
Kubernetes节点资源耗尽状态的处理
Kubernetes节点资源耗尽状态的处理
|
2月前
|
Kubernetes 应用服务中间件 Linux
多Master节点的k8s集群部署
多Master节点的k8s集群部署
|
4月前
|
Kubernetes 容器 Perl
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
|
4月前
|
存储 Kubernetes 调度
在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
|
4月前
|
Kubernetes 调度 Perl
在K8S中,Pod多副本配置了硬亲和性,会调度到同⼀个节点上吗?
在K8S中,Pod多副本配置了硬亲和性,会调度到同⼀个节点上吗?
|
4月前
|
存储 Kubernetes API
在K8S中,如何扩容和缩容K8s集群?
在K8S中,如何扩容和缩容K8s集群?
|
4月前
|
Kubernetes 负载均衡 调度
在K8S中,K8S外部节点访问Pod有哪些方式?
在K8S中,K8S外部节点访问Pod有哪些方式?
|
4月前
|
Kubernetes Unix Linux
k8s将节点容器运行时从Docker迁移到Containerd
k8s将节点容器运行时从Docker迁移到Containerd
|
4月前
|
Kubernetes 网络协议 调度
在K8S中,flannel可以固定节点IP和Pod的IP地址吗?
在K8S中,flannel可以固定节点IP和Pod的IP地址吗?

相关产品

  • 容器服务Kubernetes版