[长期更新]envoy常用

Posted by 梁远鹏 on 2023-02-16 | 阅读 |,阅读约 1 分钟

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_v1lank8scn_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。

wechat-qrcode