CN112783654B - 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 - Google Patents
一种Kubernetes环境下的云原生服务的共享配置资源实现方法 Download PDFInfo
- Publication number
- CN112783654B CN112783654B CN202110119460.6A CN202110119460A CN112783654B CN 112783654 B CN112783654 B CN 112783654B CN 202110119460 A CN202110119460 A CN 202110119460A CN 112783654 B CN112783654 B CN 112783654B
- Authority
- CN
- China
- Prior art keywords
- configuration data
- configmap
- configuration
- containers
- capacity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001360 synchronised effect Effects 0.000 claims abstract description 6
- 238000001514 detection method Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000007596 consolidation process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种Kubernetes环境下的云原生服务的共享配置资源实现方法,涉及云服务资源配置技术领域;Kubernetes环境下ETCD组件中ConfigMap容器的配置数据通过唯一标记与相应网关路由实例一一对应,通过唯一标记检测ConfigMap容器的配置数据更新,提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时在网关后端更新API配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
Description
技术领域
本发明公开一种方法,涉及云服务资源配置技术领域,具体地说是一种Kubernetes环境下的云原生服务的共享配置资源实现方法。
背景技术
随着云原生技术的不断发展,以Kubernetes为代表的容器技术成为云计算新界面。在Kubernetes环境下,云原生服务中还存在网关多个实例读取配置的强一致性需求不能满足的问题,而且配置变更时向多个实例进行同步的时效性能达标,配置资源存储或更新时容易超出ETCD单个资源存储上限,且更新及操作资源时资源操作粒度较大,不利于进行资源的优化配置。
发明内容
本发明针对现有技术的问题,提供一种Kubernetes环境下的云原生服务的共享配置资源实现方法,满足网关多个实例读取配置的强一致性需求;满足变更时向多个实例进行同步的时效性要求,解决配置资源存储或更新时超出ETCD单个资源存储上限的问题,并减小更新及操作资源时资源操作粒度。
本发明提出的具体方案是:
一种Kubernetes环境下的云原生服务的共享配置资源实现方法,Kubernetes环境下ETCD组件中ConfigMap容器的配置数据通过唯一标记与相应网关路由实例一一对应,
通过唯一标记检测ConfigMap容器的配置数据更新,提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时在网关后端更新API配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
进一步,所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法中选择ETCD组件中ConfigMap容器按照存储规则存储配置数据。
进一步,所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法中所述存储规则中设定ConfigMap容器中新增配置数据时的新增最大容量,以及变更配置数据时变更后ConfigMap容器的最大容量。
进一步,所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法中所述新增配置数据:通过对已创建ConfigMap容器容量的分析,筛选出存储容量在新增最大容量以下的ConfigMap容器,将新增配置数据存入。
进一步,所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法中变更配置数据:分析配置数据变更后的ConfigMap容器容量是否超过设定的最大容量,当超过最大容量将变更配置数据按照新增数据逻辑选择ConfigMap容器容量在新增最大容量以下的ConfigMap容器进行存储。
进一步,所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法中新增配置数据或变更配置数据通过key:value形式存储在ConfigMap容器中。
一种Kubernetes环境下的云原生服务的共享配置资源实现系统,包括存储关联模块、检测模块、提取解析模块及锁模块,
存储关联模块在Kubernetes环境下将ETCD组件中ConfigMap容器的配置数据通过唯一标记与相应网关路由实例一一对应,
检测模块通过唯一标记检测ConfigMap容器的配置数据更新,提取解析模块提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时锁模块在网关后端更新API配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
一种Kubernetes环境下的云原生服务的共享配置资源实现装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法。
本发明的有益之处是:
本发明提供一种Kubernetes环境下的云原生服务的共享配置资源实现方法,通过使用ETCD组件,将配置资源的安全性与集群进行绑定,在集群正常运行的情况下配置数据不会出现安全问题,并且基于ETCD组件的配置共享和服务发现属性,并通过设定实例组标识,实现不同分组间存储数据的隔离性,当检测配置数据变更时,服务实例基于Kubernetes的list-watch可实现毫秒级数据同步,保证数据同步的时效性,同时通过后端分布式锁和ETCD处数据解析规则保证了配置资源的强一致性,不会出现脏数据或遗漏数据的情况。
附图说明
图1是本发明方法应用架构示意图,其中Kubernetes为集群环境,Backend为数据处理后端,create or update为数据更新流程,ETCD为ETCD服务发现存储仓库,servicemodule为服务实例,monitor代表服务实例检测ETCD资源变更。
图2是本发明方法中新增配置流程示意图。
图3是本发明方法中更新配置流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种Kubernetes环境下的云原生服务的共享配置资源实现方法,Kubernetes环境下ETCD组件中ConfigMap容器的配置数据通过唯一标记与相应网关路由实例一一对应,
通过唯一标记检测ConfigMap容器的配置数据更新,提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时在网关后端更新API配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
具体应用中,在本发明一些实施例中,选择Kubernetes使用的ETCD组件作为分布式配置数据存储,并将数据整理将新增或更新的配置数据保存在ETCD中ConfigMap容器中,并且在ConfigMap资源使用key:value(apiId:apiConfig)结构保存API配置数据。
在集群中部署多组网关路由实例,每组网关实例,通过给对应ConfigMap资源添加唯一性label保证配置数据与网关实例一一对应,保证实例组之间配置数据隔离,而通过label检测ConfigMap存储容器的增删改,获取容器每次更新后的最新数据,并将数据按照设定的key:value结构进行提取,按照网关实例需要的规则进行解析,解析成功将配置同步到网关服务实例并触发热更新,解决数据变更时同步数据的时效性问题;
同时网关后端更新API配置时加分布式锁,保证后端多实例情况下相同资源同一时间只更新一次,同时ETCD组件具备同步锁机制,双重保证数据的强一致性需求。
在上述实施过程中,选择ETCD组件中ConfigMap容器按照存储规则存储配置数据,所述存储规则中设定ConfigMap容器中新增配置数据时的新增最大容量,以及变更配置数据时变更后ConfigMap容器的最大容量。其中根据k8s集群内ETCD组件的存储规则,优化新增配置数据与更新配置数据流程中每个ConfigMap容器的新增最大容量为最多保存容量的50%API配置数据,每次更新API时变更后的ConfigMap容器的最大容量要在容量的80%以内,否则就将本次更新的API迁移至容量50%以内的ConfigMap容器资源中,此种配置保存策略,经测试最大化利用了ConfigMap的存储空间,同时优化了每次更新API配置时的操作耗时;
具体实现例如:当新增数据时,通过对已创建容器容量的计算,选出存储容量在50%以下的容器将新增配置数据存入该容器;当变更数据时,计算数据变更后的存储容器容量是否超过80%,当超过80%将该条变更数据按照新增数据逻辑选择存储容量在50%以下的容器进行存储,并从旧的存储容器中移除;通过优化配置存储逻辑,解决了ETCD单个资源存储上限问题,并可根据Kubernetes集群实际情况,灵活调整配置相关参数,提高资源利用率。
在网关后端记录每一条配置资源存储的容器信息,在存储容器中将每条配置数据存储为一对key:value格式的键值对,在更新时,根据容器信息直接定位到ConfigMap存储容器中的指定的key,将每次新建与更新的配置数据粒度降到最低,使每次操作的耗费时间从秒级降到了毫秒级,相同环境下配置数据量越大提升的发布效率越高,发布操作不受配置数据总量影响。
同时本发明提供一种Kubernetes环境下的云原生服务的共享配置资源实现系统,包括存储关联模块、检测模块、提取解析模块及锁模块,
存储关联模块在Kubernetes环境下将ETCD组件中ConfigMap容器的配置数据通过唯一标记与相应网关路由实例一一对应,
检测模块通过唯一标记检测ConfigMap容器的配置数据更新,提取解析模块提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时锁模块在网关后端更新API配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
以及本发明提供一种Kubernetes环境下的云原生服务的共享配置资源实现装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种Kubernetes环境下的云原生服务的共享配置资源实现方法。
上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,上述较佳实施例各流程和各系统装置中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (3)
1.一种Kubernetes 环境下的云原生服务的共享配置资源实现方法,其特征是Kubernetes 环境下ETCD 组件中ConfigMap 容器的配置数据通过唯一标记与相应网关路由实例一一对应,选择ETCD 组件中ConfigMap 容器按照存储规则存储配置数据,所述存储规则中设定ConfigMap 容器中新增配置数据时的新增最大容量,以及变更配置数据时变更后ConfigMap容器的最大容量,进行新增配置数据:通过对已创建ConfigMap容器容量的分析,筛选出存储容量在新增最大容量以下的ConfigMap容器,将新增配置数据存入,
进行变更配置数据:分析配置数据变更后的ConfigMap容器容量是否超过设定的最大容量,当超过最大容量将变更配置数据按照新增数据逻辑选择ConfigMap容器容量在新增最大容量以下的ConfigMap容器进行存储,
新增配置数据或变更配置数据通过key:value形式存储在ConfigMap容器中;
通过唯一标记检测ConfigMap 容器的配置数据更新,提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时在网关后端更新 API 配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
2.一种Kubernetes 环境下的云原生服务的共享配置资源实现系统,其特征是包括存储关联模块、检测模块、提取解析模块及锁模块,
存储关联模块在Kubernetes 环境下将ETCD 组件中ConfigMap 容器的配置数据通过唯一标记与相应网关路由实例一一对应,
存储关联模块选择ETCD 组件中ConfigMap 容器按照存储规则存储配置数据,所述存储规则中设定ConfigMap 容器中新增配置数据时的新增最大容量,以及变更配置数据时变更后ConfigMap容器的最大容量,存储关联模块进行新增配置数据:通过对已创建ConfigMap容器容量的分析,筛选出存储容量在新增最大容量以下的ConfigMap容器,将新增配置数据存入,
存储关联模块进行变更配置数据:分析配置数据变更后的ConfigMap容器容量是否超过设定的最大容量,当超过最大容量将变更配置数据按照新增数据逻辑选择ConfigMap容器容量在新增最大容量以下的ConfigMap容器进行存储,
存储关联模块新增配置数据或变更配置数据通过key:value形式存储在ConfigMap容器中;
检测模块通过唯一标记检测ConfigMap 容器的配置数据更新,提取解析模块提取更新的配置数据按照网关路由实例需求的规则进行配置数据解析,将解析后的配置数据同步到网关服务实例,同时锁模块在网关后端更新 API 配置时添加分布式锁,在后端多实例情况下相同配置资源同一时间只更新一次。
3.一种Kubernetes 环境下的云原生服务的共享配置资源实现装置,其特征是包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1所述的一种Kubernetes 环境下的云原生服务的共享配置资源实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119460.6A CN112783654B (zh) | 2021-01-28 | 2021-01-28 | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119460.6A CN112783654B (zh) | 2021-01-28 | 2021-01-28 | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783654A CN112783654A (zh) | 2021-05-11 |
CN112783654B true CN112783654B (zh) | 2024-04-19 |
Family
ID=75759484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110119460.6A Active CN112783654B (zh) | 2021-01-28 | 2021-01-28 | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783654B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778555A (zh) * | 2021-09-02 | 2021-12-10 | 百融至信(北京)征信有限公司 | 一种分布式配置方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404923A (zh) * | 2020-03-12 | 2020-07-10 | 北京金山云网络技术有限公司 | 容器集群访问权限的控制方法及系统 |
CN111666189A (zh) * | 2020-06-12 | 2020-09-15 | 中信银行股份有限公司 | 一种声明式可视化配置Prometheus监控告警的方法和系统 |
-
2021
- 2021-01-28 CN CN202110119460.6A patent/CN112783654B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404923A (zh) * | 2020-03-12 | 2020-07-10 | 北京金山云网络技术有限公司 | 容器集群访问权限的控制方法及系统 |
CN111666189A (zh) * | 2020-06-12 | 2020-09-15 | 中信银行股份有限公司 | 一种声明式可视化配置Prometheus监控告警的方法和系统 |
Non-Patent Citations (2)
Title |
---|
Kubernetes高可用集群的部署实践;盛乐标;周庆林;游伟倩;张予倩;;电脑知识与技术(26);全文 * |
定制Kubernetes密码资源及金融机构应用实践;周恒磊;;通信技术(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112783654A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108076098B (zh) | 一种业务处理方法及系统 | |
CN112667362B (zh) | Kubernetes上部署Kubernetes虚拟机集群的方法与系统 | |
US8898520B1 (en) | Method of assessing restart approach to minimize recovery time | |
CN110865867B (zh) | 应用拓扑关系发现的方法、装置和系统 | |
US20190052528A1 (en) | Network function virtualization management orchestration apparatus, method | |
CN111049902A (zh) | 基于区块链网络的数据存储方法、装置、存储介质和设备 | |
US9397953B2 (en) | Operation managing method for computer system, computer system and computer-readable storage medium having program thereon | |
CN112948063B (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
CN110334070A (zh) | 数据处理方法、系统、设备及存储介质 | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及系统 | |
CN103516802A (zh) | 一种实现跨异构虚拟交换机无缝迁移的方法和装置 | |
CN108021449A (zh) | 一种协程实现方法、终端设备及存储介质 | |
CN102314368A (zh) | 更新服务器程序的配置数据的方法及设备 | |
CN103324582A (zh) | 一种内存迁移方法、装置及设备 | |
CN111694750A (zh) | 一种软件测试环境的构建方法及装置 | |
CN113067850A (zh) | 一种多云场景下的集群编排系统 | |
CN112783654B (zh) | 一种Kubernetes环境下的云原生服务的共享配置资源实现方法 | |
JP2018010421A (ja) | 計算機システム、計算機及びデータフィルタリング方法 | |
JP5740338B2 (ja) | 仮想環境運用支援システム | |
CN113672240A (zh) | 一种基于容器的多机房批量自动化部署应用的方法及系统 | |
CN110018845A (zh) | 元数据版本对比方法及装置 | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
CN113141269A (zh) | 数据采集方法、装置及系统 | |
CN112260902B (zh) | 网络设备监控方法、装置、设备及存储介质 | |
JP6040894B2 (ja) | ログ生成装置、及びログ生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |