Nginx.ingress.kubernetes.io/proxy-body-size 不工作
Posted
技术标签:
【中文标题】Nginx.ingress.kubernetes.io/proxy-body-size 不工作【英文标题】:Nginx.ingress.kubernetes.io/proxy-body-size not working 【发布时间】:2019-08-16 06:47:15 【问题描述】:我想增加 Ingress 中每个请求的帖子正文的大小。所以我添加了
nginx.ingress.kubernetes.io/proxy-body-size: 8m
在 yaml 文件入口中(在牧场主的查看/编辑 yaml 文件中),但它不起作用。当我使用 kubectl 获得入口描述时,我没有看到添加的注释,但我看到了新添加的映射。 这是配置:
YAML 文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/configuration-snippet: |-
set $test_host "testdms.test.com"
if ($host == $test_host)
return 301 $scheme://$test_host/webui/;
nginx.ingress.kubernetes.io/proxy-body-size: 8m
creationTimestamp: 2018-09-11T12:19:02Z
generation: 116
name: test-dms
namespace: test-dms
resourceVersion: "95490045"
selfLink: /apis/extensions/v1beta1/namespaces/test-dms/ingresses/test-dms
uid: de7c4c1b-b5bc-11e8-84c0-005056bf6431
spec:
rules:
- host: testdms.test.com
http:
paths:
- backend:
serviceName: ingress-e5a45b0dc688c653b79d4b5942ebbe7c
servicePort: 80
path: /test
status:
loadBalancer:
ingress:
-
- ip: 198.100.101.171
- ip: 198.100.101.172
- ip: 198.100.101.173
- ip: 198.100.101.61
描述结果:
Annotations:
configuration-snippet: set $test_host "testdms.test.com"
if ($host == $test_host)
return 301 $scheme://$test_host/webui/;
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal UPDATE 36s (x38 over 2h) nginx-ingress-controller Ingress test-dms/test-dms
Normal UPDATE 21s (x47 over 23d) nginx-ingress-controller Ingress test-dms/test-dms
Normal UPDATE <invalid> (x47 over 23d) nginx-ingress-controller Ingress test-dms/test-dms
Normal UPDATE <invalid> (x84 over 64d) nginx-ingress-controller Ingress test-dms/test-dms
Normal UPDATE <invalid> (x39 over 12d) nginx-ingress-controller Ingress test-dms/test-dms
【问题讨论】:
如果没有其他原因,set requires a trailing;
您可以使用nginx.ingress.kubernetes.io/proxy-body-size: 0
一起禁用限制。另外,您可以尝试删除并重新创建 Ingress 吗?你用的是什么版本的 Rancher?你能给出更详细的步骤来重现问题吗?如果可能的话,你能给出简化的 yaml 代码来复制/粘贴和检查吗?
【参考方案1】:
修改 K8s 中的入口对象有时会出现异常,因此建议重新创建而不是编辑。
如果仍然无效,请尝试使用 configmap 为所有入口规则全局设置此值
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
data:
proxy-body-size: "8m"
【讨论】:
是的,configmap 工作正常。我只想为这个入口配置这个参数。我必须检查重新创建。谢谢【参考方案2】:你需要添加引号(例如"8m"
),像这样:
nginx.ingress.kubernetes.io/proxy-body-size: "8m"
【讨论】:
有趣的是,文档弄错了。 kubernetes.github.io/ingress-nginx/user-guide/…以上是关于Nginx.ingress.kubernetes.io/proxy-body-size 不工作的主要内容,如果未能解决你的问题,请参考以下文章
Keycloak、oauth2-proxy 和 nginx.ingress.kubernetes
如何从客户端访问使用 Nginx Ingress+Kubernetes 托管的 MySql