发明内容
本申请所要解决的技术问题是克服现有技术的缺陷,提供Kubernetes集群一键部署及生命周期管理方法及系统,增强Kubernetes集群在复杂业务场景下的适应性和稳定性。
为解决上述技术问题,本申请提供如下技术方案:
一方面,本申请提供Kubernetes集群一键部署及生命周期管理方法,包括以下步骤:
采集节点参数;基于所述节点参数生成节点硬件指纹;解析容器镜像的元数据;基于所述元数据生成容器镜像的行为指纹;
基于所述节点硬件指纹与容器镜像的行为指纹,为每个容器实例分配全局最优节点;
在对应的全局最优节点上执行容器实例的部署,具体包括:
将容器实例的业务特征与预定义的资源配置模板进行匹配,得到资源配置策略;
将所述资源配置策略拆分为独立的配置动作;
对所述配置动作进行并行灰度测试;基于所述并行灰度测试的结果,在对应的全局最优节点上进行容器实例的全量部署或状态回滚。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:所述节点参数包括硬件拓扑参数、系统环境参数、运行时状态参数、边缘设备参数;所述元数据包括显式硬件依赖、系统环境依赖、运行时行为约束、边缘计算需求;任一项节点参数对应一项元数据。
所述节点硬件指纹为包含全部节点参数的结构化数据;所述容器镜像的行为指纹为包含全部元数据的结构化数据;生成所述节点硬件指纹与容器镜像的行为指纹的方式如下:采用相同的编码方式分别对节点参数以及容器镜像的元数据进行结构化编码,得到节点硬件指纹与容器镜像的行为指纹。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:基于所述节点硬件指纹与容器镜像的行为指纹,为每个容器实例分配全局最优节点,具体包括:
获取每个容器实例对应的容器镜像的行为指纹,作为对应容器实例的行为指纹;
基于节点硬件指纹与容器实例的行为指纹,计算任一容器实例与任一节点之间的匹配权重;
构建权重矩阵;所述权重矩阵中的任一行对应一个容器实例,任一列对应一个节点,任一元素的元素值为对应容器实例与节点之间的匹配权重;
采用优化算法处理所述权重矩阵,得到最终匹配方案;所述最终匹配方案包括在所述权重矩阵中选定的一组元素值;其中,权重矩阵中的每一行有且仅有一个元素值被选定,且选定的任一元素值不为0;
基于所述最终匹配方案为每个容器实例分配全局最优节点。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:所述计算任一容器实例与任一节点之间的匹配权重具体包括:
获取容器实例与节点的权重评分模型;将节点硬件指纹与容器实例的行为指纹输入所述权重评分模型,权重评分模型计算并输出对应容器实例与节点之间的匹配权重;
所述权重评分模型内置权重评分规则;权重评分模型根据任一条权重评分规则,基于节点硬件指纹中的一项节点参数以及行为指纹的对应项元数据计算单项匹配度;权重评分模型对基于每条权重评分规则计算的所有单项匹配度进行累乘,得到对应容器实例与节点之间的匹配权重。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:所述容器实例的业务特征包括容器实例所需的硬件类型、容器实例的运行时性能指标、容器实例的SLA定义中的至少一项;其中,所述容器实例所需的硬件类型基于对应的容器镜像的显式硬件依赖提取;所述容器实例的运行时性能指标基于对应的容器镜像的运行时行为约束提取;所述容器实例的SLA定义基于对应的容器镜像的系统环境依赖以及边缘计算需求提取;
所述资源配置策略为Kubernetes对象描述文件,包括资源分配策略、调度约束策略、弹性扩缩策略中的至少一项。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:所述资源配置模板为结构化配置文件,包括资源分配规则、调度约束规则、弹性扩缩规则;
所述资源分配规则包括:基于容器实例所需的硬件类型生成资源分配策略;
所述调度约束规则包括:基于容器实例的运行时性能指标生成调度约束策略;
所述弹性扩缩规则包括:基于容器实例的SLA定义生成弹性扩缩策略。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:将所述资源配置策略拆分为独立的配置动作,具体包括:
基于Kubernetes资源对象的声明式语法,将资源配置策略解析为原子化操作单元;
对每个原子化操作单元进行无状态性校验;所述进行无状态性校验的方式包括显式依赖检测;所述显式依赖检测包括:通过静态分析原子化操作单元中的资源引用,识别原子化操作单元间的显式依赖;
将通过无状态性校验的原子化操作单元封装为配置动作;任一配置动作为配置指令的集合。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:对所述配置动作进行并行灰度测试,具体包括:
解析每个配置动作中Kubernetes资源定义的字段,识别配置动作间的硬件资源冲突;
获取容器实例的历史运行日志;基于所述历史运行日志识别配置动作间的策略级依赖;
选择配置动作组成测试组;任一测试组中的任意两个配置动作之间不存在硬件资源冲突和策略级依赖;
对测试组进行并行灰度测试,具体包括:通过标签选择器选择容器实例,组成灰度实例组;将测试组中的配置动作部署至所述灰度实例组;将生产流量路由至灰度实例组,并阻断灰度实例组中的容器实例对生产数据存储的写操作;采集灰度实例组的性能指标,并基于性能指标判断测试组是否通过测试。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:所述策略级依赖包括:任意两个配置动作在历史运行数据中的协同操作的频率超过预设的频率阈值;所述协同操作为不同配置动作的配置指令同步执行;所述策略级依赖还包括:不同配置动作在历史运行数据中存在故障关联性;所述故障关联性包括故障触发的关联性以及故障恢复的关联性。
作为本申请所述Kubernetes集群一键部署及生命周期管理方法的一种优选方案,其中:所述并行灰度测试的测试结果包括通过测试与不通过测试;
所述进行容器实例的全量部署或状态回滚具体包括:
若测试组通过测试,则将测试组中的配置动作部署至全部容器实例;
若测试组未通过测试,则识别冲突动作,所述冲突动作为导致测试组未通过测试的配置动作,回滚灰度实例组中冲突动作的部署状态。
第二方面,本申请提供一种Kubernetes集群一键部署及生命周期管理系统,包括指纹生成模块、节点分配模块、资源配置模块、灰度测试模块、部署管理模块;其中:
指纹生成模块用于采集节点参数和容器镜像的元数据,并基于节点参数生成每个节点的节点硬件指纹,以及基于元数据生成每个容器镜像的行为指纹;
节点分配模块基于节点硬件指纹以及容器镜像的行为指纹为每个容器实例分配全局最优节点;
资源配置模块基于容器实例的业务特征生成资源配置策略,并将资源配置策略拆分为独立的配置动作;
灰度测试模块用于对配置动作进行并行灰度测试,并将并行灰度测试的结果反馈至部署管理模块;
部署管理模块根据并行灰度测试的结果,进行容器实例的全量部署或状态回滚。
与现有技术相比,本申请所达到的有益效果如下:
本申请全面考量静态数据与容器实例运行时的动态行为、隐式依赖,构建节点硬件指纹与容器镜像行为指纹,通过指纹匹配和校验为容器实例分配全局最优节点,解决了应用程序在本地正常运行但在集群中崩溃的问题。
通过构建业务语义驱动的资源配置模板,自动将应用程序业务特征映射为Kubernetes资源配置策略,并把复杂的集群级变更分解为多个可独立验证的原子化操作单元,降低对人工经验的依赖,提高灰度测试的准确率和效率,降低配置变更引发的业务异常率,保障部署过程的稳定性和可靠性。
具体实施方式
下面通过附图以及具体实施例对本申请技术方案做详细地说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
实施例1
本实施例介绍一种Kubernetes集群一键部署及生命周期管理方法,参照图1,该方法包括以下步骤:
采集节点参数;基于所述节点参数生成节点硬件指纹;解析容器镜像的元数据;基于所述元数据生成容器镜像的行为指纹;
所述节点参数包括硬件拓扑参数、系统环境参数、运行时状态参数、边缘设备参数;所述元数据包括显式硬件依赖、系统环境依赖、运行时行为约束、边缘计算需求;任一项节点参数对应一项元数据。
本实施例优选的部分节点参数与元数据如下:
节点参数中的硬件拓扑参数包括GPU架构、物理核数、存储介质类型;元数据中的显式硬件依赖包括GPU架构需求、物理核数需求、存储介质类型需求;节点参数与元数据的对应关系包括:GPU架构对应GPU架构需求,物理核数对应物理核数需求,存储介质类型对应存储介质类型需求。节点参数中的系统环境参数包括内核版本、系统调用集;元数据中的系统环境依赖包括内核版本需求、系统调用白名单;节点参数与元数据的对应关系还包括:内核版本对应内核版本需求,系统调用集对应系统调用白名单。节点参数中的运行时状态参数包括中断亲和性配置、时钟同步协议、NUMA节点架构;元数据中的运行时行为约束包括中断请求绑定需求、时钟同步精度需求、NUMA架构依赖;节点参数中的边缘设备参数包括热插拔接口、加密加速硬件;元数据中的边缘计算需求包括热插拔设备支持、加密加速需求;节点参数与元数据的对应关系还包括:热插拔接口对应热插拔设备支持;加密加速硬件对应加密加速需求。
所述节点硬件指纹为包含全部节点参数的结构化数据;所述容器镜像的行为指纹为包含全部元数据的结构化数据;生成所述节点硬件指纹与容器镜像的行为指纹的方式如下:采用相同的编码方式分别对节点参数以及容器镜像的元数据进行结构化编码,得到节点硬件指纹与容器镜像的行为指纹。本实施例优选JSON或Protobuf格式作为节点硬件指纹与行为指纹的结构化编码格式,能够保留原始数据的可读性,支持指纹之间的匹配和兼容性校验。本申请通过构建节点硬件指纹与容器镜像的行为指纹,不仅考虑了静态数据(如显式硬件依赖),还考虑了容器实例运行时的动态行为和隐式依赖(如中断请求绑定需求、时钟同步精度需求等),通过节点硬件指纹与行为指纹进行容器实例与节点间的匹配和校验,能够降低容器实例的部署失败率,更加适用于Kubernetes集群的异构硬件环境,能够解决诸如容器在本地运行正常,但在集群中崩溃等问题。
基于所述节点硬件指纹与容器镜像的行为指纹,为每个容器实例分配全局最优节点;具体包括:
获取每个容器实例对应的容器镜像的行为指纹,作为对应容器实例的行为指纹;
基于节点硬件指纹与容器实例的行为指纹,计算任一容器实例与任一节点之间的匹配权重;
构建权重矩阵;所述权重矩阵中的任一行对应一个容器实例,任一列对应一个节点,任一元素的元素值为对应容器实例与节点之间的匹配权重;
采用优化算法处理所述权重矩阵,得到最终匹配方案;所述最终匹配方案包括在所述权重矩阵中选定的一组元素值;其中,权重矩阵中的每一行有且仅有一个元素值被选定,且选定的任一元素值不为0;
从权重矩阵中的每一行选中一个元素值,将组成一种匹配方案;由于任一种匹配方案中仅选中每行的一个元素值,而权重矩阵中的每行对应一个容器实例,因此,任一种匹配方案均为每个容器实例指定了一个节点。本实施例优选KM算法作为优化算法,通过KM算法找到使累计权重(即选定的一组元素值的累加值)最大的匹配方案作为最终匹配方案,从而使得为每个容器指定的节点为其全局最优节点。在KM算法探索最终匹配方案的过程中,将节点的CPU利用率等作为约束条件,防止多个容器实例分配至一个节点时,超出节点的处理能力。
基于所述最终匹配方案为每个容器实例分配全局最优节点。最终匹配方案中选定的每个元素值均对应一个容器实例及其对应的全局最优节点,通过每个元素值的对应关系即可确定每个容器实例对应的全局最优节点。
所述计算任一容器实例与任一节点之间的匹配权重具体包括:
获取容器实例与节点的权重评分模型;将节点硬件指纹与容器实例的行为指纹输入所述权重评分模型,权重评分模型计算并输出对应容器实例与节点之间的匹配权重;
所述权重评分模型内置权重评分规则;权重评分模型根据任一条权重评分规则,基于节点硬件指纹中的一项节点参数以及行为指纹的对应项元数据计算单项匹配度;权重评分模型对基于每条权重评分规则计算的所有单项匹配度进行累乘,得到对应容器实例与节点之间的匹配权重。
本实施例优选的部分权重评分规则如下:若GPU架构与GPU架构需求完全匹配,则对应的单项匹配度为1,否则,对应的单项匹配度为0;例如,GPU架构与GPU架构需求均为Ampere架构,则完全匹配。若内核版本满足内核版本需求,则对应的单项匹配度为1,否则,对应的单项匹配度为0;例如,若内核版本为5.1.1,内核版本需求为大于或等5.1.0,则内核版本满足内核版本需求。
若系统调用集涵盖系统调用白名单中的全部系统调用,则对应的单项匹配度为1,否则,对应的单项匹配度为0;若物理核数不满足物理核数需求,则对应的单项匹配度为0,否则基于物理核数为对应的单项匹配度进行赋值,物理核数越多,单项匹配度越高,且单项匹配度的取值范围为;例如,物理核数需求为不低于8核,设置物理核数上限为,若物理核数不小于,则单项匹配度为1;若物理核数小于8,则单项匹配度为0;若物理核数不小于8且小于,则取值范围为。由于容器实例与节点之间的匹配权重为所有单项匹配度累乘的乘积,因此当任一单项匹配度为0,匹配权重也为0,而匹配权重为0的节点不会作为对应容器实例备选的全局最优节点,由此实现了通过硬性条件过滤掉不匹配的节点。
在对应的全局最优节点上执行容器实例的部署,具体包括:
将容器实例的业务特征与预定义的资源配置模板进行匹配,得到资源配置策略;
所述容器实例的业务特征包括容器实例所需的硬件类型、容器实例的运行时性能指标、容器实例的SLA定义(即服务等级协议定义)中的至少一项;其中,所述容器实例所需的硬件类型基于对应的容器镜像的显式硬件依赖提取,包括GPU架构、存储介质类型、加密加速硬件需求等;所述容器实例的运行时性能指标基于对应的容器镜像的运行时行为约束提取,包括NUMA节点架构依赖、中断请求绑定需求、时钟同步精度需求等;所述容器实例的SLA定义基于对应的容器镜像的系统环境依赖以及边缘计算需求提取,包括最小副本数、最大延迟阈值等;
所述资源配置策略为可执行的Kubernetes对象描述文件,包括资源分配策略、调度约束策略、弹性扩缩策略中的至少一项。
所述资源配置模板为结构化配置文件,包括资源分配规则、调度约束规则、弹性扩缩规则;本实施例优选YAML或JSON为资源配置模板的具体格式,并通过版本标识符将资源配置模板与容器镜像的元数据进行关联,以从对应的元数据中提取容器实例的业务特征。
所述资源分配规则包括:基于容器实例所需的硬件类型生成资源分配策略;所述资源分配策略包括设备插件绑定声明及Kubernetes资源的限制字段等;
所述调度约束规则包括:基于容器实例的运行时性能指标生成调度约束策略;所述调度约束策略包括节点亲和性配置、NUMA绑核策略、中断亲和性声明等;
所述弹性扩缩规则包括:基于容器实例的SLA定义生成弹性扩缩策略;所述弹性扩缩策略包括水平扩缩容策略、副本数配置、资源利用率扩缩阈值等。
将所述资源配置策略拆分为独立的配置动作;具体包括:
基于Kubernetes资源对象的声明式语法,将资源配置策略解析为原子化操作单元;所述原子化操作单元包括资源分配声明、调度约束声明、运行时优化声明及网络策略声明等;
对每个原子化操作单元进行无状态性校验;
进行无状态性校验的方式包括显式依赖检测,具体为通过静态分析原子化操作单元中的资源引用,识别原子化操作单元间的显式依赖,如服务选择依赖、配置映射名称依赖等。通过依赖检测,能够确保任一原子化操作单元的执行不依赖其他操作单元的输出。无状态性校验的方式还包括资源隔离验证,确保每个原子化操作单元仅操作独立的Kubernetes资源,且进行状态回滚时仅需删除对应的Kubernetes资源对象。若原子化操作单元未通过无状态性校验,则进行原子化操作单元的人工重构,例如手动将存在显式依赖的原子化操作单元进行合并。
将通过无状态性校验的原子化操作单元封装为配置动作;任一配置动作为可独立执行的配置指令集。配置动作包含的配置指令包括Kubernetes原生API调用命令、CRD操作命令、自定义控制器协调指令等。本实施例中,配置动作以YAML清单文件或Helm Chart模板的形式存储,且每个配置动作关联唯一标识符以支持后续灰度测试的状态追踪。
对所述配置动作进行并行灰度测试;基于所述并行灰度测试的结果,在对应的全局最优节点上进行容器实例的全量部署或状态回滚。
对所述配置动作进行并行灰度测试,具体包括:
解析每个配置动作中Kubernetes资源定义的字段,识别配置动作间的硬件资源冲突;基于Kubernetes资源定义的字段关联性来识别硬件资源冲突,所述硬件资源冲突包括不同配置动作对同一硬件设备(如GPU、存储卷)的互斥访问声明、不同配置动作的资源配额(如CPU、内存配额)超分、不同配置动作对底层物理资源(如LLC缓存、内存带宽)的竞争等。
获取容器实例的历史运行日志;基于所述历史运行日志识别配置动作间的策略级依赖;对已部署的容器实例的历史运行日志进行逻辑切分,得到与当前配置动作一致的原子化操作单元,从而提取配置动作的历史运行数据;基于配置动作的历史运行数据对配置动作之间的协同变更进行统计分析,得到配置动作间的策略级依赖;所述策略级依赖包括:任意两个配置动作在历史运行数据中的协同操作的频率超过预设的频率阈值;所述协同操作为不同配置动作的配置指令同步执行;策略级依赖还包括:不同配置动作在历史运行数据中存在故障关联性;所述故障关联性包括故障触发的关联性,即不同的配置动作出现关联故障,例如配置动作A为数据库连接池配置,配置动作B为数据库服务Endpoint声明,则当配置动作B因网络错误等原因导致故障时,配置动作A会因无法连接数据库而触发故障。所述故障关联性还包括故障恢复的关联性,即不同的配置动作在故障恢复中存在逻辑依赖关系,例如配置动作C为存储卷挂载,配置动作D为存储类声明,在故障恢复时,配置动作C需在配置动作D成功回滚后再执行,否则会因存储卷无法卸载导致数据损坏。
选择原子化操作单元组成测试组;任一测试组中的任意两个原子化操作单元之间不存在硬件资源冲突和策略级依赖;
对测试组进行并行灰度测试;
所述并行灰度测试的步骤如下:
通过标签选择器选择容器实例,组成灰度实例组;例如,选择10%的容器实例作为灰度实例组,为每个选中的容器实例的canary标签的值标记为true;
将测试组中的配置动作部署至所述灰度实例组;
将生产流量的指定比例路由至灰度实例组,同时阻断灰度实例组中的容器实例对生产数据存储的写操作;例如,通过服务网格将生产流量的10%路由至灰度实例组,然后通过数据库影子表、消息队列的镜像主题、缓存副本隔离等来阻断灰度实例组对生产数据存储的写操作,实现测试数据与生产数据的隔离;
采集灰度实例组的性能指标;例如采集延迟、错误率、资源利用率等性能指标;
基于预设的性能指标阈值判断测试组是否通过测试。例如,错误率小于0.1%,则通过测试。
记录并行灰度测试的测试结果,并将完成并行灰度测试的测试组拆分为独立的原子化操作单元。将测试组拆解为独立的配置动作,为后续全量部署或状态回滚提供独立的操作对象。
本申请实施例首先通过无状态性校验来确保配置动作之间不存在显式依赖,然后识别配置动作间的隐性依赖(硬件资源冲突、策略级依赖),从而实现更精细的依赖管理,优化并行灰度测试的准确率和效率。
所述并行灰度测试的测试结果包括通过测试与不通过测试;
基于并行灰度测试的结果,在对应的全局最优节点上进行容器实例的全量部署或状态回滚,具体包括:
若测试组通过测试,则将测试组中的配置动作部署至全部容器实例;例如,通过渐进式流量切换,将灰度实例组中的配置动作逐渐同步至全部容器实例;
若测试组未通过测试,则识别冲突动作,所述冲突动作为导致测试组未通过测试的配置动作,回滚灰度实例组中冲突动作的部署状态。
基于实时的灰度测试数据可在测试组中识别冲突动作,例如实时记录并行灰度测试的监控日志,监控日志中的错误事件可用于识别冲突动作。若测试组未通过并行灰度测试,则回滚冲突动作的部署状态,包括删除冲突动作的Kubernetes资源定义(如Deployment、ConfigMap等)、删除冲突单元在测试期间写入的临时数据(如数据库影子表)等。测试组中除了冲突动作之外的其他动作无需回滚,且保留其在灰度实例组中的部署状态,不进行全量部署,后续与其他配置动作组成新的测试组,当新的测试组通过并行灰度测试,则将新的测试组中的配置动作部署至全部容器实例。
传统容器实例的资源配置及更新多依赖运维人员预设的静态规则(如手动设定CPU请求值阈值),缺乏对业务场景动态特征的自动化适配能力。本申请通过以下技术路径实现智能化优化:首先,构建业务语义驱动的资源配置模板,将应用程序的业务特征自动映射为Kubernetes资源配置策略,然后采用声明式的资源变更拆分,将复杂的集群级变更解耦为多个可独立验证的原子化操作单元;最后通过动态流量染色与隔离技术,对多维度的资源配置策略实施并行灰度验证,实现渐进式的部署决策。本申请的技术路径在降低对人工经验依赖的同时,实现了资源利用率提升的优化效果,并降低了配置变更引发的业务异常率。
本申请实施例所述的Kubernetes集群一键部署及生命周期管理方法,不仅适用于容器实例的初始安装阶段,同样适用于应用程序的更新升级阶段。在应用升级场景中,通过动态适配升级前后的版本差异,实现平滑的滚动升级与灰度发布。具体而言,在应用升级时,需对以下关键步骤进行适应性调整:
在生成容器镜像的行为指纹时,需解析升级后镜像的元数据,并基于版本升级的增量变更生成差异化的行为指纹。例如,若升级后的容器镜像新增了对实时进程调度策略的运行时行为约束(如要求禁用CPU核心隔离机制),则需在行为指纹中扩展对应的调度器配置需求字段,并在节点硬件指纹中扩展内核实时补丁状态,以与新的运行时行为约束进行增量匹配。优选地,在权重评分模型中引入版本兼容性校验规则,例如当升级后的系统调用白名单与节点的系统调用集的交集覆盖旧版本白名单时,判定为兼容性匹配,从而避免因版本升级导致的节点失配问题。
进一步地,在构建权重矩阵时,结合滚动升级策略对匹配权重进行动态修正。例如,将旧版本容器实例的节点分配状态作为约束条件,确保新版本容器实例优先调度至空闲节点或低负载节点,从而减少升级过程中的资源争用。此外,在采用优化算法处理权重矩阵时,引入版本亲和性约束,例如将同一服务的多个容器实例的版本分布均匀性作为优化目标,防止因版本集中部署导致的单点故障风险。
进一步地,在资源配置策略生成阶段,基于升级前后的业务特征差异生成版本过渡策略。例如,若升级后的容器实例需进行数据迁移,则在资源配置模板中扩展数据迁移规则,生成包含存储卷声明转换、数据库Schema版本管理、缓存数据预热策略的复合型资源配置策略。优选地,在原子化操作单元的无状态性校验中,增加对跨版本资源引用的隔离性验证,例如检测新旧版本配置映射的名称冲突,确保版本回滚时能够通过删除单一资源对象实现状态还原。
进一步地,在并行灰度测试阶段,针对升级场景优化流量染色与隔离机制。例如,在灰度实例组中并行测试新旧版本容器实例的混合部署状态,通过服务网格的流量镜像功能将生产请求同时路由至新旧版本的容器实例,并对比两者的性能指标差异以验证升级兼容性。若测试未通过,则基于版本标识符快速回滚至旧版本的行为指纹与资源配置模板,同时保留增量生成的差异字段作为升级失败日志,供后续版本迭代分析使用。
通过上述适应性调整,本申请实施例在应用升级场景中能够有效识别版本差异导致的隐性依赖变化,实现资源分配策略的动态适配与灰度发布的精准控制,在保障服务连续性的同时,提升集群升级的成功率与效率,从而实现Kubernetes集群的生命周期管理。
实施例2
本实施例为本申请的第二个实施例;与实施例1基于相同的发明构思,参照图2,本实施例介绍一种Kubernetes集群一键部署及生命周期管理系统,包括指纹生成模块、节点分配模块、资源配置模块、灰度测试模块、部署管理模块;其中:
指纹生成模块用于采集节点参数和容器镜像的元数据,并基于节点参数生成每个节点的节点硬件指纹,以及基于元数据生成每个容器镜像的行为指纹;
节点分配模块基于节点硬件指纹以及容器镜像的行为指纹为每个容器实例分配全局最优节点;该模块基于节点硬件指纹与容器实例的行为指纹,计算容器实例与节点之间的匹配权重,构建权重矩阵并采用优化算法处理权重矩阵,得到最终匹配方案,从而为每个容器实例分配全局最优节点。
资源配置模块基于容器实例的业务特征生成资源配置策略,并将资源配置策略拆分为独立的配置动作;该模块配置有资源配置模板,基于资源配置模板将容器实例的业务特征映射成资源配置策略,并通过无状态性校验将资源配置策略拆分为独立的配置动作。
灰度测试模块用于对配置动作进行并行灰度测试,并将并行灰度测试的结果反馈至部署管理模块;该模块通过识别并规避配置动作之间的硬件资源冲突和策略级依赖来生成测试组,并对测试组进行并行灰度测试,提升测试效率和准确性。
部署管理模块根据并行灰度测试的结果,进行容器实例的全量部署或状态回滚。若测试组通过测试,则部署管理模块将测试组中的配置动作部署至全部容器实例;若测试组未通过测试,则部署管理模块回滚灰度实例组中冲突动作的部署状态,同时保留测试组中除冲突动作之外其他动作在灰度实例组中的部署状态,以便后续与其他配置动作组成新的测试组。
上述各模块的具体功能实现参考实施例1所述的Kubernetes集群一键部署及生命周期管理方法中的相关内容,不予赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。