CN112286705A - 一种基于Kubernetes的容器web服务接口聚合系统 - Google Patents

一种基于Kubernetes的容器web服务接口聚合系统 Download PDF

Info

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
Application number
CN202011332598.6A
Other languages
English (en)
Inventor
梅坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN202011332598.6A priority Critical patent/CN112286705A/zh
Publication of CN112286705A publication Critical patent/CN112286705A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote 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的容器web服务接口聚合系统
技术领域
本发明涉及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配置和路由转化配置。
CN202011332598.6A 2020-11-24 2020-11-24 一种基于Kubernetes的容器web服务接口聚合系统 Pending CN112286705A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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监控系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
蓝关故人: "服务网格—后Kubernetes时代的微服务(前言)", 《HTTPS://BLOG.CSDN.NET/WEIXIN_39734304/ARTICLE/DETAILS/103756061》 *

Cited By (6)

* Cited by examiner, † Cited by third party
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