基于云原生的微服务场景优化方法、系统、设备和介质技术方案

技术编号:28632569 阅读:16 留言:0更新日期:2021-05-28 16:29
本申请提供的一种基于云原生的微服务场景优化方法、系统、设备和介质,应用于Kubernetes集群系统,所述方法包括:在Pod的资源中添加表征指令的属性字段的注解;通过Kubernetes集群系统的准入控制机制拦截创建Pod资源类型请求以对Pod进行解析;当资源注解中对应的属性字段值为true,则执行相应指令的操作。本申请可实现自动接入链路追踪系统并开启JVM监控,灵活的配置灰度发布策略及东西流量监控展示,灵活管理应用方便业务开发人员使用。且非侵入式的设计方案同样可以应用于其他基于云原生环境下,方便环境的复制和迁移,灵活性非常高,有着依赖少,适应广并且功能稳定高效的特性。

【技术实现步骤摘要】
基于云原生的微服务场景优化方法、系统、设备和介质
本申请涉及微服务
,特别是涉及一种基于云原生的微服务场景优化方法、系统、设备和介质。
技术介绍
现如今容器化技术已经相当成熟了,Kubernetes是一个用于部署容器化应用的开源编排器,它被大量且越来越多的技术人员用于部署可靠的分布式系统、机器学习、大数据及批处理任务,被业界称为“云原生”技术底层实现。Kubernetes已经发展火热并且在越来越多的企业都有实践应用,然而越来越多的服务都运行在Kubernetes上后如何管理成为当前非常关注的话题。传统大型且复杂的服务不管从开发还是部署都很难持续迭代升级,分布式微服务的思想就是要从中拆分出各个微服务独立部署来提供服务,由此微服务应用被流行起来了,基于微服务的治理方案也从开始的侵入式的开发框架到如今开发者更加青睐的非侵入式的ServiceMesh(服务网格)技术被基于厚望,这些年服务网格技术也层出不穷,比较流行和成熟的开源框架有Linkerd、Envoy、Istio。服务网格作为服务间通信的基础设施层,给应用程序带来很多便捷且无感知的治理需求,如服务发现、负载均衡、流量管理、链路监控、灰度发布、请求策略限制等等。基于Isito的服务网格技术实现,虽然这些功能都能满足微服务管理需求,但如何让更了解业务的开发人员去自助的使用它们是我们需要尝试去做的事情,因为这样能让更贴近业务场景的项目团队更好管理自己开发的程序。基于现有的技术方案,在如何使用上还存在很多问题,kuernetes和围绕其实现的一些云原生技术,提出了很多新的概念,如何减少开发人员的学习成本,让技术团队能够快速地部署和管理线上服务,逐渐成为各个互联网公司技术团队需要解决的问题。
技术实现思路
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种基于云原生的微服务场景优化方法、系统、设备和介质,以解决现有技术中的问题。为实现上述目的及其他相关目的,本申请提供一种基于云原生的微服务场景优化方法,应用于Kubernetes集群系统,所述方法包括:在Pod的资源中添加表征指令的属性字段的注解;通过Kubernetes集群系统的准入控制机制拦截创建Pod资源类型请求以对Pod进行解析;当资源注解中对应的属性字段值为true,则执行相应指令的操作。于本申请的一实施例中,所述属性字段可表征的指令包括以下任意一种或多种:创建一初始化容器来拉取agent镜像,并将镜像中的目录文件拷贝到新建的挂载卷Empty目录中,以用于其它容器挂载共享使用;为容器挂载目录中共享的挂载卷,并设置环境变量以用于配置链路追踪代理程序包路径、服务名称标识、及链路追踪服务器端地址;为Pod添加标签,用于监控系统扫描带有此标签的服务;并采集Java程序指标数据,以供设置环境变量指定Java程序采集agent程序包路径及配置文件。于本申请的一实施例中,基于Kubernetes集群系统通过Istio部署网格服务环境;其中,通过在Service与Deployment的资源中添加相应属性字段的注解,以配置灰度发布策略、及东西流量监控展示。于本申请的一实施例中,所述灰度发布策略的配置方法包括:通过前端表单选择要执行灰度的服务,并配置新版本服务及灰度策略提交至后端,以供新版本服务在拉取旧版本服务的基础上修改;后端接口根据提供新版本服务的配置创建新deployment,并与旧版本服务的deployment放在同一Service下;当控制器监控到deployment对Pod启动就绪后,则修改该Service对应的Istio下的资源目标规则,并把新版本服务加入到子集,根据目标规则通过修改虚拟服务将对应的流量分配到服务对应的版本中。于本申请的一实施例中,接入所述服务网格的服务会被注入Sidecar容器,以用于代理容器网络流量转发,并采集流量指标数据至Istio的数据聚合组件,以供通过设置节点的坐标信息为前端绘图;其中,通过Istio的kiali组件的接口拉取流量指标数据;所述流量指标数据包括:nodes:包含所有的服务节点信息;edges:包含节点间流量关系及指标的线条数据。于本申请的一实施例中,所述东西流量监控展示主要通过设置节点的坐标信息为向前端绘图,其包括:设置线条插槽ID,并判通过断是否有4xx或5xx字段以设置线条不同颜色属性;设置节点插槽对应线条的ID,设置节点图表样式,并通过判断错误是否有信息设以置节点样式颜色、及始坐标X、Y轴数值;通过线条关系计算父子节点的临时坐标和关系属性;通过父节点计算子节点X轴的平均分布,执行两次避免冲突;通过父节点计算子节点X轴的中轴;扫描是否有重复节点并进行相应调整调整。为实现上述目的及其他相关目的,本申请提供一种基于云原生的微服务场景优化系统,所述系统包括:注解模块,用于在Pod的资源中添加表征指令的属性字段的注解;集群模块,用于通过Kubernetes集群系统的准入控制机制拦截创建Pod资源类型请求以对Pod进行解析;当资源注解中对应的属性字段值为true,则执行相应指令的操作。于本申请的一实施例中,所述系统还包括:服务网格模块,用于部署网格服务环境;其中,通过在Service与Deployment的资源中添加相应属性字段的注解,以配置灰度发布策略、及东西流量监控展示。为实现上述目的及其他相关目的,本申请提供一种计算机设备,所述设备包括:存储器、及处理器;所述存储器用于存储计算机指令;所述处理器运行计算机指令实现如上所述的方法。为实现上述目的及其他相关目的,本申请提供一种计算机可读存储介质,存储有计算机指令,所述计算机指令被运行时执行如上所述的方法。综上所述,本申请的一种基于云原生的微服务场景优化方法、系统、设备和介质,应用于Kubernetes集群系统,所述方法包括:在Pod的资源中添加表征指令的属性字段的注解;通过Kubernetes集群系统的准入控制机制拦截创建Pod资源类型请求以对Pod进行解析;当资源注解中对应的属性字段值为true,则执行相应指令的操作。具有以下有益效果:本申请可实现自动接入链路追踪系统并开启JVM监控,灵活的配置灰度发布策略及东西流量监控展示,灵活管理应用方便业务开发人员使用。且非侵入式的设计方案同样可以应用于其他基于云原生环境下,方便环境的复制和迁移,灵活性非常高,有着依赖少,适应广并且功能稳定高效的特性。附图说明图1显示为本申请于一实施例中基于云原生的微服务场景优化方法的流程示意图。图2显示为本申请于一实施例中基于云原生的微服务场景优化方法的流程场景示意图。图3显示为本申请于一实施例中配置灰度发布策略、及东西流量监控展示的流程场景示意图。图4显示为本申请于一实施例中基于云原生的微服务场景优化系统的模块示意图。图5显示为本申请于一实施例中计算机设备的结构示意图。具体实施方式以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内本文档来自技高网
...

【技术保护点】
1.一种基于云原生的微服务场景优化方法,其特征在于,应用于Kubernetes集群系统,所述方法包括:/n在Pod的资源中添加表征指令的属性字段的注解;/n通过Kubernetes集群系统的准入控制机制拦截创建Pod资源类型请求以对Pod进行解析;/n当资源注解中对应的属性字段值为true,则执行相应指令的操作。/n

【技术特征摘要】
1.一种基于云原生的微服务场景优化方法,其特征在于,应用于Kubernetes集群系统,所述方法包括:
在Pod的资源中添加表征指令的属性字段的注解;
通过Kubernetes集群系统的准入控制机制拦截创建Pod资源类型请求以对Pod进行解析;
当资源注解中对应的属性字段值为true,则执行相应指令的操作。


2.根据权利要求1所述的方法,其特征在于,所述属性字段可表征的指令包括以下任意一种或多种:
创建一初始化容器来拉取agent镜像,并将镜像中的目录文件拷贝到新建的挂载卷Empty目录中,以用于其它容器挂载共享使用;
为容器挂载目录中共享的挂载卷,并设置环境变量以用于配置链路追踪代理程序包路径、服务名称标识、及链路追踪服务器端地址;
为Pod添加标签,用于监控系统扫描带有此标签的服务;并采集Java程序指标数据,以供设置环境变量指定Java程序采集agent程序包路径及配置文件。


3.根据权利要求1所述的方法,其特征在于,基于Kubernetes集群系统通过Istio部署网格服务环境;其中,通过在Service与Deployment的资源中添加相应属性字段的注解,以配置灰度发布策略、及东西流量监控展示。


4.根据权利要求3所述的方法,其特征在于,所述灰度发布策略的配置方法包括:
通过前端表单选择要执行灰度的服务,并配置新版本服务及灰度策略提交至后端,以供新版本服务在拉取旧版本服务的基础上修改;
后端接口根据提供新版本服务的配置创建新deployment,并与旧版本服务的deployment放在同一Service下;
当控制器监控到deployment对Pod启动就绪后,则修改该Service对应的Istio下的资源目标规则,并把新版本服务加入到子集,根据目标规则通过修改虚拟服务将对应的流量分配到服务对应的版本中。


5.根据权利要求3所述的方法,其特征在于,接入所述服务网格的服务...

【专利技术属性】
技术研发人员:朱美超
申请(专利权)人:上海领健信息技术有限公司
类型:发明
国别省市:上海;31

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

1