TOC
说明
本文主要收集常见场景下 Envoy 的配置以及遇到的一些常见问题,欢迎对本文进行投稿你认为好的场景配置或问题.
官方文档
https://www.envoyproxy.io/docs/envoy/v1.26.0/
注意: 上述地址文档对应envoy版本是 v1.26.0,如果你希望查看其他版本则将 v1.26.0 修改为你希望的版本即可.
场景以及配置
权重分流
基于权重做灰度发布.
- match:
prefix: /
route:
weighted_clusters:
clusters:
- name: lank8scn_v1
weight: 50
- name: lank8scn_v2
weight: 50
total_weight: 100
上述配置部分表示匹配前缀为 /
的请求并且按照 1:1
的权重分流给 lank8scn_v1
和 lank8scn_v2
.
header分流
基于 header 做灰度发布.
- match:
prefix: "/"
headers:
- name: sversion
string_match:
exact: "v2"
route:
cluster: lank8scn_v2
- match:
prefix: "/"
route:
cluster: lank8scn_v1
上述配置部分表示匹配前缀为 /
的请求并且将包含有 header 为 sversion:v2
的请求分流给lank8scn_v2
,而没有这个 header 时将请求正常分流给 lank8scn_v1
.
问题列表
Didn’t find a registered implementation for ‘envoy.filters.http.router’ with type URL: ''
这是因为envoy v3 之后配置都需要填一个 @type
参数,例如:
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
微信公众号
扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。