CN116760913B - k8s集群协议转换平台配置下发方法及系统 - Google Patents
k8s集群协议转换平台配置下发方法及系统 Download PDFInfo
- Publication number
- CN116760913B CN116760913B CN202311042965.2A CN202311042965A CN116760913B CN 116760913 B CN116760913 B CN 116760913B CN 202311042965 A CN202311042965 A CN 202311042965A CN 116760913 B CN116760913 B CN 116760913B
- Authority
- CN
- China
- Prior art keywords
- configuration
- module
- protocol conversion
- conversion platform
- container
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims abstract description 44
- 230000009191 jumping Effects 0.000 claims description 15
- 238000012986 modification Methods 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 10
- 238000013519 translation Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000005059 dormancy Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims 1
- 230000009466 transformation Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000002688 persistence Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Abstract
本发明公开一种k8s集群协议转换平台配置下发方法及系统,其中,所述系统包括配置加载模块、共享内存、配置监控模块、业务部署模块、业务建模模块、业务配置模块、辅助部署模块和配置下发模块。本发明实现协议转换平台在不重新启动的情形下完成当前最新配置数据的加载。
Description
技术领域
本发明涉及k8s集群技术领域,具体地说是一种k8s集群协议转换平台配置下发方法及系统。
背景技术
在传统企业中,为应用程序提供运行环境和部署新版本花费的时间,通常以天或者周来计算。这一类传统应用程序,通常使用不太灵活的软件开发方法进行构建,在部署时通常需要较长的时间,而且不易于扩展。现代企业希望构建高度可扩展、灵活且具有弹性的应用程序,可以快速更新以满足客户需求。因此,云原生应运而生。云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。云原生技术支持快速、频繁地更改应用程序,而不会影响服务交付。
IPv4/IPv6协议交换平台,可以有效解决政企事业单位内部复杂应用IPv4-IPv6或IPv6-IPv4互通问题。应用转换功能是IPv4/IPv6协议交换平台产品的核心功能,它主要包括网站转换、指定域名回源地址、回源策略、源地址携带、源站联动监测、外链翻译、死链优化、访问标识、证书管理、缓存策略以及防盗链等子功能。实现应用转换功能的模块,即应用转换模块,是一个基于云原生技术开发的云原生应用程序。
在基于云原生技术开发云原生应用程序时,配置数据大体上可以分为两类:一类是系统配置数据,主要包括云原生应用程序在初始运行时必须提供的配置数据以及缺省的配置数据等;另一类是用户配置数据,主要包括在云原生应用程序运行期间由用户创建与维护的、且与云原生应用程序所提供业务功能相关的配置数据等。一般地,在开发云原生应用程序时,系统配置数据通常以配置文件的形式进行存储;用户配置数据通常以CRD(CustomResourceDefinition,自定义资源定义)资源的形式进行存储,以便能够充分利用k8s集群为云原生应用程序开发所提供的便利性。
在云原生应用程序运行期间,系统配置数据较少发生变更,但是用户配置数据将会频繁地发生变更。并且,为了保证云原生应用程序可以为用户提供持续的、不间断的业务服务,当用户配置数据发生变更时,要求云原生应用程序必须能够在不重新启动的情形下完成当前最新配置数据的加载操作。
然而,目前在开发云原生应用程序时,为了满足这一要求,存在一定的困难和问题。如何为云原生应用程序下发配置,并且实现当前最新配置数据的不重启加载,是十分迫切和必要的。
发明内容
为此,本发明所要解决的技术问题在于提供一种k8s集群协议转换平台配置下发方法及系统,实现协议转换平台在不重新启动的情形下完成当前最新配置数据的加载。
为解决上述技术问题,本发明提供如下技术方案:
k8s集群协议转换平台配置下发方法,在容器运行期间,通过如下步骤实现k8s集群协议转换平台的配置下发:
S1)利用与协议转换平台设置在同一个节点的配置监控模块对配置文件修改与否进行监控,当配置文件发生修改时,则跳转至步骤S2),反之则继续对配置文件修改与否进行监控;
S2)利用与协议转换平台设置在同一个节点的同一个容器内的配置加载模块将从配置文件中读取的全部配置信息写入共享内存中;
S3)协议转换平台从共享内存中读取由配置加载模块写入共享内存中的全部配置信息并进行加载,完成配置信息的加载后,协议转换平台配置下发完成。
上述方法,在步骤S1)中,配置监控模块通过如下步骤实现对配置文件修改与否的监控:
S1-1)获取配置文件的修改时间,记作time-old;
S1-2)休眠5秒钟;
S1-3)再次获取配置文件的修改时间,记作time-new;
S1-4)比较time-old和time-new的值是否相等,若不相等,则表示配置文件已经发生变化,则跳转至步骤S1-5)继续执行,反之,则表示配置文件未发生变化,直接跳转至S1-2)继续执行;
S1-5)对协议转换平台配置下发进度进行监控,当监控到协议转换平台配置下发完成后,将time-new的值赋值给time-old,然后跳转至步骤S1-2)继续对配置文件修改与否进行监控。
上述方法,在部署协议转换平台的容器启动时,通过部署协议转换平台的容器的启动模块对协议转换平台的配置文件是否存在进行监控,如果协议转换平台的配置文件不存在,则拷贝协议转换平台的初始配置文件并完成配置信息的下发,反之则由配置监控模块开始对协议转换平台的配置文件修改与否进行监控。
上述方法,协议转换平台的功能子模块的配置通过业务配置模块进行管理;功能子模块包括网站转换规则子模块、源站联动监测子模块、外链翻译子模块、访问标识子模块、证书管理子模块和缓存策略子模块。
上述方法,在部署协议转换平台的节点上设置一个与协议转换平台不在同一个容器内的辅助Pod;在部署辅助Pod的容器启动时,通过部署辅助Pod的容器的启动模块对部署辅助Pod的容器内的协议转换平台配置文件的内容是否为空进行检测及处理,如果协议转换平台的配置文件内容不为空,则将协议转换平台配置文件拷贝至部署协议转换平台的容器内,反之,则不对协议转换平台的配置文件进行处理。
用于k8s集群协议转换平台配置下发系统,包括:
配置加载模块,用于从协议转换平台配置文件中读取全部配置信息并将所述全部配置信息写入共享内存中;
共享内存,用于存储所述全部配置信息;
配置监控模块,用于对协议转换平台配置文件修改与否进行监控;
配置监控模块与配置加载模块通信连接,配置加载模块与协议转换平台通过共享内存通信连接;配置监控模块、配置加载模块、共享内存和协议转换平台部署在同一个容器内。
上述系统,还包括用于在k8s集群中的一个节点或多个节点部署协议转换平台的业务部署模块;利用业务部署模块部署协议转换平台时,同时部署配置监控模块,并为部署有协议转换平台的容器部署启动模块,通过部署协议转换平台的容器的启动模块对协议转换平台的配置文件是否存在进行监控,如果协议转换平台的配置文件不存在,则拷贝协议转换平台的初始配置文件并完成配置信息的下发,反之则由配置监控模块开始对协议转换平台的配置文件修改与否进行监控。
上述系统,还包括为功能子模块构建配置模型的业务建模模块,功能子模块包括网站转换规则子模块、源站联动监测子模块、外链翻译子模块、访问标识子模块、证书管理子模块和缓存策略子模块;业务建模模块为功能子模块定义新的自定义资源定义资源并将所述新的自定义资源定义资源添加至k8s集群中。
上述系统,还包括为功能子模块提供Restful API接口的业务配置模块;用户通过业务配置模块对功能子模块的配置进行包括但不限于创建、编辑、删除以及查询的管理操作。
上述系统,还包括用于在k8s集群中的一个节点或多个节点上部署辅助Pod的辅助部署模块和用于监听k8s集群Etcd数据库中资源对象变化并进行相应处理的配置下发模块;辅助Pod与协议转换平台部署在不同的容器内;在部署辅助Pod的容器启动时,通过部署辅助Pod的容器的启动模块对部署辅助Pod的容器内的协议转换平台配置文件的内容是否为空进行检测及处理,如果协议转换平台的配置文件内容不为空,则将协议转换平台配置文件拷贝至部署协议转换平台的容器内,反之,则不对协议转换平台的配置文件进行处理。
本发明的技术方案取得了如下有益的技术效果:
在协议转换平台运行期间,当用户根据需要对网站转换、指定域名回源地址以及回源策略等子功能进行配置后,本发明可以为协议转换平台生成最新配置,将最新配置下发至协议转换平台,并且保证协议转换平台在无需重新启动的情形下完成最新配置的加载。
附图说明
图1为本发明中k8s集群协议转换平台配置下发系统的工作原理图;
图2为本发明中k8s集群协议转换平台配置下发流程图。
具体实施方式
下面结合示例,针对本发明进行进一步说明。
如图1所示,k8s集群协议转换平台配置下发系统,包括配置加载模块、共享内存、配置监控模块、业务部署模块、业务建模模块、业务配置模块、辅助部署模块和配置下发模块。
本发明中,协议转换平台的核心功能为网站转换、指定域名回源地址、回源策略、源地址携带、源站联动监测、外链翻译、死链优化、访问标识、证书管理、缓存策略以及防盗链等子功能。
将协议转换平台部署在k8s集群的节点上进行运行时,协议转换平台以Pod形态运行。本实施例中,将运行协议转换平台的Pod成为协议转换Pod。在协议转换Pod中,有且仅有一个容器,将该容器命名为my-app,协议转换平台即在my-app容器内运行。协议转换平台在运行时依赖于若干配置信息,这些配置信息统一存放于/etc/my-app/application.conf文件中,且在协议转换平台运行期间,用户可以根据业务需要对网站转换、指定域名回源地址以及回源策略等多个子功能进行配置。
k8s集群通常由Master节点与Worker节点所组成。其中,Master节点的数量建议为奇数个,Worker节点的数量不进行限制,即可以没有Worker节点。在k8s集群中,采用分布式存储方案为k8s集群中的Pod提供存储服务,分布式存储方案包括但不限于GlusterFS、OpenEBS、Ceph和Longhorn。
在本发明的实施例中,k8s集群总共包括6个节点,其中3个节点是Master节点,依次编号为master01、master02、master03,另外3个节点是Worker节点,依次编号为worker01、worker02、worker03。
master01、master02、master03、worker01、worker02、worker03这6个节点的IP地址依次为10.89.1.11、10.89.1.12、10.89.1.13、10.89.1.14、10.89.1.15、10.89.1.16。并且,master01、master02、master03这3个Master节点在对外提供API服务时,统一以VIP(即虚IP)对外提供服务,在本发明的实施例中,VIP为10.89.1.10。
在本实施例中,采用OpenEBS分布式存储方案为k8s集群系统中的Pod提供存储服务。在部署OpenEBS分布式存储方案之后,将创建StorageClass(即存储类)对象,该存储类对象的名称为openebs-sc。
在本发明中,业务部署模块由Master节点运行。业务部署模块实现的功能是从k8s集群系统所有节点中选择一个或者多个节点作为业务宿主节点并在业务宿主节点上部署协议转换Pod。
在部署协议转换Pod时,可以通过DaemonSet方式进行部署,也可以通过Deployment方式进行部署。在k8s集群中,应用转换Pod的数量可以是一个,也可以是多个。在本发明中,使用分布式存储方案为协议转换Pod提供存储服务。
业务部署模块通过Deployment方式部署协议转换Pod,并按照如下步骤进行部署:
I)依次创建PersistentVolume对象pv-01和PersistentVolumeClaim对象pvc-01,指定存储类名称为openebs-sc,指定存储容量为50G,指定访问模式为ReadWriteOnce,指定回收策略为Delete,PersistentVolumeClaim对象pvc-01所属的命名空间为cncp-system;
II)创建ConfigMap对象cm-01,所属的命名空间为cncp-system;在cm-01对象中,data字段的数据类型为Map类型,它的键、值的数据类型均为字符串类型;
III)创建Deployment对象deploy-01,所属的命名空间为cncp-system。
在cm-01的data字段中设有三个键值对,其中,第一个键值对的键为“application-init.conf”,值为一个长字符串,这个长字符串的内容表示应用转换模块的初始配置;第二个键值对的键“monitor.sh”,值为一个长字符串,这个长字符串的内容表示一个监控脚本,用于实现配置监控模块的功能;第三个键值对的键为“entrypoint.sh”,值为一个长字符串,而这个长字符串的内容表示my-app容器在启动时将自动执行的启动脚本,用以实现my-app容器的启动模块功能。
在my-app容器运行期间,监控脚本周期性地监测配置文件/etc/my-app/application.conf的变化并进行相应处理,具体步骤为:
S1-1)获取配置文件/etc/my-app/application.conf的修改时间,记作time-old;
S1-2)休眠5秒钟;
S1-3)再次获取配置文件/etc/my-app/application.conf的修改时间,记作time-new;
S1-4)比较time-old和time-new的值是否相等,若不相等,则表示配置文件/etc/my-app/application.conf已经发生变化,则跳转至步骤S1-5)继续执行,反之,则表示配置文件/etc/my-app/application.conf未发生变化,直接跳转至S1-2)继续执行;
S1-5)对协议转换平台配置下发进度进行监控,当监控到协议转换平台配置下发完成后,将time-new的值赋值给time-old,然后跳转至步骤S1-2)继续对配置文件/etc/my-app/application.conf修改与否进行监控。
而my-app容器启动时将自动执行my-app容器的启动脚本,而my-app容器的启动脚本将执行多项任务,其中一项任务为对协议转换平台的配置文件是否存在进行监控,具体操作步骤为:
1)检测在/etc/my-app目录下是否存在application.conf文件;
2)若application.conf文件不存在,则跳转至步骤3)继续执行;否则,执行结束;
3)执行命令mkdir -p /etc/my-app;
4)执行命令cp /opt/my-app/application-init.conf /etc/my-app/application.conf,其中,/opt/my-app目录下的application-init.conf文件是协议转换平台的初始配置文件;
5)执行结束。
而且在my-app容器启动时,my-app容器的启动脚本还将执行monitor.sh监控脚本,以便在my-app容器运行期间,周期性地监测/etc/my-app/application.conf这个配置文件的变化并进行相应处理。
本实施例中,通过创建Deployment对象deploy-01来部署协议转换平台。其中,在deploy-01对象中,replicas取值为“1”,并在volumes数组中声明一个volume对象,该volume对象的name字段取值为“storage”,persistentVolumeClaim.claimName字段取值为“pvc-01”,且在my-app容器的volumeMounts数组中声明一个volumeMount对象,该volumeMount对象的name字段取值为“storage”,mountPath字段取值为“/etc/my-app”,subPath字段取值为“etc/my-app”,然后在volumes数组中再次声明一个volume对象,该volume对象的name字段取值为“config”,configMap.name字段取值为“cm-01”,configMap.defaultMode字段取值为“511”,且在my-app容器的volumeMounts数组中再次声明三个volumeMount对象:第一个volumeMount对象的name字段取值为“config”,mountPath字段取值为“/opt/my-app/application-init.conf”,subPath字段取值为“application-init.conf”;第二个volumeMount对象的name字段取值为“config”,mountPath字段取值为“/usr/local/bin/entrypoint.sh”,subPath字段取值为“entrypoint.sh”;第三个volumeMount对象的name字段取值为“config”,mountPath字段取值为“/usr/local/bin/monitor.sh”,subPath字段取值为“monitor.sh”。
业务建模模块由Master节点运行,用于为网站转换规则子模块、源站联动监测子模块、外链翻译子模块、访问标识子模块、证书管理子模块以及缓存策略子模块等功能子模块构建配置模型,分别为这些功能子模块定义新的CRD(CustomResourceDefinition,自定义资源定义)资源,并将这些新的CRD资源添加到k8s集群中。
在本实施例中,业务建模模块定义多种新的CRD资源,包括为网站转换规则子模块定义的TransformationRule资源,为源站联动监测子模块定义的LinkageMonitor资源,为外链翻译子模块定义的ExternalChainTranslation资源,为访问标识子模块定义的AccessIdentity资源,为证书管理子模块定义的CertManagement资源,为缓存策略子模块定义的CachingRule资源等。并且,业务建模模块调用k8s集群提供的API接口,将这些新的CRD资源添加到k8s集群中。
业务配置模块由Master节点运行,分别为网站转换规则子模块、源站联动监测子模块、外链翻译子模块、访问标识子模块、证书管理子模块以及缓存策略子模块等功能子模块提供Restful API接口。用户通过调用Restful API接口,可以对这些功能子模块的配置进行管理,包括但不限于创建、编辑、删除以及查询配置。
在本实施例中,业务配置模块为TransformationRule资源提供5个Restful API接口,分别用于创建一个新的TransformationRule对象、编辑一个指定的TransformationRule对象、删除一个指定的TransformationRule对象、查询一个指定的TransformationRule对象以及查询全部TransformationRule对象。
同理,业务配置模块分别为LinkageMonitor、ExternalChainTranslation、AccessIdentity、CertManagement以及CachingRule等资源提供Restful API接口。
在本实施例中,调用Restful API接口创建TransformationRule对象transf-01、CachingRule对象cache-01。
在本发明中,辅助部署模块由Master节点运行,用于从k8s集群所有节点中选择一个或者多个节点作为宿主节点,在这些宿主节点上部署辅助Pod。在辅助Pod中,有且仅有一个容器,该容器的名称为helper。
在部署辅助Pod时,可以通过DaemonSet方式进行部署,也可以通过Deployment方式进行部署。在k8s集群中,辅助Pod的数量可以是一个,也可以是多个。在本发明中,使用分布式存储方案为辅助Pod提供存储服务。
在本实施例中,辅助部署模块通过Deployment方式部署辅助Pod。在实际部署时,按照如下步骤进行操作。
i)创建ConfigMap对象cm-02,所属的命名空间为cncp-system;在cm-02对象中,data字段的数据类型为Map类型,它的键、值的数据类型均为字符串类型;
ii)创建ConfigMap对象cm-03,所属的命名空间为cncp-system;在cm-03对象中,data字段的数据类型为Map类型,它的键、值的数据类型均为字符串类型;
iii)创建Deployment对象deploy-02,所属的命名空间为cncp-system。
在cm-02对象的dada字段中键为“application.conf”、值为一个长字符串的键值对,该长字符串的内容表示协议转换平台当前的最新配置。特别地,在创建cm-02对象时,键application.conf的值是一个空字符串,而在cm-02对象被创建之后,键application.conf的值可能发生变更。
在cm-03对象data字段中添加一个键为“entrypoint.sh”、值为一个长字符串的键值对,该长字符串的内容表示helper容器在启动时将自动执行的启动脚本,该启动脚本将实现helper容器启动模块的功能。helper容器启动时,helper容器的启动脚本将执行多项任务,其中一项任务是更新/etc/my-app/application.conf文件,这项任务的执行步骤如下所示:
(1)检测/opt/helper/application.conf文件中的内容是否为空;
(2)若/opt/helper/application.conf文件中的内容不为空,则跳转至步骤(3)继续执行;否则,执行结束;
(3)执行命令cat /opt/helper/application.conf>/etc/my-app/application.conf;
(4)执行结束。
在本实施例中,通过创建Deployment对象deploy-02来部署辅助Pod。其中,在deploy-02对象中,replicas取值为“1”,并在volumes数组中声明一个volume对象,该volume对象的name字段取值为“storage”,persistentVolumeClaim.claimName字段取值为“pvc-01”,且在helper容器的volumeMounts数组中声明一个volumeMount对象,该volumeMount对象的name字段取值为“storage”,mountPath字段取值为“/etc/my-app”,subPath字段取值为“etc/my-app”。其中,pvc-01是在部署协议转换Pod时所创建的PersistentVolumeClaim对象。因此,对于辅助Pod中的helper容器、协议转换Pod中的my-app容器而言,它们的/etc/my-app目录挂载到相同的存储卷上,若更新helper容器中的/etc/my-app/application.conf文件,则my-app容器中的/etc/my-app/application.conf文件也将同步更新。
在deploy-02对象中,在volumes数组中再次声明一个volume对象,该volume对象的name字段取值为“config-02”,configMap.name字段取值为“cm-02”,configMap.defaultMode字段取值为“511”,且在helper容器的volumeMounts数组中再次声明一个volumeMount对象,该volumeMount对象的name字段取值为“config-02”,mountPath字段取值为“/opt/helper/application.conf”,subPath字段取值为“application.conf”,并在volumes数组中再次声明一个volume对象,该volume对象的name字段取值为“config-03”,configMap.name字段取值为“cm-03”,configMap.defaultMode字段取值为“511”,且在helper容器的volumeMounts数组中再次声明一个volumeMount对象,该volumeMount对象的name字段取值为“config-03”,mountPath字段取值为“/usr/local/bin/entrypoint.sh”,subPath字段取值为“entrypoint.sh”。
配置下发模块由Master节点运行,用于监听k8s集群Etcd数据库中TransformationRule、LinkageMonitor、ExternalChainTranslation、AccessIdentity、CertManagement以及CachingRule等资源的对象的变化(包括对象的创建、编辑与删除),并进行相应的处理。
在实施例中,已创建TransformationRule对象transf-01、CachingRule对象cache-01,配置下发模块将会监听到这两个对象被创建。以transf-01对象为例,对配置下发模块的处理过程进行详细说明:
(a)从k8s集群Etcd数据库中,获取TransformationRule资源的全部对象;
(b)检查TransformationRule对象的数量是否为零;
(c)若TransformationRule对象的数量不为零,则跳转至步骤(d)继续执行;否则,执行结束;
(d)从k8s集群Etcd数据库中,分别获取LinkageMonitor、ExternalChainTranslation、AccessIdentity、CertManagement以及CachingRule等资源的全部对象;
(e)基于获取的TransformationRule、LinkageMonitor、ExternalChainTranslation、AccessIdentity、CertManagement以及CachingRule等资源的全部对象,按照预先设定的配置生成规则,生成一个长字符串,记为str-01,str-01这个长字符串表示将应用于应用转换模块的最新配置;
(f)在k8s集群Etcd数据库中,编辑ConfigMap对象cm-02,将键application.conf的值修改为str-01;
(g)为deploy-02对象执行重启操作,触发辅助Pod的重新部署。
在利用本发明中k8s集群协议转换平台配置下发系统对更新后的协议转换平台配置进行下发时,如图2所示,包括如下步骤:
S1)利用与协议转换平台设置在同一个节点的配置监控模块对配置文件修改与否进行监控,当配置文件发生修改时,则跳转至步骤S2),反之则继续对配置文件修改与否进行监控;
S2)利用与协议转换平台设置在同一个节点的同一个容器内的配置加载模块将从配置文件中读取的全部配置信息写入共享内存中;
S3)协议转换平台从共享内存中读取由配置加载模块写入共享内存中的全部配置信息并进行加载,完成配置信息的加载后,协议转换平台配置下发完成。
配置加载模块在将/etc/my-app/application.conf文件中的全部配置信息写入共享内存期间,对共享内存的访问采取同步措施。即在配置加载模块将信息写入共享内存期间,其他设备不可以对共享内存进行读取,只有当配置加载模块完成写入之后,才可以对共享内存进行读取,以确保访问共享内存的安全性。
在本发明中,配置加载模块对外提供API服务。用户可以通过调用配置加载模块对外提供的API服务,主动地触发配置加载模块进行工作。
在协议转换平台运行期间,当用户根据需要对网站转换、指定域名回源地址以及回源策略等子功能进行配置后,本发明可以为协议转换平台生成最新配置,将最新配置下发至协议转换平台,并且保证协议转换平台在无需重新启动的情形下完成最新配置的加载。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。
Claims (8)
1.k8s集群协议转换平台配置下发方法,其特征在于,在部署协议转换平台的节点上设置一个与协议转换平台不在同一个容器内的辅助Pod,辅助Pod中的容器和协议转换Pod中的容器的/etc/my-app目录挂载到相同的存储卷上,若更新辅助Pod中的容器中的/etc/my-app/application.conf文件,则协议转换Pod中的容器中的/etc/my-app/application.conf文件也将同步更新;在协议转换Pod容器运行期间,通过如下步骤实现k8s集群协议转换平台的配置下发:
S1)利用与协议转换平台设置在同一个节点的配置监控模块对配置文件修改与否进行监控,当配置文件发生修改时,则跳转至步骤S2),反之则继续对配置文件修改与否进行监控;在部署辅助Pod的容器启动时,通过部署辅助Pod的容器的启动模块对部署辅助Pod的容器内的协议转换平台配置文件的内容是否为空进行检测及处理,如果协议转换平台的配置文件内容不为空,则将协议转换平台配置文件拷贝至部署协议转换平台的容器内,反之,则不对协议转换平台的配置文件进行处理;配置下发模块监听k8s集群Etcd数据库中资源对象变化并进行相应处理,并在k8s集群Etcd数据库中资源对象发生变化且使deploy-02对象执行重启操作时触发辅助Pod重新部署,其中,资源对象变化包括对象的创建、编辑与删除;
S2)利用与协议转换平台设置在同一个节点的同一个容器内的配置加载模块将从配置文件中读取的全部配置信息写入共享内存中;
S3)协议转换平台从共享内存中读取由配置加载模块写入共享内存中的全部配置信息并进行加载,完成配置信息的加载后,协议转换平台配置下发完成。
2.根据权利要求1所述的方法,其特征在于,在步骤S1)中,配置监控模块通过如下步骤实现对配置文件修改与否的监控:
S1-1)获取配置文件的修改时间,记作time-old;
S1-2)休眠5秒钟;
S1-3)再次获取配置文件的修改时间,记作time-new;
S1-4)比较time-old和time-new的值是否相等,若不相等,则表示配置文件已经发生变化,则跳转至步骤S1-5)继续执行,反之,则表示配置文件未发生变化,直接跳转至S1-2)继续执行;
S1-5)对协议转换平台配置下发进度进行监控,当监控到协议转换平台配置下发完成后,将time-new的值赋值给time-old,然后跳转至步骤S1-2)继续对配置文件修改与否进行监控。
3.根据权利要求1所述的方法,其特征在于,在部署协议转换平台的容器启动时,通过部署协议转换平台的容器的启动模块对协议转换平台的配置文件是否存在进行监控,如果协议转换平台的配置文件不存在,则拷贝协议转换平台的初始配置文件并完成配置信息的下发,反之则由配置监控模块开始对协议转换平台的配置文件修改与否进行监控。
4.根据权利要求1所述的方法,其特征在于,协议转换平台的功能子模块的配置通过业务配置模块进行管理;功能子模块包括网站转换规则子模块、源站联动监测子模块、外链翻译子模块、访问标识子模块、证书管理子模块和缓存策略子模块。
5.用于k8s集群协议转换平台配置下发系统,其特征在于,包括:
配置加载模块,用于从协议转换平台配置文件中读取全部配置信息并将所述全部配置信息写入共享内存中;
共享内存,用于存储所述全部配置信息;
配置监控模块,用于对协议转换平台配置文件修改与否进行监控;
辅助部署模块,用于在k8s集群中的一个节点或多个节点上部署辅助Pod;辅助Pod与协议转换平台部署在不同的容器内;在部署辅助Pod的容器启动时,通过部署辅助Pod的容器的启动模块对部署辅助Pod的容器内的协议转换平台配置文件的内容是否为空进行检测及处理,如果协议转换平台的配置文件内容不为空,则将协议转换平台配置文件拷贝至部署协议转换平台的容器内,反之,则不对协议转换平台的配置文件进行处理;
配置下发模块,用于监听k8s集群Etcd数据库中资源对象变化并进行相应处理;其中,资源对象变化包括对象的创建、编辑与删除;
配置监控模块与配置加载模块通信连接,配置加载模块与协议转换平台通过共享内存通信连接;配置下发模块与辅助部署模块通信连接;配置监控模块、配置加载模块、共享内存和协议转换平台部署在同一个容器内。
6.根据权利要求5所述的系统,其特征在于,还包括用于在k8s集群中的一个节点或多个节点部署协议转换平台的业务部署模块;利用业务部署模块部署协议转换平台时,同时部署配置监控模块,并为部署有协议转换平台的容器部署启动模块,通过部署协议转换平台的容器的启动模块对协议转换平台的配置文件是否存在进行监控,如果协议转换平台的配置文件不存在,则拷贝协议转换平台的初始配置文件并完成配置信息的下发,反之则由配置监控模块开始对协议转换平台的配置文件修改与否进行监控。
7.根据权利要求5所述的系统,其特征在于,还包括为功能子模块构建配置模型的业务建模模块,功能子模块包括网站转换规则子模块、源站联动监测子模块、外链翻译子模块、访问标识子模块、证书管理子模块和缓存策略子模块;业务建模模块为功能子模块定义新的自定义资源定义资源并将所述新的自定义资源定义资源添加至k8s集群中。
8.根据权利要求7所述的系统,其特征在于,还包括为功能子模块提供Restful API接口的业务配置模块;用户通过业务配置模块对功能子模块的配置进行包括但不限于创建、编辑、删除以及查询的管理操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311042965.2A CN116760913B (zh) | 2023-08-18 | 2023-08-18 | k8s集群协议转换平台配置下发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311042965.2A CN116760913B (zh) | 2023-08-18 | 2023-08-18 | k8s集群协议转换平台配置下发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116760913A CN116760913A (zh) | 2023-09-15 |
CN116760913B true CN116760913B (zh) | 2023-12-01 |
Family
ID=87961261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311042965.2A Active CN116760913B (zh) | 2023-08-18 | 2023-08-18 | k8s集群协议转换平台配置下发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116760913B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905197A (zh) * | 2020-11-23 | 2021-06-04 | 京东数字科技控股股份有限公司 | 一种信息处理方法、装置、系统、电子设备及存储介质 |
CN113296805A (zh) * | 2021-02-25 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种辅助容器实现热升级的方法及装置 |
CN113886349A (zh) * | 2020-07-01 | 2022-01-04 | 中国移动通信集团湖北有限公司 | 计费系统参数装载共享方法、装置及计算设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10749985B2 (en) * | 2015-05-19 | 2020-08-18 | Amazon Technologies, Inc. | Custom communication channels for application deployment |
-
2023
- 2023-08-18 CN CN202311042965.2A patent/CN116760913B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886349A (zh) * | 2020-07-01 | 2022-01-04 | 中国移动通信集团湖北有限公司 | 计费系统参数装载共享方法、装置及计算设备 |
CN112905197A (zh) * | 2020-11-23 | 2021-06-04 | 京东数字科技控股股份有限公司 | 一种信息处理方法、装置、系统、电子设备及存储介质 |
CN113296805A (zh) * | 2021-02-25 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种辅助容器实现热升级的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116760913A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198231B (zh) | 用于多租户的容器网络管理方法和系统以及中间件 | |
US11226847B2 (en) | Implementing an application manifest in a node-specific manner using an intent-based orchestrator | |
CN111966305B (zh) | 持久卷分配方法、装置、计算机设备和存储介质 | |
Redell et al. | Pilot: An operating system for a personal computer | |
CN107515776B (zh) | 业务不间断升级方法、待升级节点和可读存储介质 | |
CN109344000B (zh) | 区块链网络服务平台、恢复工具及其故障处理方法、存储介质 | |
US11113158B2 (en) | Rolling back kubernetes applications | |
CN111338854B (zh) | 基于Kubernetes集群快速恢复数据的方法及系统 | |
CN109189334B (zh) | 一种区块链网络服务平台及其扩容方法、存储介质 | |
US11347684B2 (en) | Rolling back KUBERNETES applications including custom resources | |
CN110520844A (zh) | 云管理平台、虚拟机管理方法及其系统 | |
CN113849266A (zh) | 多Kubernetes集群的业务部署方法及装置 | |
CN114528255A (zh) | 元数据管理方法、电子设备及计算机程序产品 | |
CN115774703A (zh) | 信息处理方法及装置 | |
CN114995948A (zh) | 下载安全容器镜像文件的方法、装置、设备及系统 | |
US11080909B2 (en) | Image layer processing method and computing device | |
US20230195695A1 (en) | File Sharing Method and Terminal Device | |
CN116760913B (zh) | k8s集群协议转换平台配置下发方法及系统 | |
CN111459619A (zh) | 一种基于云平台实现服务的方法和装置 | |
CN115037757B (zh) | 一种多集群服务管理系统 | |
CN114866416A (zh) | 一种多集群统一管理系统及部署方法 | |
CN114880073A (zh) | 一种对用户屏蔽Web框架的云应用引擎部署方法、装置、设备和存储介质 | |
CN114528260A (zh) | 文件访问请求的处理方法、电子设备及计算机程序产品 | |
CN114281399A (zh) | 分布式应用打包交付方法、系统、终端及存储介质 | |
CN115391238B (zh) | 持久卷的静态制备方法、装置、终端设备与介质 |
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 |