1 背景介绍

上图是 Red Hat 提供的一张服务网格数据平面的构图,绿色部分是实际的应用程序,蓝色部分便是网络代理,这在服务网格中被称为 Sidecar ,Sidecar 应用与应用程序共享相同的生命周期,与应用程序一起创建和退出。

云原生技术发展至今,服务网格已经被大量企业实施落地,通过接管分布式服务的通信层流量,成功让许多企业团队开箱即可获得负载均衡、服务发现、认证授权、监控追踪、流量控制等分布式系统所需要的功能。但是目前仅通过服务网格无法实现高效的微服务多环境测试,KubeOrbit即是解决这类场景设计出的。

KubeOrbit 是一个 Kubernetes Operator, 提供逻辑环境隔离的方案,同时借助现成的流量治理基础设施层以低成本的方式帮助用户解决测试环境治理的痛点。

2 技术实现

2.1 KubeOrbit概念介绍

KubeOrbit 主要的能力是通过创建逻辑隔离环境的方式,基于 Kubernetes 定制的资源对象,将其下发至各种服务网格的数据平面,建立起带标识的调用链路,达到按需增量扩展测试和联调环境的需求,核心组件展示如下:

2.2 Orbit

Orbit 对象代表一个完整的,单独的一套逻辑隔离环境,通过描述 provider 选择集群中的(或者部署新的)服务网格。以 Istio 实现为例,Spec 中定义的配置会转化成相应的 Istio CRD,通过生成 Outbound Filter 为隔离环境中带标识的工作负载实现标识传递。

2.3 ServiceRoute

ServiceRoute 的作用主要是:定义具体的服务路由被转发的策略,如转发到哪些副本,默认的转发策略,以及通过何种流量标识转发。这里还是以 Istio 实现举例,Spec中定义的路由策略会转化成Istio VirtualService 和 DestinationRule,来支持不同副本的流量转发。

2.4 流量路径

完成 CRD 的创建后,流量即可按规则路由至环境中携带流量标识的工作负载,以入口为微服务网关为例,东西向的流量调度示意如下:

2.5 染色透传

如果在流量源头将请求染色,那么请求经过网关时,网关作为代理会将请求原封不动的转发给入口服务。紧接着,请求流量会从入口服务开始调用下一个微服务,会根据业务逻辑形成新的调用请求。那么我们如何将流量标识添加到这个新的调用请求,从而可以在链路中传递下去呢? 如今的微服务之间调用是从本地进程的服务调用远端进程中的服务,并且远端服务可能以多副本容器形式部署,以至于一条请求流经的节点是不可预知的、不确定的,这对于透明代理 Sidecar 来说想通过不侵入的方式接管更是无能为力,KubeOrbit 当前版本中的流量标识能够在链路中一直传递下去,需要依赖 Trace 方案中的自定义信息功能,未来会对接常见的 Skywalking、OpenTelemetry、Zipkin等社区方案。

3 展望

下一步 KubeOrbit 将继续迭代核心功能,扩展应用场景,主要会有以下几个部分:

  • 主流微服务注册中心支持
  • 常见 Layer-7 协议支持
  • CLI 工具

目前,KubeOrbit已开放全部代码,GitHub地址:https://github.com/teamcode-inc/kubeorbit,大家可加入项目了解更多。

如何低成本测试云原生(K8s)应用?相关推荐

  1. [云原生k8s] k8s的CA证书创建和使用

    目录 引言 一.部署步骤+实验环境 二.所有节点系统初始化 三.Etcd集群部署 3.1.准备cfssl证书生成工具 3.2.生成Etcd证书 自签证书颁发机构(CA) 自签CA 生成证书: 使用自谦 ...

  2. 【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装

    云原生|K8s系列第1篇目录 1.先从K8s不是什么讲起 2.K8s是什么及核心基础概念 2.1 Container容器 2.2 Pod 2.3 Node 2.4 Label 2.5 Annotati ...

  3. 使用 CNF 测试套件测试云原生最佳实践

    Joel Hans为CNCF撰写的社区帖子 电信行业是当今日益数字化的经济的支柱,但在发展以满足现代基础设施实践方面面临着艰巨的新挑战.电信是如何陷入这种境地的?由于事故或停机的风险非常严重,该行业几 ...

  4. 【云原生|K8s系列特别篇】:一文速通实战Helm管理工具

    本期文章是K8s特别篇,主要是速通学习Helm之简介.仓库.实践应用等.通过本期文章:我们将学习Helm的基础知识.简介.仓库.实践应用等 在前期的文章中,已经介绍了一些云原生入门的知识及简单实战,感 ...

  5. 【技术解决方案】企业如何从SpringBoot应用平滑迁移到云原生K8s平台

    文章目录 在K8S上部署Spring Cloud Alibaba 在Kubernetes上部署Spring Cloud Kubernetes 在Kubernetes上部署Spring Boot应用 方 ...

  6. 云原生k8s的金箍棒

    如果云原生是我们喜欢的<西游记>中孙悟空,那Autoscaling就是云原生手中的金箍棒.想象一下,没有金箍棒的孙悟空,还能到处降妖伏魔么?还能成为斗战圣佛吗? Autoscaling 根 ...

  7. 【云原生-K8s】kubeadm搭建k8s集群

    搭建K8s集群[无需科学上网] 官网:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kub ...

  8. 云原生k8s的盘古开天辟地

    背景 容器(docker)流行开来,容器调度机制风起云涌,各路神仙用systemctl调度, 也有号称容器宗师的出品docker swarm,  各大门派也有各自的旗帜主张.天下混沌,血雨腥风,龙藏深 ...

  9. Sentinel云原生K8S部署实

    部署的流程图 部署的详细过程 编译Docker镜像 Sentinel源码下载 https://gitee.com/pingfanrenbiji/Sentinel.git Sentinel-dashbo ...

最新文章

  1. 第一次使用最新开发的在线编辑器讲课记录笔记
  2. linux 使用命令直接查看带单位的文件大小
  3. 【华为云技术分享】测试微课堂 | 有的放矢制定测试计划
  4. java 原子量_JAVA线程10 - 新特性:原子量
  5. java的file类中的方法_java中File类的使用方法|chu
  6. 全栈溯源、mAPM、金融性能、Oracle VS. MySQL:看APM技术专场有哪些干货
  7. 大数据分析的步骤有哪些
  8. mysql行锁怎么读_MySQL锁(三)行锁:幻读是什么?如何解决幻读?
  9. 常用easyUI -icon 图标
  10. 用R语言下载任意地区DEM数据
  11. 白话ES 的分布式架构原理
  12. 查看当前python环境_python-环境
  13. U盘没有文件但空间被占用解决办法(U盘文件夹隐藏恢复)
  14. python抓取网络摄像头,Python抓取酒店针孔摄像头 防偷窥
  15. 来了!2020 云栖大会 蚂蚁金融科技产品能力再升级
  16. 英国内政部(Home Office)间谍机构(spy powers)假装它是Ofcom咨询中的一名私人公民1525446087967...
  17. Mac没有winnt格式_Mac本地视频播放软件----EVPlayer
  18. STM32 | C语言对寄存器的封装
  19. 文件下载中文文件名乱码问题解决
  20. 大一项目实训—学生成绩管理系统

热门文章

  1. 数据库 基础 与命令 逻辑思维导图
  2. 通信设计院,到底是干啥的?
  3. spark.yarn.jars的配置
  4. Error:scalac: Scala compiler JARs not found
  5. 图片如何在线生成GIF动画?轻松三步在线制作GIF动画
  6. 数字化转型进行时 | 区块链赋能政务数字化研讨会在零数科技举办
  7. 学术-数学:四色猜想
  8. Follow your heart (186)---Fab.com和guang.com
  9. 【opencv学习笔记】2用摄像头识别指定颜色
  10. 相对于就业来讲,前端工程师和后端开发哪个比较好?