【发布时间】:2020-08-09 21:17:42
【问题描述】:
我想使用 istio 资源 EnvoyFilter 来更改 sidecar 配置以支持自定义 max_request_bytes,因为我们在将太大的文件上传到服务器时遇到错误 413。但我对 envoy 配置不熟悉。
有没有人可以给我EnvoyFilter的有效配置?谢谢!
【问题讨论】:
标签: kubernetes istio envoyproxy
我想使用 istio 资源 EnvoyFilter 来更改 sidecar 配置以支持自定义 max_request_bytes,因为我们在将太大的文件上传到服务器时遇到错误 413。但我对 envoy 配置不熟悉。
有没有人可以给我EnvoyFilter的有效配置?谢谢!
【问题讨论】:
标签: kubernetes istio envoyproxy
在 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
【讨论】:
对于 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
【讨论】: