Envoy Gateway v0.6 发布
- Xunzhuo
- Envoy gateway
- November 2, 2023
Table of Contents
前言
距离上次 v0.5 版本发布已过去三个月,Envoy Gateway 发布了 v0.6 这个版本。
v0.6.0 在 Roadmap 中的主题是 Preparation for GA,让我们一起来看看这个版本有哪些变化
文档
- 推出基于 Hugo 的新网站
- 为 EnvoyProxy 指标添加了 Grafana 仪表盘和集成文档
- 为 Gateway API 指标添加了 Grafana 集成文档
安装
- 更新了 EnvoyProxy 镜像至 v1.28
- 移除了 kube rbac proxy 相关资源
API
- 更新 Gateway API 至 v1.0.0,并通过了全部一致性测试
- 新增 ClientTrafficPolicy CRD(用于管理 Downstream 与 Envoy 之间的流量) 并支持了 Keep Alive
- 新增 BackendTrafficPolicy CRD (用于管理 Envoy 与 Upstream 之间的流量) 并支持了 RateLimit 和 LoadBalancer
- 新增 SecurityPolicy CRD(用于管理 Envoy 安全相关特性)并支持了 CORS 和 JWT
- 新增 EnvoyGateway 控制面指标并支持了 Prometheus 和 OpenTelemetry
- 新增 在 EnvoyProxy CRD 中支持 InitContainers
- 新增 在 EnvoyProxy CRD 中支持 LoadBalancerIP
- 新增 在 EnvoyProxy CRD 中支持 AllocateLoadBalancerNodePorts
- 新增 在 EnvoyProxy CRD 中支持 LoadBalancerClass
- 新增 在 EnvoyProxy CRD 中支持 选择生成的指标
- 新增 在 EnvoyProxy CRD 中启用 EnvoyProxy Virtual Host 指标
- 新增 支持合并 Gateway 资源到同一 EnvoyProxy 实例
Breaking Changes
- 移除了 AuthenticationFilter CRD
- 移除了 RateLimitFilter CRD
- 合并了 EnvoyProxy CRD 从
config.gateway.envoyproxy.io
到gateway.envoyproxy.io
- 默认启用 EnvoyProxy Prometheus,并提供一个特性开关去关闭它
- 更新了 EnvoyProxy CRD 中的 Bootstrap 字段,增加了一个值字段,以指定 Bootstrap 配置
- 在 IR Route 的命名规则,使用 / 替换原 - 字符
Conformance
- 新增对 HTTPRouteBackendProtocolH2C 的支持
- 新增对 HTTPRouteBackendProtocolWebSocket 的支持
- 新增对 HTTPRouteRequestMultipleMirrors 的支持
- 新增对 HTTPRouteTimeoutRequest 的支持
- 新增对 HTTPRouteTimeoutBackendRequest 的支持
- 新增对 HTTPRouteRedirectPortAndScheme 的支持
Watchable
- 通过实现了资源顺序无关的比较功能,以提高资源缓存性能
Translator
- 新增对 routing to EndpointSlice endpoints
- 新增对 HTTPRoute Timeouts
- 新增对 multiple RequestMirror filters per HTTPRoute rule
- 新增对 ignore ports in Host header
Providers
- 新增对 generationChangedPredicate 在大多数资源的支持以限制资源同步次数
- 优化了 资源同步效率,通过对所有资源使用同一 enqueue request
- 新增对 ServiceImport CRD 资源的处理
- 新增对 基于 Namespace Selector 的资源同步
xDS
- 修复了 Layered Runtime 的 warning 信息
- 升级了 最新版本的 go-control-plane 并修复了 xDS 在 ADS 中的顺序问题
- 新增对 HTTP2 Keep Alives 在 xDS 连接中的支持
CLI
- 新增对 egctl stats 的支持,用于从 EnvoyProxy 中获取 stats 数据
未来规划
v0.7.0 也会以 Preparation for GA 为主题。
在 v0.6.0 中实现的 ClientTrafficPolicy、BackendTrafficPolicy 以及 SecurityPolicy,会加速未来 EG 的特性开发,如故障注入、熔断降级、健康检查等,而不强依赖与 Gateway API 的定义。
同时 EG 也正在支持 HTTP3/GUIC 协议,以及 OIDC、Basic Auth、Key Auth 等安全策略。
下个版本也会进一步完善控制面的可观测性,以及加强 egctl 命令行工具的能力。
具体 roadmap 后续指定好了之后,也会分享出来,欢迎使用 v0.6,有任何问题也希望能够反馈到社区。
Tip
感谢参与到这个版本贡献的 30 多位工程师!