一种K8S环境下的API网关服务高可用实现方法技术

技术编号:27509459 阅读:24 留言:0更新日期:2021-03-02 18:38
本发明专利技术公开了一种K8S环境下的API网关服务高可用实现方法,属于API网关技术领域。本发明专利技术的K8S环境下的API网关服务高可用实现方法通过编写自定义业务插件,实现多种业务需求,通过分析业务,合理的配置主用户,达到资源的使用充分,通过监控性能使用状态,进行分布式实例的动态扩缩容,实现多主用户隔离多子用户共享的分布式网关服务。该发明专利技术的K8S环境下的API网关服务高可用实现方法能够实现主用户间服务实例技术隔离,主用户间隔离,保证单个网关服务的安全性,具有很好的推广应用价值。具有很好的推广应用价值。

【技术实现步骤摘要】
一种K8S环境下的API网关服务高可用实现方法


[0001]本专利技术涉及API网关
,具体提供一种K8S环境下的API网关服务高可用实现方法。

技术介绍

[0002]随着云原生技术的不断发展,公有云、私有云和混合云等新型动态环境不断升级,构建和运行可弹性扩展的应用成为服务的基本属性,传统架构的弊端愈加明显,构建云原生技术的软件服务愈加重要。传统网关服务面临着不可预测性、扩展性差、瀑布式开发、恢复缓慢等等问题,有待进一步改进。

技术实现思路

[0003]本专利技术的技术任务是针对上述存在的问题,提供一种能够实现主用户间服务实例技术隔离,主用户间隔离,保证单个网关服务的安全性的K8S环境下的API网关服务高可用实现方法。
[0004]为实现上述目的,本专利技术提供了如下技术方案:
[0005]一种K8S环境下的API网关服务高可用实现方法,通过编写自定义业务插件,实现多种业务需求,通过分析业务,合理的配置主用户,达到资源的使用充分,通过监控性能使用状态,进行分布式实例的动态扩缩容,实现多主用户隔离多子用户共享的分布式网关服务。
[0006]作为优选,该K8S环境下的API网关服务高可用实现方法具体包括以下步骤:
[0007]S1、在集群中部署nginx-ingress服务作为网关服务对外的统一入口;
[0008]S2、配置K8s的ingress资源,将流量通过nginx-ingress导入不同的网关路由服务实例;
[0009]S3、网关实例在deploy中配置nodeSelector选择对应label的node节点进行调度;
[0010]S4、网关路由API按业务需求,用业务规定的主用户标识一组网关服务实例,API通过nginx-ingress将请求分流到不同主用户的网关服务实例中;
[0011]S5、网关配置存储设计符合云原生服务的一般设计模式,使用ETCD组件进行存储;
[0012]S6、在K8s环境中触发网关服务不停机更新。
[0013]作为优选,步骤S2中,网关实例配置HPA自动扩容机制,设置内存与CPU的临界值,超过临界值自动扩容服务实例的pod数量,实现基于服务流量峰谷的动态扩缩容。
[0014]作为优选,设置的内存与CPU的临界值为80%。
[0015]作为优选,步骤S3中,配置多个节点,节点间通过预选与优选两个环节,将网关pod进行均衡调度,合理利用node节点资源,并保证当单个node节点挂掉,其他节点上的网关实例继续服务。
[0016]作为优选,步骤S4中,实现主用户API由独享实例提供网关路由服务,多个普通用户使用共享网关实例提供服务。
[0017]作为优选,步骤S5中,服务实例间通过不同的label识别获取对应的API网关配置。
[0018]作为优选,步骤S6中,配置每组实例默认为两个副本,在更新过程中一次只更新一部分副本,成功后再更新更多副本,完成所有副本的更新。
[0019]该K8S环境下的API网关服务高可用实现方法基于ECTD的配置资源统一管理实现服务实例分布式;基于自研配置管理模块,实现网关服务实例的配置热更新;基于资源实时监控,实现管理后台更新网关服务版本,自动触发网关服务实例的滚动更新。使用ETCD中的ConfigMap资源,对网关API资源进行分类存储,并基于ConfigMap最优资源单位存储量,进行了配置资源的分类拆分。自研配置管理Controller通过预置环境变量,管理对应主用户的配置资源,通过配置版本号更新,与拆分后的多个ConfigMap资源匹配后,触发服务实例的热更新。基于服务实例资源的实时监控,记录当前服务实例镜像版本信息,通过更新管理后台的网关服务实例镜像版本号,自动检测版本差异,对老旧版本的网关服务实例进行滚动更新。
[0020]与现有技术相比,本专利技术的K8S环境下的API网关服务高可用实现方法具有以下突出的有益效果:所述K8S环境下的API网关服务高可用实现方法实现了分布式网关实例,对请求流量进行负载均衡;实现了主用户间服务实例技术隔离,主用户间隔离,保证单个网关服务的安全性;通过集群生态实现了基于业务流量大小,动态调节服务实例数量,保证网关服务的业务能力;通过将配置文件在虚拟资源内挂载,实现了服务异常后的自动恢复,无需人工运维;通过升级管理后台中的最新镜像版本,实现网关服务实例的镜像自动不停机更新,具有良好的推广应用价值。
具体实施方式
[0021]下面将结合实施例,对本专利技术的K8S环境下的API网关服务高可用实现方法作进一步详细说明。
[0022]实施例
[0023]本专利技术的K8S环境下的API网关服务高可用实现方法通过编写自定义业务插件,实现多种业务需求,通过分析业务,合理的配置主用户,达到资源的使用充分,通过监控性能使用状态,进行分布式实例的动态扩缩容,实现多主用户隔离多子用户共享的分布式网关服务。
[0024]具体的该K8S环境下的API网关服务高可用实现方法具体包括以下步骤:
[0025]S1、在集群中部署nginx-ingress服务作为网关服务对外的统一入口。
[0026]S2、配置K8s的ingress资源,将流量通过nginx-ingress导入不同的网关路由服务实例。
[0027]该步骤中,网关实例配置HPA自动扩容机制,设置内存与CPU的临界值为80%,超过临界值自动扩容服务实例的pod数量,实现基于服务流量峰谷的动态扩缩容。
[0028]S3、网关实例在deploy中配置nodeSelector选择对应label的node节点进行调度。
[0029]配置多个节点,节点间通过预选与优选两个环节,将网关pod进行均衡调度,合理利用node节点资源,并保证当单个node节点挂掉,其他节点上的网关实例继续服务,不会影响网关功能,实现API网关分布式高可用。
[0030]S4、网关路由API按业务需求,用业务规定的主用户标识一组网关服务实例,API通
过nginx-ingress将请求分流到不同主用户的网关服务实例中。
[0031]实现主用户API由独享实例提供网关路由服务,多个普通用户使用共享网关实例提供服务。
[0032]S5、网关配置存储设计符合云原生服务的一般设计模式,使用ETCD组件进行存储。
[0033]服务实例间通过不同的label识别获取对应的API网关配置。
[0034]S6、在K8s环境中触发网关服务不停机更新。
[0035]配置每组实例默认为两个副本,在更新过程中一次只更新一部分副本,成功后再更新更多副本,完成所有副本的更新。
[0036]该K8S环境下的API网关服务高可用实现方法基于ECTD的配置资源统一管理实现服务实例分布式;基于自研配置管理模块,实现网关服务实例的配置热更新;基于资源实时监控,实现管理后台更新网关服务版本,自动触发网关服务实例的滚动更新。使用ET本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种K8S环境下的API网关服务高可用实现方法,其特征在于:该方法通过编写自定义业务插件,实现多种业务需求,通过分析业务,合理的配置主用户,达到资源的使用充分,通过监控性能使用状态,进行分布式实例的动态扩缩容,实现多主用户隔离多子用户共享的分布式网关服务。2.根据权利要求1所述的K8S环境下的API网关服务高可用实现方法,其特征在于:具体包括以下步骤:S1、在集群中部署nginx-ingress服务作为网关服务对外的统一入口;S2、配置K8s的ingress资源,将流量通过nginx-ingress导入不同的网关路由服务实例;S3、网关实例在deploy中配置nodeSelector选择对应label的node节点进行调度;S4、网关路由API按业务需求,用业务规定的主用户标识一组网关服务实例,API通过nginx-ingress将请求分流到不同主用户的网关服务实例中;S5、网关配置存储设计符合云原生服务的一般设计模式,使用ETCD组件进行存储;S6、在K8s环境中触发网关服务不停机更新。3.根据权利要求2所述的K8S环境下的API网关服务高可用实现方法,其特征在于:步骤S2中,网关实例配置HP...

【专利技术属性】
技术研发人员:盖泉贺高传集颜亮张东海
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1