【问题标题】:Istio how to use EnvoyFilter to change `max_request_bytes` of envoy sidecar?Istio 如何使用 EnvoyFilter 更改 envoy sidecar 的 `max_request_bytes`?
【发布时间】:2020-08-09 21:17:42
【问题描述】:

我想使用 istio 资源 EnvoyFilter 来更改 sidecar 配置以支持自定义 max_request_bytes,因为我们在将太大的文件上传到服务器时遇到错误 413。但我对 envoy 配置不熟悉。

有没有人可以给我EnvoyFilter的有效配置?谢谢!

【问题讨论】:

    标签: kubernetes istio envoyproxy


    【解决方案1】:

    在 Istio 1.2 和 1.4 上可以使用,但 API 已更改,filters 已被弃用:

    对于网关(与网关在同一命名空间中):

    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: request-size-limit
    spec:
      filters:
        - listenerMatch:
            listenerType: GATEWAY
            listenerProtocol: HTTP
          filterName: envoy.buffer
          filterType: HTTP
          filterConfig:
            maxRequestBytes: 26214400 # 25MB
    
    

    这应该工作到 1.6(在 1.4 上测试)。如果不修改,它将无法在 1.7 中使用:

    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: request-size-limit
      namespace: istio-system
    spec:
      configPatches:
        - applyTo: HTTP_FILTER
          match:
            context: GATEWAY
            listener:
              filterChain:
                filter:
                  name: "envoy.http_connection_manager"
          patch:
            operation: INSERT_BEFORE
            value:
              name: envoy.buffer
              config:
                maxRequestBytes: 26214400 # 25MB
    
    

    【讨论】:

      【解决方案2】:

      对于 1.7 这有效:

      apiVersion: networking.istio.io/v1alpha3
      kind: EnvoyFilter
      metadata:
        name: request-size-limit
        namespace: istio-system
      spec:
        workloadSelector:
          labels:
            istio: ingressgateway
        configPatches:
          - applyTo: HTTP_FILTER
            match:
              context: GATEWAY
              listener:
                filterChain:
                  filter:
                    name: "envoy.http_connection_manager"
            patch:
              operation: INSERT_BEFORE
              value:
                name: envoy.buffer
                typed_config:
                  '@type': type.googleapis.com/udpa.type.v1.TypedStruct
                  value:
                    maxRequestBytes: 1048576  # 1 MB
      

      【讨论】:

        猜你喜欢
        • 2021-05-28
        • 1970-01-01
        • 2021-07-06
        • 2021-11-30
        • 1970-01-01
        • 2019-09-24
        • 1970-01-01
        • 2021-08-21
        相关资源
        最近更新 更多