
[0001]
本发明涉及云平台技术领域,特别涉及一种在云平台中根据配置变化更新工作负载的方法及装置。
背景技术:[0002]
目前,在云计算时代,kubernetes已经是一个使用非常广泛的paas平台,在敏捷开发、迭代过程中我们往往需要频繁的更新业务代码及配置文件等资源,迭代过程中,kubernetes中的业务工作负载,例如deployment(无状态负载)、daemonset(有状态负载)、statufulset(有状态负载)等,往往会伴随着secret(加密配置)、configmap(普通配置)使用,但是在挂在secret、configmap时像是环境变量(env)、subpath(直接读取文件)等使用场景中,当我们实时修改secret(加密配置)、configmap(普通配置)时,kubernetes的设计会导致业务工作负载是没法触发pod更新(无法根据配置文件变化感知到这一变化),从而导致配置文件无法生效。这时往往需要手动删除业务pod,触发业务重启。这样比较繁琐,不友好,且不便于开发人员维护。另外kubernetes原生的机制中,修改secret(加密配置)、configmap(普通配置)等资源时,在以目录等方式挂载时会有配置更新延迟,并且有时会因各种原因无法更新容器内配置文件。
技术实现要素:[0003]
本发明目的之一在于提供了一种在云平台中根据配置变化更新工作负载的方法,可以根据业务工作负载,例如deployment(无状态负载)、daemonset(有状态负载)、statufulset(有状态负载),所挂载的secret(加密配置)、configmap(普通配置),自动动态重新加载业务,使最新的配置生效;并且避免了挂载延迟。
[0004]
本发明实施例提供的一种在云平台中根据配置变化更新工作负载的方法,包括:
[0005]
在工作负载的编排文件中添加相关的注解;将工作负载信息与配置资源进行关联;
[0006]
通过kubernetes api暴露出来的数据,实时监听kubernetes集群中带有相关的注解的工作负载;
[0007]
当所述工作负载对应的所述配置资源发生变化时,触发所述工作负载的更新。
[0008]
优选的,在监听kubernetes集群时,采用循环检测的方式检测所述kubernetes集群内的工作负载;
[0009]
当所述工作负载没有相关的注解时,跳过所述工作负载检测下一个所述工作负载。
[0010]
优选的,在云平台中根据配置变化更新工作负载的方法,还包括:
[0011]
接收对所述编排文件中的所述相关的注解的删除操作,当所述相关的注解删除后,其对应的所述工作负载将不再被监听。
[0012]
优选的,所述资源配置包括:加密配置和普通配置。
[0013]
优选的,工作负载包括:deployment、daemonset、statufulset其中一种或多种结合。
[0014]
本发明还提供一种在云平台中根据配置变化更新工作负载的装置,包括:
[0015]
注解模块,用于在工作负载的编排文件中添加相关的注解;将工作负载信息与配置资源进行关联;
[0016]
监听模块,用于通过kubernetes api暴露出来的数据,实时监听kubernetes集群中带有相关的注解的工作负载;
[0017]
重载模块,用于当所述工作负载对应的所述配置资源发生变化时,触发所述工作负载的更新。
[0018]
优选的,监听模块在监听kubernetes集群时,采用循环检测的方式检测所述kubernetes集群内的工作负载;
[0019]
当所述工作负载没有相关的注解时,跳过所述工作负载检测下一个所述工作负载。
[0020]
优选的,注解模块还执行如下操作:
[0021]
接收对所述编排文件中的所述相关的注解的删除操作,当所述相关的注解删除后,其对应的所述工作负载将不再被监听。
[0022]
优选的,资源配置包括:加密配置和普通配置。
[0023]
优选的,工作负载包括:deployment、daemonset、statufulset其中一种或多种结合。
[0024]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0025]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
[0026]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0027]
图1为本发明实施例中一种在云平台中根据配置变化更新工作负载的方法的示意图;
[0028]
图2为本发明实施例中又一种在云平台中根据配置变化更新工作负载的方法的示意图。
具体实施方式
[0029]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0030]
本发明实施例提供了一种在云平台中根据配置变化更新工作负载的方法,如图1所示,包括:
[0031]
步骤s1:在工作负载的编排文件中添加相关的注解;将工作负载信息与配置资源进行关联;
[0032]
步骤s2:通过kubernetes api暴露出来的数据,实时监听kubernetes集群中带有相关的注解的工作负载;
[0033]
步骤s3:当所述工作负载对应的所述配置资源发生变化时,触发所述工作负载的更新。
[0034]
上述技术方案的工作原理及有意效果为:
[0035]
本发明的在云平台中根据配置变化更新工作负载的方法的实现,需要在工作负载中添加相关的注解【annotation】,保证工作负载信息和对应的configmap、secret等资源进行关联;实时监听kubernetes集群中带有相关的注解的工作负载,如果监测到configmap、secret配置发生更改,则会同时触发带有相关的注解的工作负载的更新;实现了可以根据业务工作负载,例如deployment(无状态负载)、daemonset(有状态负载)、statufulset(有状态负载),所挂载的secret(加密配置)、configmap(普通配置),自动动态重新加载业务,使最新的配置生效;并且避免了挂载延迟;避免了开发人员采用人工手动删除pod带来的业务中断问题。其中,注解配置如下所示:
[0036]
metadata:
[0037]
annotations:
[0038]
reloader.inspur.com/reload:"test"。
[0039]
在一个实施例中,在监听kubernetes集群时,采用循环检测的方式检测所述kubernetes集群内的工作负载;
[0040]
当所述工作负载没有相关的注解时,跳过所述工作负载检测下一个所述工作负载。
[0041]
上述技术方案的工作原理及有益效果为:
[0042]
在监听时,对于没有注解的工作负载不进行监听,实现对工作负载的筛选,提高了监听的效率。
[0043]
为了适应用户从编排文件中删除相关注解,在一个实施例中,在云平台中根据配置变化更新工作负载的方法,还包括:
[0044]
接收对所述编排文件中的所述相关的注解的删除操作,当所述相关的注解删除后,其对应的所述工作负载将不再被监听。
[0045]
为了提高监听的效率及准确性,在一个实施例中,所述资源配置包括:加密配置和普通配置。
[0046]
在一个实施例中,工作负载包括:deployment、daemonset、statufulset其中一种或多种结合。
[0047]
本发明还提供一种在云平台中根据配置变化更新工作负载的装置,包括:
[0048]
注解模块,用于在工作负载的编排文件中添加相关的注解;将工作负载信息与配置资源进行关联;
[0049]
监听模块,用于通过kubernetes api暴露出来的数据,实时监听kubernetes集群中带有相关的注解的工作负载;
[0050]
重载模块,用于当所述工作负载对应的所述配置资源发生变化时,触发所述工作负载的更新。
[0051]
上述技术方案的工作原理及有意效果为:
[0052]
本发明的在云平台中根据配置变化更新工作负载的装置的实现,需要在工作负载中添加相关的注解【annotation】,保证工作负载信息和对应的configmap、secret等资源进行关联;实时监听kubernetes集群中带有相关的注解的工作负载,如果监测到configmap、secret配置发生更改,则会同时触发带有相关的注解的工作负载的更新;实现了可以根据业务工作负载,例如deployment(无状态负载)、daemonset(有状态负载)、statufulset(有状态负载),所挂载的secret(加密配置)、configmap(普通配置),自动动态重新加载业务,使最新的配置生效;并且避免了挂载延迟。如图2为监听模块与重载模块的运行流程图。
[0053]
在一个实施例中,监听模块在监听kubernetes集群时,采用循环检测的方式检测所述kubernetes集群内的工作负载;
[0054]
当所述工作负载没有相关的注解时,跳过所述工作负载检测下一个所述工作负载。
[0055]
上述技术方案的工作原理及有益效果为:
[0056]
在监听时,对于没有注解的工作负载不进行监听,实现对工作负载的筛选,提高了监听的效率。
[0057]
为了适应用户从编排文件中删除相关注解,在一个实施例中,注解模块还执行如下操作:
[0058]
接收对所述编排文件中的所述相关的注解的删除操作,当所述相关的注解删除后,其对应的所述工作负载将不再被监听。
[0059]
为了提高监听的效率及准确性,在一个实施例中,资源配置包括:加密配置和普通配置。
[0060]
在一个实施例中,工作负载包括:deployment、daemonset、statufulset其中一种或多种结合。
[0061]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。