ContainerOS概述

ContainerOS是为容器场景垂直优化的阿里云官方操作系统,完全兼容现有的Kubernetes生态。在Alibaba Cloud Linux 3的基础上,ContainerOS提供更高的安全性、更快的启动速度和极为精简的系统服务与软件包,默认集成云原生组件,开箱即用。本文介绍ContainerOS的适用范围、基本信息、特性、优势以及安全说明等。

适用范围

  • 适用于容器服务 Kubernetes 版集群节点池,且容器运行时需为containerd。具体操作,请参见创建ACK托管集群

  • ACK集群版本需为1.24及以上。如需升级集群,请参见手动升级集群

  • 不适用于GPU实例和Arm架构的实例。

ContainerOS介绍

在云原生快速发展的大背景下,应用被容器化部署。使用云原生组件(容器运行时、Kubernetes),您可以聚焦于应用的开发,无需过多关注底层基础设施的细节。为了适应更多的使用场景,传统的操作系统OS发行版包含大量的用户态工具、软件包、系统服务等,使得OS臃肿、启动慢,各种软件包种类繁多、版本零散,给运维人员带来了极大的挑战。为了解决传统OS在云原生场景下的各种适配问题,给容器服务的用户带来更好的使用体验,为容器场景而生的操作系统ContainerOS应运而生。

相较于传统的操作系统,ContainerOS更为轻量级和模块化,启动和运行容器的速度更快。此外,ContainerOS通常具有更强的安全性和更少的资源需求,这使得它成为云计算和大规模部署的理想选择,为容器服务的用户带来更好的使用体验。

功能特性

特性

说明

镜像精简

ContainerOS只包含Kubernetes Pod运行所依赖的软件包和系统服务,通过全系统整合优化,可大大缩短系统启动时间。ContainerOS的系统软件包数量约为200个;而传统操作系统(例如Alibaba Cloud Linux3、Alibaba Cloud Linux 2、CentOS等)默认预装的软件包数量约为600个。

  • 减少系统占用空间:ContainerOS软件包数量精简了60%以上,大幅降低了系统占用的存储空间。

  • 减少CVE漏洞:更少的软件包意味着更少的CVE漏洞,大大减小了整个系统的攻击面。

此外,ContainerOS不提供Python支持,也不直接提供SSH登录功能。您可以专注于业务的开发和运行,无需关心操作系统层面的问题。

极速启动

ContainerOS通过全链路整合优化,极大提高了OS启动速度,降低了ACK链路中的节点扩容时间。通过简化OS启动流程,预置集群管控必备组件的容器镜像以减少节点启动过程中因镜像拉取而带来的耗时,并结合ACK管控链路优化,极大地提高了节点扩容速度。

以下图为例,ContainerOS千节点扩容P90节点就绪时间仅为53s。相较于CentOS、Alibaba Cloud Linux 2自定义镜像优化方案,ContainerOS优势更为明显。更多信息,请参见使用ContainerOS实现节点极速扩容

image
重要

本示例中提供的数据仅为理论值,实际数据可能会因产品功能优化略有偏差,请以您的操作环境为准。

安全加固

ContainerOS根文件系统为只读权限,仅/etc/var目录可写,以满足基础的系统配置需求。这种设计既符合云原生场景下的基础设施不可变原则,又能防止逃逸容器篡改主机文件系统。同时,ContainerOS禁止用户直接登录到系统中进行一系列可能无法追溯的操作,但仍然提供一个专用的运维容器满足非日常的运维需求。关于运维容器使用方法,请参见ContainerOS运维容器使用指导

原子升级

ContainerOS遵循云原生不可变基础设施原则,不提供yum包管理工具,支持以整个操作系统镜像为粒度的更新和回滚(替盘升级)与受限的分层热升级能力,最大程度保证集群内各个节点的软件包版本与系统配置的一致性。每个镜像经过内部严格的测试之后才会上线,相较于传统操作系统基于单个RPM包的升级带来的不确定性,镜像粒度的测试发布更能保证升级后系统的稳定性。

功能优势

优势

说明

容器场景垂直优化

针对容器场景垂直优化,具有启动快、安全加固、根文件系统不可变等特征。ContainerOS既提升了性能,又方便集群范围的运维与管理,最大程度上保持集群内各个节点的一致性。

节点极速扩容

通过结合ACK管控链路优化与OS内部优化,ContainerOS极大地提高了节点扩容的速度。目前,节点扩容速度在ACK节点自动伸缩e2e耗时中占比超过90%。使用ContainerOS后,您在节点池上的自动伸缩e2e体验将得到大幅改善。

OS可运维能力

ContainerOS与容器服务ACK管控配合,可持续更新Kubernetes和其它系统软件版本、修复CVE漏洞,提升OS的可运维能力,支持镜像按需发布。相较于同样使用预置镜像以提升节点启动速度的Alibaba Cloud Linux 2自定义镜像方案,ContainerOS提供官方维护和CVE保障,免除了您对自定义OS镜像的维护、升级和重大问题的修复工作,有效降低您在使用过程中的工作量。

同时,通过与容器服务ACK联合优化,ContainerOS可大大缩短Kubernetes节点因为运维导致的不可用时间,有利于业务的平稳运行。

Alibaba Cloud Linux 3兼容

ContainerOS内核版本以及绝大部分软件包与Alibaba Cloud Linux 3完全保持一致,采用最新的kernel 5.10 LTS,为云上应用程序环境提供Linux社区的最新操作系统功能。关于Alibaba Cloud Linux 3的更多信息,请参见什么是Alibaba Cloud Linux

安全说明

ContainerOS应用如下设计原则来增强其安全性。

操作系统安全性

最小化执行环境

ContainerOS中仅包含容器场景所需的软件包与系统服务,软件包数量约210+。更少数量的软件包意味着更少的CVE数量,减少操作系统自身的攻击面。剔除高CVE软件包,如binutils、Python、openssh、tcpdump等,ContainerOS尽可能缩减脚本语言执行环境,不支持Python、Perl、Ruby脚本执行。

不可变根文件系统

不支持yum等包管理软件,仅支持使用rpm-ostree进行可追溯的OS变更与回滚。根文件系统/与核心目录/usr(存放二进制与动态库的目录)为只读,保留/etc(动态配置目录)与/var(日志记录与容器镜像存放目录)为可写状态。

具体的文件系统中的路径及其属性和建议用法如下:

路径

属性

用途

/

/usr

只读

可执行

根文件系统//usr目录以只读方式挂载,保证系统完整性并防止被篡改。

/etc

可写

有状态

通常包含系统的配置文件(如:自定义的systemd服务文件、对一些软件的个性化配置等),用户在升级系统后此目录下自定义的配置文件会被保留。

/var

可写

有状态

通常用于存储一些组件在运行时需要创建的目录(例如:/var/run/NetworkManager)以及一些组件的工作目录(例如:/var/lib/containerd),用户在升级系统后此目录下的内容会全部被保留。

/home

/mnt

/opt

/root

/usr/local

可写

有状态

这些目录都软连接在/var目录下,以便于系统运行过程中使用(例如:在/home目录下创建新用户,/mnt目录下挂载其他的数据盘等)。

/run

/tmp

可写

无状态

挂载tmpfs,可用于存放系统运行所需临时文件,重启后数据会被清除。

实例访问方式

ContainerOS未安装OpenSSH软件包,默认无sshd服务,无法直接SSH登录。如需登录实例,只能通过以下两种方式:

  • 按需拉取的运维容器:通过云助手下发命令启动运维容器,并通过实例绑定的密钥登录,不支持密码登录。

  • 通过阿里云会话管理免密登录:会话管理客户端与云助手服务端、云助手服务端与云助手Agent之间通信时,会通过WSS(Web Socket Secure)协议建立WebSocket长连接。WSS使用SSL(Secure Socket Layer)加密WebSocket长连接,能够保障数据的安全。

基础架构安全性

基于Alibaba Cloud Linux的软件包体系

Alibaba Cloud Linux是阿里云打造的Linux服务器操作系统发行版,是阿里云上使用量占比第一的操作系统发行版。ContainerOS基于Alibaba Cloud Linux并基于云场景做了大量的优化,复用Alibaba Cloud Linux多年的软件包与镜像构建交付经验,同时在镜像发布前,执行OS基础测试、ACK集成测试来保障镜像的可用性与安全性。

持续漏洞扫描与修复

在ACK托管节点池中使用ContainerOS,可实现节点异常自动诊断和恢复、CVE漏洞自动修复功能,时刻保障节点的可用性与安全性。

计费说明

ContainerOS是免费镜像。您可以在ACK节点池中免费使用ContainerOS镜像,并免费获得阿里云针对该操作系统的长期支持。

但当您使用ContainerOS镜像时,涉及到的其他资源,例如vCPU、内存、存储、公网带宽和快照等需要收费。关于其他资源的计费详情,请参见计费概述

相关文档