istio 协议升级_istio支持的协议

istio 协议升级_istio支持的协议Istio中如何处理thrift等协议对于Istio来说,分为控制面和数据面。控制面负责下发Envoy 的配置。数据面接受控制面下发的配置,按照配置工作。所以本质上只有envoy支持的协议,控制面才能够支持。实际情况,istio支持的协议

Istio中如何处理thrift等协议   对于Istio来说,分为控制面和数据面。控制面负责下发Envoy 的配置。数据面接受控制面下发的配置,按照配置工作。   所以本质上只有envoy支持的协议,控制面才能够支持。实际情况,istio支持的协议类型,远远少于Envoy支持的类型。   Istio对于HTTP,gRPC协议之外的协议,支持并不是特别好。而实际的应用中,其实很多单位都在使用诸如thrift,dubbo或其他私有协议。随着Istio用户越来越多,增加对其他协议的支持是一个强需求。   Istio如何确定各种协议   Istio支持代理任何TCP通信。这包括HTTP,HTTPS,gRPC以及原始TCP协议。为了提供其他功能,例如路由和丰富的metrics,我们必须确定具体协议。确定的方式有:自动检测手动指定   自动检测   Istio可以自动检测HTTP和HTTP/2通信。其他协议类型,如果没有手动指定,则将流量视为纯TCP流量。   自动检测功能默认开启,可以通过 和 设置关闭或开启。   实际应用中,比如我需要开启对thrift的支持,需要关闭自动检测。   手动指定   如何指定?   我们知道对于Istio来说,支持k8s中的 Service 和 非k8s环境ServiceEntry两种资源对象转换为内部的统一服务模型。   对于k8s中的Service:通过端口名: Kubernetes 1.18+, 可以通过 字段:   通过appProtocol字段指定,具体示例如下:   对于ServiceEntry,通过ports列表中protocol属性自定,具体示例如下:   截止到目前,支持以下值:*   其中*标注的协议,默认是不支持,需要在特性开关中启用。对于thrift来说,我们需要给pilot设置环境变量:。   可以看出,Istio逐步在增加对其他协议的支持,比如mongo,redis,mysql,thrift。   Istio 如何支持其他协议   那么我们目前有以下几种方式支持thrift等协议。   1)EnvoyFilter   EnvoyFilter是Istio中自定义的一种网络资源对象,用来更新配置Envoy中的filter,为服务网格控制面提供了更强大的扩展能力,使Envoy中filter chain具备自定义配置的能力。   我们以thrift举例说明。   Istio默认把Thrift协议当做普通的TCP协议来处理。我们需要通过EnvoyFilter移除默认的TCP Filter,并增加Thrift proxy Filter。   具体的EnvoyFilter如下:   更多内容可查看 istio-thrift-example。   该方案的确可以实现,但是非常繁杂,也容易出错。   2)Aeraki   由于难以手动对 EnvoyFilter 进行管理和维护 ,腾讯云Mesh团队创建了Aeraki 项目来自动化这个流程。   Aeraki 的基本工作原理如下图所示:Aeraki 从 Istio 中拉取服务数据,根据 ServiceEntry 和 Aeraki 流量规则生成 Envoy 配置,并采用 EnvoyFilter 将生成的配置推送到 Istio 中。简而言之,你可以把 Aeraki 看做 Istio 中管理的七层协议的Operator。
istio 协议升级_istio支持的协议
istio 协议升级_istio支持的协议   该方案,又做了一些抽象,并且不会对Istio代码做侵入性改动。   3)代码级别增加对其他协议支持,或是对已支持协议的新功能扩展   上面我们已经讲到,目前istio正在增加对其他协议的支持,已经支持了mongo,mysql,redis等。   比如thrift:   如果我们启用了。filter列表中,将会直接添加thrift filter,而不是tcp filter。   不过istio对thrift支持有限,并不是所有的功能都支持,比如流量分割就不支持。主要原因在于Route方面支持有限。社区对于thrift的支持并不活跃。   截止到2021年5月2日,istio master分支上已经删除了对thrift支持的代码。社区对于thrift的支持倾向于Aeraki。具体见 Remove thrift filter support in pilot #31661。   总结   目前来看,支持thrift最靠谱的方案是Aeraki 。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/67848.html

(0)
上一篇 2024年 8月 8日 下午4:56
下一篇 2024年 8月 8日 下午5:04

相关推荐

关注微信