在云计算场景中,容器和 Kubernetes 的应用日益广泛。然而,当前容器和操作系统(OS)独立管理的方式常常面临功能冗余,以及两套调度系统难以协同的问题。此外,OS 的版本管理也存在诸多挑战:相同版本的 OS 在使用过程中会因安装、更新或删除不同的软件包而逐渐产生差异,导致版本分裂。同时,OS 与业务紧耦合,造成大版本升级难度较高,进一步增加了运维复杂性。
KubeOS 是专为以容器形式运行业务的场景设计的一种轻量级操作系统。通过 Kubernetes 的 CRD(自定义资源定义)与 Operator 扩展机制,KubeOS 将 OS 作为 Kubernetes 的一个组件接入,使 OS 和业务处于同等地位。用户可通过 Kubernetes 集群统一管理节点上的容器和节点的 OS,从而实现一套系统同时管理容器与 OS。
KubeOS 的组件利用 Kubernetes Operator 扩展机制来控制容器 OS 的升级流程,支持对 KubeOS 的整体原子化升级。这种升级方式在升级前会将业务迁移到未升级的节点上,从而最大程度减少升级和配置过程对业务的影响。同时,通过原子化升级保持 OS 始终与预期状态同步,确保集群内 OS 的版本一致性,有效避免版本分裂问题。
以下链接可协助您使用KubeOS:
与传统的包管理器逐一升级软件包不同,KubeOS 在升级时会通过预制的完整根分区文件系统镜像实现全量升级。升级流程包括从 HTTP 服务器或容器镜像仓库下载升级镜像,并将新的根分区文件系统覆盖到备用的 root 分区。随后,节点从备用 root 分区启动,完成操作系统的全量升级。
此外,KubeOS 支持一键回滚至上一版本的操作系统。通过切换至备用分区启动,快速恢复节点的 OS 状态。
更多详细信息,可见升级指导。
KubeOS 通过 Kubernetes 下发 OS 自定义资源,实现对集群内所有容器 OS 的统一配置管理。目前支持以下配置类型:
更多详细信息,可见配置指导
为了保持系统的轻量化,KubeOS 可不安装 SSH 服务(sshd)。在必要情况下,管理员可以通过部署 Admin 容器到目标节点,SSH 登录到容器内,再切换到节点主机命名空间,完成运维操作。
Admin 容器内可以安装丰富的调试工具,从而在主机命名空间下调用容器内的命令完成调试和检测任务。
更多详细信息,可见Admin容器镜像制作部署和使用。
KubeOS当前基于dm-verity+安全启动实现对rootfs的完整性保护,安全启动用于保护roothash完整性。
更多详细信息,可见dm-verity介绍。
KubeOS 支持制作多种类型的镜像,包括:
目前支持 x86 和 aarch64 架构,默认使用UEFI引导模式,部分支持 legacy 引导模式。
您可以通过以下命令创建 KubeOS 镜像:
make rust-agent
cargo run --package kbimg -- create -f KubeOS-Rust/kbimg/kbimg.toml <IMG-TYPE>
更多详细信息,可见镜像制作指导
2024:
containerd
和kubelet
配置2023:
2022:
2021:
我们非常欢迎新贡献者加入到项目中来,也非常高兴能为新加入贡献者提供指导和帮助。您可以通过issue或者合入PR来贡献
KubeOS 使用 Mulan PSL v2.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型