如何在Nginx入口控制器和kong上增加最大请求正文大小

时间:2019-08-02 15:12:51

标签: rest kubernetes kubernetes-ingress nginx-ingress kong

我有一个服务,该服务接受主体中带有base64编码文件的POST。我目前正在 Error: 413 Request Entity Too Large当我发布大于1MB的内容时,否则工作正常。

我的设置中有香港代理服务。我通过稳定的kong舵图为代理的入口安装了以下注释:

      kubernetes.io/ingress.class: "nginx"
      ingress.kubernetes.io/ssl-redirect: “true”
      ingress.kubernetes.io/proxy-body-size: 50m

我还将其添加到kong env值中:

client_max_body_size: 0

我的理解是,这应该更新nginx.conf

Kong前面有一个nginx入口,我安装了稳定的头盔图。对于入口控制器,我已设置:

--set controller.config.proxy-body-size: "50m"

但是这些设置都不起作用。查看入口控制器的pod日志,我看到:

2019/08/02 15:01:34 [warn] 42#42: *810139 a client request body is buffered to a temporary file /tmp/client-body/0000000014, client: 1X.XXX.X0.X, server: example.com, request: "POST /endpoint HTTP/1.1", host: "example.com"

以及在kong pod中的相应日志:

2019/08/02 15:01:39 [warn] 33#0: *1147388 a client request body is buffered to a temporary file /usr/local/kong/client_body_temp/0000000017, client: XX.XXX.XXX.XX, server: kong, request: "POST /ENDPOINT HTTP/1.1", host: "example.com"
10.120.20.17 - - [02/Aug/2019:15:01:39 +0000] "POST /endpoint HTTP/1.1" 413 794 "-" "PostmanRuntime/7.15.2"

我是否还有其他设置丢失或者我要解决这个错误?如何使它按预期工作。

  • 如果我仅使用IP直接将其发布到Pod,则没有涉及的入口控制器会出现相同的413错误。 kubernetes是否有需要更改的默认入口?

1 个答案:

答案 0 :(得分:1)

该注释似乎正常工作。我遇到的限制是因为我正在测试的代码是无库的。无kube函数使用瓶子,并且入口限制在瓶子上。我在自定义python3.7图像中增加了kubeless的效果,并且一切正常。