'Nginx.ingress.kubernetes.io/proxy-body-size not working
I want to increase size of post body of each request in Ingress. So I add the
nginx.ingress.kubernetes.io/proxy-body-size: 8m
in yaml file ingress(in view/edit yaml file of rancher) but it doesn’t work. When I get the describe of ingress with kubectl I dont see the added annotation but i see the new added mapping. Hereis the configs:
YAML file:
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
describe result:
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
Solution 1:[1]
Amendment of the ingress objects in K8s sometimes misbehave, so it's recommended to re-create rather than edit.
If it still didn't work, try to set this value globally for all ingress rules using a configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
data:
proxy-body-size: "8m"
Solution 2:[2]
You need to add quotes (e.g. "8m"
), like this:
nginx.ingress.kubernetes.io/proxy-body-size: "8m"
Solution 3:[3]
The annotation
nginx.ingress.kubernetes.io/proxy-body-size: 8m
being ignored could be the result of using the wrong implementation of nginx-ingress controller. Not sure if this is the case, here. Which implementation did you use?
See this answer by ololoepepe for details.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | A_Suh |
Solution 2 | segFault |
Solution 3 | Carni |