CN112286705A - 一种基于Kubernetes的容器web服务接口聚合系统 - Google Patents
一种基于Kubernetes的容器web服务接口聚合系统 Download PDFInfo
- Publication number
- CN112286705A CN112286705A CN202011332598.6A CN202011332598A CN112286705A CN 112286705 A CN112286705 A CN 112286705A CN 202011332598 A CN202011332598 A CN 202011332598A CN 112286705 A CN112286705 A CN 112286705A
- Authority
- CN
- China
- Prior art keywords
- configuration
- service
- discovery
- cluster
- conversion
- 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.)
- Pending
Links
Images
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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于Kubernetes的容器web服务接口聚合系统,包括:配置模块,收集用户个性化配置和进行配置;数据库,保存配置;配置转化模块,实现集群信息的自动发现和采集,包括:配置转化服务,配置发现并准备好进入配置文件;配置整合服务,整合配置并下发到envoy中;XDS服务,监听发现服务并通过envoy更新整合后的配置数据;Envoy服务,被配置成代理流向pod的流量并进行转发。用户仅通过在集群中安装对应的软件和配置,即可对容器中的服务进行API级别的管理,能够对单个API进行个性化的配置,实现更加细粒度的web服务接口管理,可视化添加配置更加简单方便。
Description
技术领域
本发明涉及Kubernetes容器技术领域,具体的说,是一种基于Kubernetes的容器web服务接口聚合系统。
背景技术
现在公司普遍使用Kubernetes容器编排平台作为公司级私有云平台的开发,但当前Kubernetes最小的服务资源是Pod级别,因此在Kubernetes中只可以监测Pod当前的状态,若出现后端数据库重启或redis数据库服务关闭等,接口可能会失败返回结果;同时某些接口需要设置请求的特殊条件(例如验证token,签名头部验证等),现有的ingress组件并不能控制。而对于Kubernetes web服务部署的用户来说,API的治理也是至关重要的。因为Kubernetes中的web服务通过ingress可以管理集群外部访问集群内部的服务,主要是实现7层负载均衡,因此请求都会通过ingress。因此,现在业界主流做法是:1)对ingress返回的错误码进行监测,以监控当前web服务的状态。但是,使用ingress返回的状态码进行监控,并不能对单个web服务接口进行个性化配置,也不能单独配置请求接口的请求头部等,缺少更细粒度的控制;2)使用API网关来控制管理集群外部访问集群内部的服务,例如kong等,它是是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能、高可用的API托管服务,从而帮助服务的开发者便捷地对外提供服务,而不用考虑安全控制、流量控制、审计日志等问题。但由于类似服务需要进行大量配置,同时缺少可视化的配置解析和聚合,添加配置的过程过于繁琐,缺少一个进行配置解析和聚合的服务。
发明内容
本发明的目的在于提供一种基于Kubernetes的容器web服务接口聚合系统,用于解决现有技术中针对Kubernetes并不针对服务进行治理,缺少对服务层面的控制,不能对Web服务接口个性化配置、缺少配置解析和聚合服务的问题。
本发明通过下述技术方案解决上述问题:
一种基于Kubernetes的容器web服务接口聚合系统,包括:
配置模块,被配置成用户在swagger.json文档中进行个性化配置添加和状态管理,以及配置集群空间访问权限、特定pod是否开启以限定配置转化服务发现上游配置的范围、配置文件的可视化界面添加以保证用户自定义的http请求头以及其他参数配置以文件的形式传达到envoy xds服务接口并通过配置envoy的方式实现使用用户自定义规则来管理web接口的请求头;
数据库,被配置成保存配置和swagger.json文档,实现用户二次编辑配置;通过绑定的label配置来锁定配置转化服务,获取对应地址和端口并访问配置服务,提供初始化配置和自定义配置的基础配置要素;
配置转化模块,被配置成通过Kubernetes内部服务来完成集群信息的自动发现和采集,包括:
配置转化服务,包括配置转化脚本、ResourceWatcher和EndPoint Discovery服务,用于发现上游配置、配置路由转化、集群配置发现、secret配置发现,准备好进入配置聚合服务的配置文件;
配置整合服务,被配置成对配置转化服务转化出的配置进行整合,并按照预设顺序,通过XDS服务集合下发到envoy中;
XDS服务,被配置成包括监听器发现服务LDS、路由发现服务RDS、集群发现服务CDS和端点发现服务EDS,通过envoy的通用数据平面同步更新由配置整合服务整合后的配置数据;
Envoy服务,被配置成代理流向pod的流量,并进行转发。
所述ResourceWatcher,被配置成监视集群中资源改变并追加改变的资源到配置文件中。
所述EndPoint Discovery,被配置成通过对应服务的endpoint资源来发现服务的集群内ip地址和端口,以及描述pod的svc服务对应的服务端口和集群分配的IP,通过swagger.json文档或自动请求服务端口后特定的地址来获取整个服务的接口数据。
所述预设顺序为集群配置、上游配置、secret配置和路由转化配置。
本发明与现有技术相比,具有以下优点及有益效果:
本发明中用户仅通过在集群中安装对应的软件和配置,即可对容器中的服务进行API级别的管理,并能够对单个API进行个性化的配置,是更加细粒度的web服务接口管理方案,同时包含配置解析和控制服务,可视化添加配置更加简单方便。
附图说明
图1为本发明的系统框架图;
图2为请求配置访问流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
结合附图1所示,一种基于Kubernetes的容器web服务接口聚合系统,其中,后台主要作为个性化配置进行解析,以及数据库持久化的操作,后台部分可以部署在Kubernetes集群中,也可以部署在容器外,取决于用户需求,Kubernetes内部服务主要是聚合个性化配置,集群配置等,并转化为envoy配置,实现对web服务接口的配置。具体包括模块:
配置模块,收集个性化web接口配置,包括用户在swagger.json文档进行的个性化配置添加和状态管理,这部分主要是对用户可视化的处理,主要目的是为了建立直观的前端面板,方便用户管理;以及配置集群空间访问权限、特定pod是否开启以限定配置转化服务发现上游配置的范围、配置文件的可视化界面添加以保证用户自定义的http请求头以及其他参数配置以文件的形式传达到envoy xds服务接口并通过配置envoy的方式实现使用用户自定义规则来管理web接口的请求头;
对配置和swagger.json进行持久化保存至数据库,使得用户可以二次编辑配置,主要采取自定义后端框架goside以及vue作为前端为实现基础,其中goside主要是集成gorm,skywalking以及go-restful,方便追踪以及后期调试。数据库中通过绑定的label配置来锁定配置转化服务,获取对应地址和端口并访问配置服务,提供初始化配置和自定义配置的基础配置要素。
配置转化模块,实现集群信息的自动发现和采集,主要依靠建立的Kubernetes内部服务,主要包括4个部分:配置转化服务、配置整合服务、XDS服务集合和envoy服务,其主要的目的是自动转化配置到envoy中,方便envoy的使用,其中:
配置转化服务,主要包括配置转化脚本、ResourceWatcher以及EndPointDiscovery服务,主要目的是是发现上游配置、配置路由转化、集群配置发现和secret配置发现,准备好进入配置聚合服务的配置文件。当存在资源的更新,添加或者删除时,pod或者其他资源发生变化后,配置转化服务将会依靠ResourceWatcher插件,重新获取当前资源的数据和状态,并重新更新配置;
配置整合服务,配置转化服务转化出的配置进行整合,并按照设定的顺序,通过XDS服务集合下发到envoy中。由于envoy和配置间是最终一致性的关系,因此,在更新配置信息时,可能存在流量下降的问题,因此envoy配置更新需要遵循规则:如果有CDS更新,则必须始终优先推送;如果有EDS更新,则必须在相应群集的CDS更新后到达;LDS更新必须在相应的CDS/EDS更新后到达;与新添加的侦听器相关的RDS更新必须最终到达,然后可以删除过时的CDS群集和相关的EDS端点配置。
XDS服务,XDS是一系列服务的总称,主要包括监听器发现服务LDS、路由发现服务RDS、集群发现服务CDS、端点发现服务EDS和secret发现服务SDS,通过envoy的通用数据平面同步更新由配置转化服务转化成的配置数据,主要实现由envoy自己完成,调用接收配置整合服务发来的配置即可,配置发送不成功将会返回错误代码,更新配置的主要方式包括监控指定路径下的文件,REST-JSON的方式以及gRPC的方式,这里采取gRPC流式订阅,每个XDS API可以单独配置ApiConfigSource,指向对应的上游管理服务器的集群地址。每个XDS资源类型会启动一个独立的双向gRPC流,可能对应不同的管理服务器。API交付方式采用最终一致性,最终的显式控制序列主要依靠配置转化服务提供,此服务主要为了保证配置更新的序列性而诞生。配合仔细规划的更新顺序,XDS更新为了规避更新过程中流量丢失。更新规则一定需要遵循make before break模型,并不采取ADS更新,在集群配置数据更新频繁的情况下可能会造成集群硬件资源的压力。
envoy服务,这里特指envoy proxy服务,主要作用是代理流向pod的流量,进行转发。
其中,ResourceWatcher主要是对集群中的资源进行动态监视,当发现存在变化,及时同步并申请更新,资源的更新策略遵循make before break模型。主要监视虚拟路由变化以及上游变化,实现方式主要是通过Kubernetes的informer模块封装的list-watchAPI,用户只需要指定资源,编写事件处理函数,AddFunc,UpdateFunc和DeleteFunc等来实现不同事件对应的动作,就可以完成动态监视资源并生成配置文件。在更新配置的过程中,envoy的XDS服务遵循最终正确性的原则,即保留最后一次的正确配置,在此基础上,引入资源版本号即时序控制,对同一个版本的配置资源,当更新配置不生效,舍弃此资源版本,并将状态反向传递给后台,拒绝本次配置并还原到上次配置。
在本实例中,EndPoint Disovery服务主要是服务于ResourceWatcher服务,通过EndPoint Disovery服务把注册信息写到Endpoint Discovery中,Endpoint是kubernetes集群中的一个资源对象,存储在etcd中,用来记录一个service对应的所有pod的访问地址,ResourceWatcher将监控它变化,在之后,通过自动加载默认的接口配置参数或手动添加以后,系统会间隔性的探测接口,查看接口的状态,为了保证系统的运行占用系统资源在一定范围内,需要对系统性间隔进行限制。
对容器web服务接口聚合系统进行验证测试,具体包括:
对接口进行探测,直接通过路由访问对应接口,查看接口状态,并返回envoy对于流量的监控日志,包括流量在集群中到达的Envoy Listener,到达的Envoy Cluster,对应的负载均衡策略,和到达的Envoy Eodpoints,帮助开发人员分析,当前接口流量状态,请求配置访问流程图如下图2所示。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (4)
1.一种基于Kubernetes的容器web服务接口聚合系统,其特征在于,包括:
配置模块,被配置成用户在swagger.json文档中进行个性化配置添加和状态管理,以及配置集群空间访问权限、特定pod是否开启以限定配置转化服务发现上游配置的范围、配置文件的可视化界面添加以保证用户自定义的http请求头以及其他参数配置以文件的形式传达到envoy xds服务接口并通过配置envoy的方式实现使用用户自定义规则来管理web接口的请求头;
数据库,被配置成保存配置和swagger.json文档,实现用户二次编辑配置;通过绑定的label配置来锁定配置转化服务,获取对应地址和端口并访问配置服务,提供初始化配置和自定义配置的基础配置要素;
配置转化模块,被配置成通过Kubernetes内部服务来完成集群信息的自动发现和采集,包括:
配置转化服务,包括配置转化脚本、ResourceWatcher和EndPoint Discovery服务,用于发现上游配置、配置路由转化、集群配置发现、secret配置发现,准备好进入配置聚合服务的配置文件;
配置整合服务,被配置成对配置转化服务转化出的配置进行整合,并按照预设顺序,通过XDS服务集合下发到envoy中;
XDS服务,被配置成包括监听器发现服务LDS、路由发现服务RDS、集群发现服务CDS和端点发现服务EDS,通过envoy的通用数据平面同步更新由配置整合服务整合后的配置数据;
Envoy服务,被配置成代理流向pod的流量,并进行转发。
2.根据权利要求1所述的一种基于Kubernetes的容器web服务接口聚合系统,其特征在于,所述ResourceWatcher,被配置成监视集群中资源改变并追加改变的资源到配置文件中。
3.根据权利要求1或2所述的一种基于Kubernetes的容器web服务接口聚合系统,其特征在于,所述EndPoint Discovery,被配置成通过对应服务的endpoint资源来发现服务的集群内ip地址和端口,以及描述pod的svc服务对应的服务端口和集群分配的IP,通过swagger.json文档或自动请求服务端口后特定的地址来获取整个服务的接口数据。
4.根据权利要求1所述的一种基于Kubernetes的容器web服务接口聚合系统,其特征在于,所述预设顺序为集群配置、上游配置、secret配置和路由转化配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011332598.6A CN112286705A (zh) | 2020-11-24 | 2020-11-24 | 一种基于Kubernetes的容器web服务接口聚合系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011332598.6A CN112286705A (zh) | 2020-11-24 | 2020-11-24 | 一种基于Kubernetes的容器web服务接口聚合系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286705A true CN112286705A (zh) | 2021-01-29 |
Family
ID=74425434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011332598.6A Pending CN112286705A (zh) | 2020-11-24 | 2020-11-24 | 一种基于Kubernetes的容器web服务接口聚合系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286705A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988223A (zh) * | 2021-03-25 | 2021-06-18 | 北京百度网讯科技有限公司 | 框架集成方法、装置、电子设备及存储介质 |
CN113347043A (zh) * | 2021-06-25 | 2021-09-03 | 武汉悦学帮网络技术有限公司 | 网关的管理方法、装置、网关管理平台及存储介质 |
CN115134358A (zh) * | 2021-03-19 | 2022-09-30 | 顺丰科技有限公司 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200133795A1 (en) * | 2018-10-26 | 2020-04-30 | EMC IP Holding Company LLC | Smart dynamic restore for kubernetes based applications |
CN111209127A (zh) * | 2020-01-13 | 2020-05-29 | 山东汇贸电子口岸有限公司 | 一种Dubbo框架集成Istio服务网格的方法 |
US20200236406A1 (en) * | 2020-02-13 | 2020-07-23 | Waldo Bastian | Networking for distributed microservices communication for real-time multi-view computer vision streaming applications |
CN111629061A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种基于Kubernetes的推理服务系统 |
CN111708611A (zh) * | 2020-07-02 | 2020-09-25 | 浪潮云信息技术股份公司 | 轻量级Kubernetes监控系统及方法 |
-
2020
- 2020-11-24 CN CN202011332598.6A patent/CN112286705A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200133795A1 (en) * | 2018-10-26 | 2020-04-30 | EMC IP Holding Company LLC | Smart dynamic restore for kubernetes based applications |
CN111209127A (zh) * | 2020-01-13 | 2020-05-29 | 山东汇贸电子口岸有限公司 | 一种Dubbo框架集成Istio服务网格的方法 |
US20200236406A1 (en) * | 2020-02-13 | 2020-07-23 | Waldo Bastian | Networking for distributed microservices communication for real-time multi-view computer vision streaming applications |
CN111629061A (zh) * | 2020-05-28 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种基于Kubernetes的推理服务系统 |
CN111708611A (zh) * | 2020-07-02 | 2020-09-25 | 浪潮云信息技术股份公司 | 轻量级Kubernetes监控系统及方法 |
Non-Patent Citations (1)
Title |
---|
蓝关故人: "服务网格—后Kubernetes时代的微服务(前言)", 《HTTPS://BLOG.CSDN.NET/WEIXIN_39734304/ARTICLE/DETAILS/103756061》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134358A (zh) * | 2021-03-19 | 2022-09-30 | 顺丰科技有限公司 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
CN115134358B (zh) * | 2021-03-19 | 2024-04-12 | 顺丰科技有限公司 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
CN112988223A (zh) * | 2021-03-25 | 2021-06-18 | 北京百度网讯科技有限公司 | 框架集成方法、装置、电子设备及存储介质 |
CN112988223B (zh) * | 2021-03-25 | 2023-08-04 | 北京百度网讯科技有限公司 | 框架集成方法、装置、电子设备及存储介质 |
CN113347043A (zh) * | 2021-06-25 | 2021-09-03 | 武汉悦学帮网络技术有限公司 | 网关的管理方法、装置、网关管理平台及存储介质 |
CN113347043B (zh) * | 2021-06-25 | 2022-11-22 | 武汉悦学帮网络技术有限公司 | 网关的管理方法、装置、网关管理平台及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286705A (zh) | 一种基于Kubernetes的容器web服务接口聚合系统 | |
US10719503B1 (en) | Interface for supporting integration with cloud-based service providers | |
US8122111B2 (en) | System and method for server configuration control and management | |
US8019835B2 (en) | Automated provisioning of computing networks using a network database data model | |
WO2019224645A1 (en) | Selectively providing mutual transport layer security using alternative server names | |
US11233863B2 (en) | Proxy application supporting multiple collaboration channels | |
US9473369B2 (en) | Application topology based on network traffic | |
US11068380B2 (en) | Capturing and encoding of network transactions for playback in a simulation environment | |
CN109150610B (zh) | 基于规则适配的网络事件采集方法 | |
CN113572689A (zh) | 微服务网关管理方法、系统、设备、可读存储介质及产品 | |
US9077719B2 (en) | Method and system for automatic distribution and installation of a client certificate in a secure manner | |
US10678676B2 (en) | Playback of captured network transactions in a simulation environment | |
US20200409934A1 (en) | Interface for supporting integration with cloud-based service providers | |
US20140282818A1 (en) | Access control in a secured cloud environment | |
CN112187491A (zh) | 服务器的管理方法、装置和设备 | |
US20240205068A1 (en) | Using generic key-value pairs to configure ran component attributes in a ran system | |
CN110912731A (zh) | 基于nfv采用dpi技术实现业务识别和拓扑分析的系统和方法 | |
CN111522625B (zh) | 一种云端数据在线取证系统及方法 | |
US20040003083A1 (en) | Remote services system service module interface | |
US20030149889A1 (en) | Automatic communication and security reconfiguration for remote services | |
US11210156B1 (en) | Intelligent distributed tracing | |
US20030149740A1 (en) | Remote services delivery architecture | |
EP3704894B1 (en) | A method and arrangement for allocating communication resources in a communication network | |
US20200099788A1 (en) | Context data management interface for contact center | |
WO2024136932A1 (en) | Provisioning and deploying ran applications in a ran system |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210129 |