一种基于边车模式的容器应用高可用方法、装置以及设备制造方法及图纸

技术编号:24334024 阅读:33 留言:0更新日期:2020-05-29 21:18
本发明专利技术公开了一种基于边车模式的容器应用高可用方法、装置、设备及计算机可读存储介质,包括:利用预选k8s资源创建目标应用后,通过k8s反亲和配置将目标应用的多个副本部署至不同的k8s节点上;向每个副本中注入以边车模式存在的网络代理服务组件;部署用于接收外部请求的上游网络代理服务组件,为上游网络代理服务组件添加标签,以便上游网络代理服务组件与目标应用的多个副本相关联;接收用户设置的上游网络代理服务组件的参数信息,以便上游网络代理服务组件接收到外部请求时依据参数信息对多个副本的工作状态进行判断并转发外部请求。本发明专利技术所提供的方法、装置、设备及计算机可读存储介质,实现了应用高可用且用户无感知。

A high availability method, device and equipment for container application based on side car mode

【技术实现步骤摘要】
一种基于边车模式的容器应用高可用方法、装置以及设备
本专利技术涉及云计算
,特别是涉及一种基于边车模式的容器应用高可用方法、装置、设备以及计算机可读存储介质。
技术介绍
云计算是分布式计算的一种,通过网络异构,自治的服务为个人和企业用户提供按需即取的计算,是一种资源的服务模式,这种模式将计算、网络、存储等资源放入资源共享池中,并能够实现随时随地、按需从资源池中取用。这种模式能够快速地提供资源和释放,大大地减少了资源管理,运维等工作开销,降低了成本。云计算在发展壮大的同时,应用的规模也愈发庞大,复杂,应用部署也相对来说比较困难,以docker为代表的容器技术受到关注并逐渐被使用,容器技术也形成了包括镜像存储、容器引擎、监控、日志、网络、存储、编排调度等的容器生态。容器生态的形成,也推动了容器云的成型,容器云以容器为资源分割和调度的单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建,发布和运行分布式应用的平台,容器云专注于资源共享与隔离、容器编排与部署等。容器云采用最多的便是kubernetes开源技术,kubernetes简称K8s,是一个管理跨主机容器应用的系统,实现了包括应用部署、高可用管理、弹性伸缩等一些列功能。目前现有技术能够做到应用多副本部署,部分副本无法提供正常服务时,其他副本能够正常提供服务,但检测到副本问题需要一定时间,无法做到用户无感知。K8s虽然能够有机制能够察觉到副本故障,无法提供服务,但需要一定的时间(一般为5分钟),在这个时间段内,外部请求依然会被转发到有故障的副本上,无法给用户提供正常的服务。综上所述可以看出,如何实现应用高可用且用户无感知是目前有待解决的问题。
技术实现思路
本专利技术的目的是提供一种基于边车模式的容器应用高可用方法、装置、设备以及计算机可读存储介质,已解决现有技术无法实现用户无感知的业务高可用的问题。为解决上述技术问题,本专利技术提供一种基于边车模式的容器应用高可用方法,包括:利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上;向所述目标应用的每个副本中注入以边车模式存在的网络代理服务组件;部署用于接收外部请求的上游网络代理服务组件,为所述上游网络代理服务组件添加标签,以便所述上游网络代理服务组件与所述目标应用的多个副本相关联;接收用户设置的所述上游网络代理服务组件的参数信息,以便所述上游网络代理服务组件接收到外部请求时依据所述参数信息对所述目标应用的多个副本的工作状态进行判断并转发所述外部请求。优选地,所述利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上包括:使用yaml文件创建deployment,利用deployment部署所述目标应用至k8s集群;通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上。优选地,所述利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上包括:创建statefulset,利用statefulset部署所述目标应用至k8s集群;通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上。优选地,所述接收用户设置的所述上游网络代理服务组件的参数信息包括:接收用户通过环境变量的形式为所述上游网络代理服务组件设置的参数信息;其中,所述参数信息包括最大尝试次数和最长超时时间;所述最大尝试次数为所述上游网络代理服务组件将所述外部请求发送至下游网络代理服务组件失败后再次尝试的次数;所述最长超时时间为所述上游网络代理服务组件等待请求返回的最长时间。优选地,所述上游网络代理服务组件接收到外部请求时依据所述参数信息对所述目标应用的多个副本的工作状态进行判断并转发所述外部请求包括:S1:所述上游网络代理服务组件接收到外部请求后,将所述外部请求发送至所述目标应用的当前副本;S2:判断所述上游网络代理服务组件在所述最长超时时间内是否接收到所述当前副本的返回值;S3:若所述上游网络代理服务组件在所述最长超时时间内接收所述当前副本的返回值,则所述上游网络代理服务组件将所述当前副本对所述外部请求的处理结果发送至用户;S4:若所述上游网络代理服务组件在所述最长超时时间内未接收所述当前副本的返回值,则判断所述上游网络代理服务组件向所述当前副本发送所述外部请求的次数是否小于所述最大尝试次数;S5:若所述上游网络代理服务组件向所述当前副本发送所述外部请求的次数小于所述最大尝试次数,则所述上游网络代理服务组件再次向所述当前副本发送所述外部请求后,返回S2;S6:若所述上游网络代理服务组件向所述当前副本发送所述外部请求的次数大于等于所述最大尝试次数,则所述上游网络代理服务组件将所述外部请求转发至所述目标应用的下一副本,返回S2。本专利技术还提供了一种基于边车模式的容器应用高可用装置,包括:创建模块,用于利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上;注入模块,用于向所述目标应用的每个副本中注入以边车模式存在的网络代理服务组件;部署模块,用于部署用于接收外部请求的上游网络代理服务组件,为所述上游网络代理服务组件添加标签,以便所述上游网络代理服务组件与所述目标应用的多个副本相关联;接收模块,用于接收用户设置的所述上游网络代理服务组件的参数信息,以便所述上游网络代理服务组件接收到外部请求时依据所述参数信息对所述目标应用的多个副本的工作状态进行判断并转发所述外部请求。优选地,所述创建模块包括:应用创建第一单元,用于使用yaml文件创建deployment,利用deployment部署所述目标应用至k8s集群;副本部署第一单元,用于通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上。优选地,所述创建模块包括:应用创建第二单元,用于创建statefulset,利用statefulset部署所述目标应用至k8s集群;副本部署第二单元,用于通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上。本专利技术还提供了一种基于边车模式的容器应用高可用设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种基于边车模式的容器应用高可用方法的步骤。本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于边车模式的容器应用高可用方法的步骤。本专利技术所提供的基于边车模式的容器应用高可用方法,根据业务需求选择一种k8s资源创建目标应用,增加应用副本数;配置k8s反亲和策略使所述目标应用的每个副本部署在不同的集群节点上。向所述目标应用的每个副本中注入网络代理服务组件,所述网络代理服务组件以本文档来自技高网
...

【技术保护点】
1.一种基于边车模式的容器应用高可用方法,其特征在于,包括:/n利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上;/n向所述目标应用的每个副本中注入以边车模式存在的网络代理服务组件;/n部署用于接收外部请求的上游网络代理服务组件,为所述上游网络代理服务组件添加标签,以便所述上游网络代理服务组件与所述目标应用的多个副本相关联;/n接收用户设置的所述上游网络代理服务组件的参数信息,以便所述上游网络代理服务组件接收到外部请求时依据所述参数信息对所述目标应用的多个副本的工作状态进行判断并转发所述外部请求。/n

【技术特征摘要】
1.一种基于边车模式的容器应用高可用方法,其特征在于,包括:
利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上;
向所述目标应用的每个副本中注入以边车模式存在的网络代理服务组件;
部署用于接收外部请求的上游网络代理服务组件,为所述上游网络代理服务组件添加标签,以便所述上游网络代理服务组件与所述目标应用的多个副本相关联;
接收用户设置的所述上游网络代理服务组件的参数信息,以便所述上游网络代理服务组件接收到外部请求时依据所述参数信息对所述目标应用的多个副本的工作状态进行判断并转发所述外部请求。


2.如权利要求1所述的方法,其特征在于,所述利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上包括:
使用yaml文件创建deployment,利用deployment部署所述目标应用至k8s集群;
通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上。


3.如权利要求1所述的方法,其特征在于,所述利用预选k8s资源创建目标应用后,通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上包括:
创建statefulset,利用statefulset部署所述目标应用至k8s集群;
通过k8s反亲和配置将所述目标应用的多个副本部署至不同的k8s节点上。


4.如权利要求1所述的方法,其特征在于,所述接收用户设置的所述上游网络代理服务组件的参数信息包括:
接收用户通过环境变量的形式为所述上游网络代理服务组件设置的参数信息;
其中,所述参数信息包括最大尝试次数和最长超时时间;所述最大尝试次数为所述上游网络代理服务组件将所述外部请求发送至下游网络代理服务组件失败后再次尝试的次数;所述最长超时时间为所述上游网络代理服务组件等待请求返回的最长时间。


5.如权利要求4所述的方法,其特征在于,所述上游网络代理服务组件接收到外部请求时依据所述参数信息对所述目标应用的多个副本的工作状态进行判断并转发所述外部请求包括:
S1:所述上游网络代理服务组件接收到外部请求后,将所述外部请求发送至所述目标应用的当前副本;
S2:判断所述上游网络代理服务组件在所述最长超时时间内是否接收到所述当前副本的返回值;
S3:若所述上游网络代理服务组件在所述最长超时时间内接收所述当前副本的返回值,则所述上游网络代理服务组件将所述当前副本对所述外部请求的处理结果发送至...

【专利技术属性】
技术研发人员:陈培培胥娅芸冯海杰
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

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

1