-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Lazyload use envoy as a global sidecar for supporting multi protocol #373
Comments
感谢。 grpc的支持确实是比较关注的点。 请问有没有相关信息能提供一下,比如用于验证功能的grpc(consumer、provider)demo、global sidecar 镜像 等? |
@YonkaFang |
用envoy替代global-sidecar需要注意以下几点
导致grpc server相关listener未下发,grpc client请求根本走不到兜底逻辑,需要将http/http2/grpc类型的端口都纳管进来
http1.1请求和grpc请求都被兜底到 outbound|80||global-sidecar.mesh-operator.svc.cluster.local
那么http1.1请求可以正常转发,而grpc请求在global-sidecar中会被降级成http1.1
那么grpc请求可以正常转发,而http1.1请求会被升级成http2.0 为了解决这个第2点,我们需要指定
最后形态是:指定http2端口 + 下发 结果:grpc请求由于指定了http2而正常转发,http1.1请求也因为指定了
短域名请求,在global-sidecar转发中,只能走passthrough |
使用 envoy 作为 global sidecar 的 proxy,还存在如下问题需要评估:
|
这个问题是说当前的实现是不支持grpc或者triple协议的吗? |
不支持grpc,更不支持triple 最近想推进grpc懒加载的支持 |
proxy 演进维护的成本,后续对于代理本身的特性需求需要转化对 envoy 的需求 这个确实是这样,如果slime自身维护,想怎么加功能都行 如果依赖envoy,就不是很好的推进 |
@MouceL triple 是基于 http2 的,支持 http2 应该就支持 triple 了。
关于这点的话 envoy 有很好的扩展性,大部分需求都能通过自定义 filter 实现。 |
影响的子模块(在下面列表中打'X')
问题背景
lazy load not support grpc
您的提案内容
Using envoy as global sidecar because its pluginability and updating configuration dynamically.
Architecture
H1/H2
envoy configuration example:
h1/h2 On Same Svc's Same Port
Now global sidecar svc port protocol is http. Istio inbound sidecar will downgrade http2 to http1. This a way to support it.
Configure:
Other protocol
Lazyload create svc for each other protocol and update to-global-sidecar envoy filter.
The text was updated successfully, but these errors were encountered: