openEuler社区技术委员会: 各位好! NKD,全称为 NestOS Kubernetes Deployer ,是一套基于NestOS设计的,在NestOS For Container上独有的容器云部署和运维工具,目的是为容器云业务与云底座操作系统提供 一致性的运维解决方案 。NKD的设计初衷是提供在集群外部署、升级和配置管理等服务的能力,涵盖集群基础设施,包括操作系统以及K8S核心组件。这一综合性的解决方案简化了集群的部署流程,实现了集群业务与基础设施的一体化运维。 NKD 是面向 K8S 集群场景的解决方案,旨在简化集群的部署和升级流程,具体内容如下: 1. 集群基础设施的创建 :NKD 根据集群需求,连接基础设施提供商动态创建所需的 IaaS 资源,支持裸金属和虚拟化场景,目前优先实现 openstack 场景 2. 操作系统镜像构建 :NestOS 提供完善的镜像构建工具链,可以轻松集成到用户现有 CICD 流程中,便于根据 openEuler 官方或用户自定义软件源快速构建定制镜像。NKD 目前获取镜像构建结果,并将相应更新源配置应用到集群中,未来将支持 NKD 配置托管镜像构建流程。 3. 动态配置注入 :在部署 NestOS 系统时,需要通过 ignition 点火机制传入系统部署后所需的动态配置。NKD 目前提供工具形式,支持通过命令行参数或配置文件将用户配置转换为 ignition 点火文件。最终目标是提供用户友好的前端配置界面,便于轻松生成所需配置,并提供配置变更版本管理功能。 4. K8S 集群部署 :这也是 NKD 的核心能力,将 k8s 集群部署所需配置自动合并到用户配置生成的 ignition 文件中,使得节点在部署完成操作系统引导后自动开始创建 k8s 集群,无需手动干预。 5. 集群状态检测与 housekeeper 部署 :NKD 持续检测 k8s 集群状态,一旦集群创建完成,向用户提供访问凭据,并部署 housekeeper 自定义资源,用于后续维护升级功能。 6. 操作系统或 k8s 基础组件的升级维护 :原生架构升级过程中一个很重要的环节就是云原生基础设施的升级。当操作系统或 k8s 基础组件需要升级维护时,NKD 使用镜像构建工具重新构建新版系统镜像,并在查询到新版镜像后,向集群创建 housekeeper CR 资源。NKD通过对CRD资源的创建、更新来实现对云原生基础设施及k8s集群的升级运维操作,CRD中保存了集群的版本、基础设施镜像等信息,定时监测CRD资源的状态,与目标状态进行一致性对比,以此驱动集群达到所需的状态。集群中的 housekeeper 服务按照配置逐次对集群节点进行升级,最终完成整个集群的升级工作。 通过以上整体方案,用户可只需通过 NKD 即可一键式完成集群创建和后续更新工作,无需手动进行繁琐步骤,简化了运维人员的操作。NKD的部署、升级流程如下图:
NKD的整体架构及未来规划如下图:
NKD V0.1.0版本已于今年9月份正式发布 ,项目代码仓库位置: https://gitee.com/openeuler/nestos-kubernetes-deployer 本次 NestOS Kubernetes Deployer 项目,联名以下社区参与者推荐评选 openEuler 年度新建项目 候健 houjian@kylinos.cn @hjimmy 王悦良 wangyueliang@kylinos.cn @wangyueliang 杨昭 yangzhao1@kylinos.cn @yangzhao_kl 杜奕威 duyiwei@kylinos.cn @duyiwei7w 祝好!刘阔@lauk001 2023.10.12