一种基于Kubernetes容器配置字典和保密字典的实现方法及其系统技术方案

技术编号:25755822 阅读:15 留言:0更新日期:2020-09-25 21:05
本发明专利技术公开了一种基于Kubernetes容器配置字典和保密字典的实现方法,属于软件应用的运行控制技术,包括:Kubernetes集群内的配置字典和保密字典资源的对象结构配置一判断配置项;Kubernetes组件API Server根据配置字典/保密字典的当前的判断配置项判定是否允许对该配置字典/保密字典的更新;Kubernetes组件Kubelet根据配置字典/保密字典中的当前的判断配置项执行是否对该配置字典/保密字典进行监听/轮询操作。本发明专利技术通过为配置字典和保密字典新增一个不可修改的配置项,以保证某些特定的配置字典和保密字典不可修改,当配置字典/保密字典被设置为不可修改(Immutable)时,可以防止意外的修改导致的应用的崩溃。

【技术实现步骤摘要】
一种基于Kubernetes容器配置字典和保密字典的实现方法及其系统
本专利技术涉及软件应用的运行控制
,特别是一种基于Kubernetes容器配置字典和保密字典的实现方法及其系统。
技术介绍
Kubernetes现有的配置字典(ConfigMap)和保密字典(Secret)是容器中常用的便捷配置方式,它们常以文件的形式挂载到Pod中供容器运行时使用。配置字典和保密字典通常可以很方便的被用户修改,同时,那些修改会大概花费1分钟左右被同步挂载至Pod的文件系统中。这就意味着,如果意外地添加了一个错误的配置,整个应用就会很快的无法正常运行。Kubernetes推荐的应用升级方法是滚动升级,这可以避免某些应用程序层面导致的应用崩溃问题,但是对于错误更新的配置字典和保密字典并不能起到保护作用。现实的情况是,大部分的配置字典和保密字典是用作静态文件来使用的,即一旦挂载到Pod中作为文件使用,除了整个应用都删除的情况,一般就不会进行修改。由于Kubernetes集群内的所有节点上的kubelet都会去监听(watch)或者轮询每一个被运行中的Pod挂载的配置字典和保密字典,以保证能将配置字典和保密字典的改动及时更新到Pod挂载的文件中,由此产生的大量请求,会导致Kubernetes集群的性能下降和难以扩展。
技术实现思路
本专利技术的专利技术目的是,针对上述问题,提供一种基于Kubernetes容器配置字典和保密字典的实现方法,通过为配置字典和保密字典新增一个不可修改的配置项,以保证某些特定的配置字典和保密字典不可修改,达到保护应用程序因为错误的配置更新中断运行的情况,也能使Kubelet不去监听这类配置字典和保密字典的更新,减少控制平面的负载,提高集群的性能。为达到上述目的,本专利技术所采用的技术方案是:一种基于Kubernetes容器配置字典和保密字典的实现方法,包括以下内容:S1、Kubernetes集群内的配置字典和保密字典资源的对象结构配置一判断配置项;S2、Kubernetes组件APIServer根据配置字典/保密字典的当前的判断配置项判定是否允许对该配置字典/保密字典的更新;S3、Kubernetes组件Kubelet根据配置字典/保密字典中的当前的判断配置项执行是否对该配置字典/保密字典进行监听/轮询操作。其中,步骤S1中,配置字典和保密字典为Kubernetes集群的原始的资源对象。判断配置项为一Immutable的字段,该字段为布尔类型。作为一选项,步骤S2的具体内容如下:S21、Kubernetes组件APIServer接收配置字典/保密字典的更新请求;S22、根据配置字典/保密字典的当前的Immutable字段判定是否允许更新;当该配置字典/保密字典的当前的Immutable字段为false或者未设置时,则允许更新;当该配置字典/保密字典的当前的Immutable字段为true时,则拒绝更新请求;S23、执行更新请求对规定的字段进行修改。作为一选项,步骤S3的具体内容如下:S31、每个节点上的Kubelet监听到配置字典/保密字典的更新状态;S32、根据该配置字典/保密字典的当前的Immutable字段执行是否继续对该配置字典/保密字典进行监听/轮询操作;S33、当该配置字典/保密字典的当前的Immutable字段为false或者未设置时,则继续监听/轮询该配置字典/保密字典的存储数据的更新状态,并将根据该更新请求的修改同步改动挂载至使用该配置字典/保密字典的Pod的挂载文件;S34、当该配置字典/保密字典的当前的Immutable字段为true时,则停止监听/轮询该配置字典/保密字典的存储数据的更新状态,并将该停止监听/轮询操作同步改动挂载至使用该配置字典/保密字典的Pod的挂载文件。由于采用上述技术方案,本专利技术具有以下有益效果:1.本专利技术的实现方法,通过为配置字典和保密字典新增一个不可修改的配置项,以保证某些特定的配置字典和保密字典不可修改,当配置字典/保密字典被设置为不可修改(Immutable)时,可以防止意外的修改导致的应用的崩溃。2.同时,Kubelet据此不去监听这类配置字典和保密字典,当大量不经常修改的配置字典/保密字典被设置为不可修改时,可以减少大量的监听/轮询请求,降低Kubernetes控制平面的负载,提高集群的整体性能。附图说明图1是本专利技术的实现方法的处理步骤图。图2是本专利技术的实现方法的验证示例验证步骤图。图3是本专利技术的实现方法的kubernetes的组件连接图。图4是本专利技术的实现方法的kubernetes的组件处理状态图。具体实施方式以下结合附图对专利技术的具体实施进一步说明。实施例1如图1所示,本实施例的一种基于Kubernetes容器配置字典和保密字典的实现方法,包括以下内容:步骤S1、Kubernetes集群内的配置字典和保密字典资源的对象结构配置一判断配置项。其中,判断配置项为一Immutable的字段,该字段为布尔类型。Kubernetes集群内的配置字典和保密字典的资源对象结构会得到扩展,都会增加一个名叫Immutable的字段。“配置字典和保密字典”为Kubernetes集群本身就存在的资源对象,是对原始的资源对象的结构进行扩展。步骤S2、Kubernetes组件APIServer根据配置字典/保密字典的当前的判断配置项判定是否允许对该配置字典/保密字典的更新。步骤S2的具体内容如下:S21、Kubernetes组件APIServer接收配置字典/保密字典的更新请求;S22、根据配置字典/保密字典的当前的Immutable字段判定是否允许更新;当该配置字典/保密字典的当前的Immutable字段为false或者未设置时,则允许更新;当该配置字典/保密字典的当前的Immutable字段为true时,则拒绝更新请求;S23、执行更新请求对规定的字段进行修改。“APIServer”是Kubernetes主节点上的组件,主要提供Kubernetes的api服务,所有的控制请求都会首先往APIServer发送。Kubernetes组件APIServer接收所有的集群控制平面的请求,当收到配置字典/保密字典类型的更新(update)请求时,会根据该配置字典/保密字典的Immutable字段对请求进行过滤;该配置字典/保密字典的当前的Immutable字段为false或者未设置,则保持原来的配置字典/保密字典的模式,可以对规定的字段进行修改;该配置字典/保密字典的当前的Immutable字段为true,则APIServer会拒绝修改某些字段的请求,包括配置字典/保密字典中存储的key-value数据信息以及Immutable字段。即一旦配置字典/保密字典被设置为Immutable,本文档来自技高网...

【技术保护点】
1.一种基于Kubernetes容器配置字典和保密字典的实现方法,其特征在于,包括以下内容:/nS1、Kubernetes集群内的配置字典和保密字典资源的对象结构配置一判断配置项;/nS2、Kubernetes组件API Server根据配置字典/保密字典的当前的判断配置项判定是否允许对该配置字典/保密字典的更新;/nS3、Kubernetes组件Kubelet根据配置字典/保密字典中的当前的判断配置项执行是否对该配置字典/保密字典进行监听/轮询操作。/n

【技术特征摘要】
1.一种基于Kubernetes容器配置字典和保密字典的实现方法,其特征在于,包括以下内容:
S1、Kubernetes集群内的配置字典和保密字典资源的对象结构配置一判断配置项;
S2、Kubernetes组件APIServer根据配置字典/保密字典的当前的判断配置项判定是否允许对该配置字典/保密字典的更新;
S3、Kubernetes组件Kubelet根据配置字典/保密字典中的当前的判断配置项执行是否对该配置字典/保密字典进行监听/轮询操作。


2.根据权利要求1所述的一种基于Kubernetes容器配置字典和保密字典的实现方法,其特征在于:所述步骤S3操作是在Kubelet监听到配置字典/保密字典的更新状态情况下执行,当Kubelet停止对该配置字典/保密字典进行监听/轮询操作后将不再执行。


3.根据权利要求1所述的一种基于Kubernetes容器配置字典和保密字典的实现方法,其特征在于:所述判断配置项为一Immutable的字段,该字段为布尔类型。


4.根据权利要求1所述的一种基于Kubernetes容器配置字典和保密字典的实现方法,其特征在于:所述步骤S2的具体内容如下:
S21、Kubernetes组件APIServer接收配置字典/保密字典的更新请求;
S22、根据配置字典/保密字典的当前的判断配置项判定是否允许更新;当该配置字典/保密字典的当前的判断配置项为false或者未设置时,则允许更新;当该配置字典/保密字典的当前的判断配置项为true时,则拒绝更新请求;
S23、执行更新请求对规定的字段进行修改更新。


5.根据权利要求1所述的一种基于Kubernetes容器配置字典和保密字典的实现方法,其特征在于,所述步骤S3的具体内容如下:
S31、每个节点上的Kubelet监听到配置字典/保密字典的更新状态;
S32、根据该配置字典/保密字典的当前的判断配置项执行是否继续对该配置字典/保密字典进行监听/轮询操作;
S33、当该配置字典/保密字典的当前的判断配置项为false或者未设置时,则继续监听/轮询该配置字典/保密字典的存储数据的更新状态,并将根据该更新请求的修改同步改动挂载至使用该配置字典/保密字典的Pod的挂载文件;
S34、当该配置字典/保密字典的当前的判断配置项为true时,则停止监听/轮询该配置字典/保密字典的存储数据的更新状态,并将该停止监听/轮询操作同步改动挂载至使用该配置字典/保密字典的Pod的挂载文件。

【专利技术属性】
技术研发人员:赵凯麟王志雄韦克璐
申请(专利权)人:中国—东盟信息港股份有限公司
类型:发明
国别省市:广西;45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1