一种K8S环境下的API网关服务高可用实现方法与流程

文档序号:24066889发布日期:2021-02-26 13:23阅读:136来源:国知局
一种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的配置资源统一管理实现服务实例分布式;基于自研配置管理模块,实现网关服务实例的配置热更新;基于资源实时监控,实现管理后台更新网关服务版本,自动触发网关服务实例的滚动更新。使用etcd中的configmap资源,对网关api资源进行分类存储,并基于configmap最优资源单位存储量,进行了配置资源的分类拆分。自研配置管理controller通过预置环境变量,管理对应主用户的配置资源,通过配置版本号更新,与拆分后的多个configmap资源匹配后,触发服务实例的热更新。基于服务实例资源的实时监控,记录当前服务实例镜像版本信息,通过更新管理后台的网关服务实例镜像版本号,自动检测版本差异,对老旧版本的网关服务实例进行滚动更新。
[0037]
该k8s环境下的api网关服务高可用实现方法基于k8s实现api网关分布式高可用的资源节约型应用,基于业务需求,实现vip主用户独享一组网关服务实例,普通用户共享一组网关服务实例,不同主用户配置api从技术层面相互隔离,实现基于服务流量的动态扩缩容,实现网关服务不停机更新。通过集群生态实现了基于业务流量大小,动态调节服务实例数量,保证网关服务的业务能力;通过将配置文件在虚拟资源内挂载,实现了服务异常后的自动恢复,无需人工运维;通过升级管理后台中的最新镜像版本,实现网关服务实例的镜像自动不停机更新。
[0038]
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1