新特性速览! Sermant 2.1.0版本重磅发布

打印 上一主题 下一主题

主题 875|帖子 875|积分 2629

9月尾,Sermant社区正式发布了2.1.0 Release版本,本次版本更新为大家带来了许多新的重要特性。在此前版本xDS协议支持的基础上,2.1.0版本新增了路由和负载均衡的CRD的支持,同时路由插件也适配了当前的xDS协议。此外新增了RocketMQ灰度发布插件,首次支持了消息队列的灰度发布;用户体验上,我们对Backend的Agent管理功能再次举行了完善,现在可以直接在Backend上直接对插件举行动态热插拔。
除此之外,本次版本更新还对社区提出的已知问题和部分功能举行了修复和优化。(Sermant官网:https://sermant.io/)
一、Agent服务治理能力提升

1.1 Sermant框架新增支持xDS协议路由设置

Sermant框架层基于xDS协议实现了路由设置的获取能力,插件可以调用xDS路由设置服务接口获取Kubenetes Service的路由设置。Istio通过下发DestinationRule 和VirtualService 自定义资源文件下发路由设置。Sermant基于xDS协议和Istio的控制平面协议举行通讯获取路由设置。
该特性对尺度的VirtualService 和DestinationRule下发的路由header、路径匹配等规则实现了支持。如下所示
  1. apiVersion: networking.istio.io/v1alpha3
  2. kind: VirtualService
  3. metadata:
  4.   name: spring-test-virtualservice
  5. spec:
  6.   hosts:
  7.   - spring-test
  8.   http:
  9.   - name: "v1-routes"
  10.     match:
  11.     - headers:
  12.         version:
  13.           exact: v1
  14.       uri:
  15.         exact: /test
  16.       ignoreUriCase: false
  17.     route:
  18.     - destination:
  19.         host: spring-test
  20.         subset: v1
  21.         port:
  22.           number: 8003
  23.       weight: 100
  24.   - name: "base-route"
  25.     route:
  26.     - destination:
  27.         host: spring-test
  28.         subset: base
  29.         port:
  30.           number: 8003
复制代码
1.2 Sermant框架新增支持xDS协议负载均衡设置

Sermant框架层基于xDS协议实现了负载均衡设置的获取能力,插件可以调用xDS负载均衡设置服务接口获取Kubenetes Service的负载均衡设置。Istio通过下发DestinationRule自定义资源文件下发负载均衡设置。Sermant基于xDS协议和Istio的控制平面协议举行通讯获取负载均衡设置。
该特性对尺度的DestinationRule下发负载均衡策略实现了支持。如下所示
  1. apiVersion: networking.istio.io/v1alpha3
  2. kind: DestinationRule
  3. metadata:
  4.   name: spring-test-destinationrule
  5. spec:
  6.   host: spring-test.default.svc.cluster.local
  7.   trafficPolicy:
  8.     loadBalancer:
  9.       simple: ROUND_ROBIN
  10.   subsets:
  11.   - name: v1
  12.     labels:
  13.       version: v1
  14.     trafficPolicy:
  15.       loadBalancer:
  16.         simple: RANDOM
  17.   subsets:
  18.   - name: base
  19.     labels:
  20.       version: base
复制代码
1.3 路由插件新增对xDS协议的支持

在2.1.0版本中,路由插件中的HTTP调用兼容了xDS协议,包括SpringCloud、HttpClient、HttpAsyncClient、OkHttp、HttpURLConnection,支持通过哀求header和路径举行流量路由。在混淆摆设模式下的Sermant和envoy互调以及Proxyless模式下的挂载Sermant微服务之间的调用都已支持。
该能力开启与否只需在设置文件中举行开关控制,微服务摆设按照Istio尺度摆设方式,只必要把envoy注入关闭即可。具体使用方式可参考路由插件说明。

1.4 RocketMQ灰度发布

本次版本新增了消息队列灰度发布插件,在灰度流量的基础上增加情况灰度判定,通过在消息中设置不同属性标签消息以达到灰度效果。该特性可以使用灰度版本的微服务实例中生产者和消费者来生产灰度消息或者消费灰度消息,满意灰度发布在业务场景中定向生产和消费的必要,低落开发风险和试错资源,助力快速敏捷迭代。
在生产消息时,根据当前实例信息是否满意灰度情况及哀求是否为灰度哀求来设置灰度情况标签、灰度流量标签。
在消费消息时,假如当前实例信息满意灰度情况,那么当前实例归为灰度消费者,并在消费组名称反面拼接灰度情况标签,仅消费灰度情况标签、灰度流量标签消息;假如当前实例信息不满意灰度情况,那么当前实例归为基线消费者,基线消费消息时包含base、auto两种种模式:
base模式下,可根据设置过滤灰度组对应的标签的消息,假如没有设置,则默认消费全部消息;
auto模式下,在没有灰度消费组情况下,根据设置过滤灰度组对应标签的消息,然后定期查抄当前服务地址、topic及消费组下是否有灰度消费组正在消费消息,假如存在,则不消费灰度消费组包含的灰度标签消息。


二、  Sermant Backend治理能力提升

2.1 Sermant Backend对插件的热插拔管理的支持

在1.2.0 release版本后,我们支持了Sermant Agent框架和插件的动态安装和动态卸载,使得Sermant拓展出更多的Sermant的使用场景,例如故障注入等。
此前动态热插拔使用命令或脚本来执行,本次版本更新针对这一特性,在Sermant Backend新增了对插件热插拔、热更新管理的可视化支持。用户可以直接在Backend的实例状态管理页面中对指定服务实例上的插件举行一键卸载、安装、更新操作,同时还支持批量操作。命令执行乐成后,可以在实例状态页面查看已经安装的插件的信息;在事件管理页面也可以收到插件安装、卸载的事件详情。


该特性提升了用户插件动态安装卸载的场景的便利性,丰富了Backend的观测管理能力,用户可以直观地对已经挂载Sermant的实例做热插拔插件的操作。
三、总结

本次版本还修复了社区中提出的issue,例如优雅上下线的偶发调用失败问题、Backend使用Redis存储心跳时的查询失败问题等。具体Release Note可以查阅GitHub发布页。
我们最新发布的2.1.0版本深化了xDS协议的支持以及在插件中的应用,强化了灰度发布在消息队列场景的使用,而且提升了Backend在动态热插拔插件使用时的体验。将来我们将持续演进,给社区带来更多新的内容。

Sermant 作为专注于服务治理领域的字节码加强框架,致力于提供高性能、可扩展、易接入、功能丰富的服务治理体验,并会在每个版本中做好性能、功能、体验的看护,广泛接待大家的到场。


  • Sermant 官网:https://sermant.io
  • GitHub 仓库地址:https://github.com/sermant-io/Sermant
  • 扫码到场 Sermant 社区交流群


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表