历史版本

1.8.0(待定)

1.7.0

  • 访问日志:添加了记录响应预告片的功能。
  • 访问日志:添加了格式化 START_TIME 的功能。
  • 访问日志:添加了 DYNAMIC_METADATA 访问日志格式化程序
  • 访问日志:添加了 HeaderFilter 以根据请求标头过滤日志。
  • 访问日志:添加%([1-9])?f 作为 START_TIME 说明符之一来渲染子秒。
  • 访问日志:为 HTTP 访问日志添加了 gRPC 访问日志服务(ALS)支持。
  • 访问日志:改进的 WebSocket 日志记录。
  • 管理:添加用于转储当前配置和关联的 xDS 版本信息(如果适用)。GET /config_dump
  • 管理:添加用于输出 JSON 序列化的 proto,详细说明所有集群的当前状态。GET /clusters?format=json
  • 管理:添加为另一个端点,用于获取 prometheus 格式的统计信息。GET /stats/prometheus
  • 管理:添加 /runtime_modify 端点以添加或更改运行时值。
  • 管理:以下接口都必须作为 POST 发送,而不是 GET。突变包括: POST /cpuprofilerPOST /healthcheck/failPOST /healthcheck/okPOST /loggingPOST /quitquitquitPOST /reset_countersPOST /runtime_modify?key1=value1&key2=value2&keyN=valueN
  • 管理:删除 /routes 端点; 现在可以在 /config_dump 端点找到路由配置。
  • 缓冲区过滤器:可以选择使用路由本地配置禁用覆盖缓冲区过滤器 。
  • cli:将 -config-yaml 标志添加到 Envoy 二进制文件中。设置时,其值被解释为 bootstrap 配置的 yaml 表示并覆盖 -config-path。
  • cluster:添加了 在运行状况检查失败时关闭 tcp_proxy 上游连接的选项
  • cluster:添加了一个选项,用于在从服务发现中删除主机后从主机中排除连接,而不管运行状况如何。
  • cluster:修复了阻止删除优先级中所有端点的错误
  • debug:添加符号化堆栈跟踪(支持的位置)
  • ext-authz 过滤器:增加了对原始 HTTP 授权的支持。
  • ext-authz 过滤器:增加了对 gRPC 响应的支持以携带 HTTP 属性。
  • grpc:为全套Google gRPC通话凭证添加了支持。
  • gzip 过滤器:向过滤器添加统计信息
  • gzip 过滤器:发送 accept-encoding 标头作为标识不再压缩有效负载。
  • 运行状况检查:添加了为 HTTP 运行状况检查设置其他HTTP标头的功能。
  • 健康检查:增加了对 EDS 提供的终端健康状态的支持
  • 健康检查:添加间隔覆盖,用于健康状态从健康状态转换为不健康状态不健康状态转换为健康状态以及随后检查 不健康的主机
  • 健康检查:添加了对自定义健康检查的支持。
  • 运行状况检查:运行状况检查连接现在可以配置为使用 http/2。
  • 健康检查 http 过滤器:添加 通用标头匹配 以触发健康检查响应。不推荐使用 端点选项
  • http:过滤器现在可以选择支持 虚拟主机路由加权集群 本地配置。
  • http:添加了在x-forwarded-client-cert标头中传递客户端证书的 DNS 类型主题备用名称的功能 。
  • http:对 gRPC 的本地响应现在作为仅拖车的 gRPC 响应而不是纯 HTTP 响应发送。值得注意的是,在这种情况下,HTTP 响应代码总是“200”,并且 gRPC 错误代码在“grpc-status”标题中携带,可选地伴随“grpc-message”标题中的文本消息。
  • http:添加了对via Head 附加的支持。
  • http:添加了一个配置选项 以消除 x-forwarded-for 标头修改。
  • http:修复了内联标题中的错误,其中 addCopy 和 addViaMove 在遇到具有多个实例的内联标题时未添加标头值。
  • 监听器:添加了 tcp_fast_open_queue_length 选项。
  • 监听器:添加了使用 application_protocols 匹配FilterChain的功能 (例如,ALPN用于TLS协议)。
  • 监听器:sni_domains 已被弃用/重命名为 server_names
  • 监听器:删除具有相同过滤器的所有过滤器链的限制。
  • 负载均衡器:增加加权循环支持。循环调度程序现在尊重端点权重,并且还提高了选择的保真度。
  • 负载均衡器:现在支持位置加权负载均衡
  • 负载均衡器:通过API配置区域感知负载均衡器设置的能力。
  • 负载均衡器:加权最小请求负载均衡算法已经过改进,在加权模式下运行时具有更好的平衡。
  • logger:添加了通过--log-format选项可选地设置日志格式的功能。
  • 记录器:可以在运行时配置所有日志记录级别:跟踪调试信息警告错误严重。
  • rbac http过滤器:添加了基于角色的访问控制http过滤器
  • 路由器:在发生超时时,响应的一部分已经被下游代理的情况下,每次尝试超时的行为已经改变。以前,响应将被重置,导致 HTTP/2 重置或 HTTP/1 关闭连接和部分响应。现在,超时将被忽略,响应将继续代理到全局请求超时。
  • 路由器:更改源IP路由的行为以忽略源端口。
  • 路由器:添加了prefix_match 匹配类型,根据头值的前缀显式匹配。
  • 路由器:添加了suffix_match 匹配类型,以根据标头值的后缀显式匹配。
  • 路由器:添加了present_match 匹配类型,以根据标头的存在明确匹配。
  • 路由器:添加了一个invert_match 配置选项,它支持根据不是所需值的头来反转所有其他匹配类型以匹配。
  • 路由器:允许cookie路由生成会话 cookie。
  • 路由器:将 START_TIME 添加为标头格式化程序中受支持的变量之一。
  • 路由器:添加了一个max_grpc_timeout 配置选项,指定从 gRPC 头字段 grpc-timeout 解码的超时的最大允许值 。
  • 路由器:添加了一个配置选项来禁用 x-envoy- header 生成。
  • 路由器:为可通过x-envoy-retry-grpc-on指定的可重复 gRPC 状态代码添加“不可用” 。
  • 套接字:添加了捕获传输套接字扩展,以支持记录纯文本流量和 PCAP 生成。
  • 套接字:通过集群管理器集群特定选项为侦听器和上游连接 添加了 IP_FREEBIND 套接字选项支持。
  • 套接字:为侦听器添加了 IP_TRANSPARENT 套接字选项支持。
  • 套接字:为每个集群的上游连接添加了 SO_KEEPALIVE 套接字选项 。
  • 统计:增加了对直方图的支持。
  • stats:添加了配置 statsd 前缀的选项
  • 统计:更新统计信息接收器接口以通过单个呼叫进行刷新。
  • tls:添加了对 verify_certificate_spki的支持 。
  • tls:添加了对多个 verify_certificate_hash 值的支持 。
  • tls:添加了对使用 verify_certificate_spkiverify_certificate_hash 而不使用trusted_ca的支持
  • tls:添加了对 allow_expired_certificate 允许过期证书的支持 。
  • tls: 作为客户端时,增加了对重新协商的支持。
  • tls:删除了对传统 SHA-2 CBC 密码套件的支持。
  • 跟踪:现在将采样决策委托给跟踪器,允许跟踪器决定何时以及是否使用它。例如,如果向客户端请求提供x-b3采样头,则其值将覆盖 Envoy 代理所做的任何采样决策。
  • websocket:支持配置 idle_timeout和max_connect_attempts
  • 上游:在原始目标主机请求标头中添加了对主机覆盖的支持。
  • 标头到元数据:将HTTP标头添加到元数据过滤器

1.6.0 (2018年3月20日)

1.5.0(2017年12月4日)

1.4.0(2017年8月24日)

1.3.0(2017年5月17日)

  • 从这个发布起,我们有了一个官方的 打破改变策略。请注意,在这个发布中有无数的打破配置改变。这里没有列出。将来的发布会遵循这一策略并有关于废除和修改的清晰文档。
  • Bazel 现在是正式的构建系统 (取代 CMake)。开发/构建/测试流程有大量的变化。更多信息参见 /bazel/README.md/ci/README.md
  • 异常值检测 被扩展包括成功率变化,以及现在所有在运行时和 JSON 配置中可配置的参数。
  • TCP 层 监听器集群 连接现在有了可配置的接收缓冲区限制,在这个点,连接层回压被应用。完整的端对端流控将在未来的发布中可用。
  • Redis 健康状况检查 被作为一个主动健康检查类型加入。完整的 Redis 支持将在 1.4.0 中被记录和支持。
  • TCP 健康状况检查 现在支持 “仅连接” 模式,只检查远端的服务器是否可以被连接而不需要读/写任何数据。
  • BoringSSL 是现在唯一支持的 TLS 提供者。默认的加密套件和 ECDH 曲线已经为 监听器集群 连接更新了更现代的默认值。
  • 头值匹配 速率限制行为 被扩展包括 expect match参数。
  • 路由层 HTTP 速率限制配置现在默认不继承虚拟主机层配置。如果想要,include_vh_rate_limits 继承虚拟主机层选项。
  • HTTP 路由现在可以通过 request_headers_to_add 选项对每个路由和每个虚拟主机添加请求头。
  • 配置例子 已经被更新以展示最新的特性。
  • per_try_timeout_ms 除了通过x-envoy-upstream-rq-per-try-timeout-ms HTTP 头,现在可以被配置在一个路由项的策略中。
  • HTTP 虚拟主机匹配 现在包括支持前缀通配符域名 (如, *.lyft.com)。
  • 对于追踪随机取样的默认值被改为 100% 而且仍然是可以在运行时中配置。
  • HTTP 追踪配置 被扩展以允许标签从任意 HTTP 头迁移。
  • HTTP 速率限制过滤器 现在可以通过 request_type 被应用于内部、外部,或者任意请求。
  • 监听器绑定 现在需要指定一个地址与。 这也被用于绑定一个监听器到一个特定地址以及一个端口。
  • MongoDB 过滤器 现在为没有 $maxTimeMS 集合的查询输出一个状态。
  • MongoDB 过滤器 现在输出完全合法的 JSON 格式日志。
  • The CPU profiler output path is now configurable.
  • 添加了一个 看门狗系统,如果检测到死锁可以杀掉服务器。
  • 添加了一个路由表检查工具,用于在使用前测试路由表。
  • 我们已经添加了一个 示例代码库,展示如何编译/链接一个定制过滤器。
  • 添加了额外的与异常值检测相关的集群范围信息到 /clusters admin 端点
  • 多个 SAN 现在可以通过 verify_subject_alt_name 设置验证。另外,URI 类型 SAN 可以被验证。
  • HTTP 过滤器现在可以被传递给按照每个路由指定的不透明的配置
  • Envoy 现在默认有一个内建的崩溃处理程序,它将打印一条堆栈信息。如果需要,这个行为可以通过--define=signal_trace=disabled Bazel 选项关掉。
  • 添加了 Zipkin 作为一个支持的 追踪提供者
  • 此处未列出的数量庞大的小的变化和修复。

1.2.0(2017年3月7日)

1.1.0(2016年9月30日)

1.0.0(2016年9月12日)

第一版开源发布。