HCE Container OS
华为云HCE Container OS是基于华为云HCE(Huawei Cloud EulerOS)面向容器场景深度定制优化构建的轻量化OS。HCE Container OS应用于云原生场景,在满足容器业务运行基础需求的前提下进行极致的轻量化,并提供支持对接K8S接口的OS组件原子化升级能力、API运维能力。
HCE Container OS使用专为容器场景定制的轻量化内核,仅集成了容器业务运行必要的模块与组件,构造极简rootfs,并对systemd、cloud-init等基础服务精简定制,无rpm包管理,用白名单文件粒度进行文件裁剪,仅集成必要的文件。为了保证系统安全,HCE Container OS中根分区挂载为只读,系统配置目录/etc和运行时数据目录/var等通过persist分区overlay挂载方式保留可写属性。另外,HCE Container OS为云原生场景提供支持原子化升级、API运维、admin运维容器等特性功能。
产品功能与优势
- 系统轻量化
HCE Container OS镜像从启动速度,空载内存和镜像体积三个方面对镜像进行精简。
为了加快系统启动速度,HCE Container OS优化内核启动流程,减少冗余设备,并精简用户态服务配置。通过精简内核,裁剪运行时程序和服务达到降低空载内存占用。同时也实现了镜像体积的优化。
与标准系统相比,HCE Container OS资源占用量小,资源利用率提升,降成本,减少系统攻击面,提升OS安全性。借助HCE Container OS的轻量化还能提升节点弹性速度。
- 高安全性
HCE Container OS镜像的根文件系统只读,防止恶意篡改,提高系统安全性。
系统配置目录/etc和运行时数据目录/var等需要保留可写属性的目录需要挂载单独的persist分区。persist作为持久数据区,将分别通过目录overlay的方式来拓展只读分区的目录为可写。persist分区支持根据系统盘大小动态扩容,通过cloud-init来实现。
另外,由于精简过的HCE Container OS删除了非必要的文件(如ssh等)也减少一定的攻击面。
- 原子化升级
原子化升级采用双区乒乓升级的方案:将更新的镜像下载到另一个分区,修改grub引导项来切换分区启动。
原子化升级操作在容器场景下需要os-operator、os-proxy和os-agent组件配合完成。os-agent为运行在HCE Container OS内的一个后台服务, os-proxy为运行在HCE Container OS中的一个监控容器,os-operator为运行在管理面节点上的一个管理容器。
用户指令会通过API server先下发到os-operator容器,os-operator将对应节点的操作请求再通过API server转发到对应节点的os-proxy容器,os-proxy容器调用os-agent完成请求,再原路返回结果。
- Admin容器
由于HCE Container OS系统去除了系统上的sshd配置,无法直接登录到HCE Container OS节点上,且HCE Container OS裁剪的非常精简、很多工具和命令都不存在,因此需要一个必要时的全量运维工具admin容器。
Admin容器主要包括sshd服务和hostshell工具, sshd由sysmaster/systemd拉起,Admin容器部署后用户可通过ssh连接到节点的Admin容器,进入Admin容器执行hostshell命令获取host的root shell。
平常admin容器是不存在的,只在需要运维HCE Container OS的时候才下发部署。
使用限制
- 业务场景在使用镜像时,不可更改grub启动参数
- 虚拟机配置文件中需通过设置标签<boot order='1'/>指定系统盘作为启动盘
- 仅支持64位处理器架构