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