Kubernetes Ingress proxy-body-size 注释已停止工作
Kubernetes Ingress proxy-body-size annotation has stopped working
我在 Kubernetes 集群上有一个应用程序 运行。上个月的某个时候,我的 proxy-body-size 入口注释突然停止工作。我的应用程序现在 returns 413:每当使用大文件调用时请求实体太大。
这是从 ingress.kubernetes.io/proxy-body-size 更改为 nginx.ingress.kubernetes.io/proxy-body-size 之后的结果。目前两者都没有区别。
集群运行 stable/nginx-ingress 版本 1.15.0.
我一定是漏掉了一些明显的东西,但我这辈子都弄不清楚是什么。
我的入口目前看起来像这样:
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 20m
creationTimestamp: "2019-07-03T08:43:43Z"
generation: 1
labels:
app.kubernetes.io/instance: underskrift-detektor-env-v2
app.kubernetes.io/managed-by: Tiller
app.kubernetes.io/name: erst-env
helm.sh/chart: erst-env-1.7.0
name: underskrift-detektor-env-v2
namespace: dokumentredskaber
resourceVersion: "17086462"
selfLink: /apis/extensions/v1beta1/namespaces/dokumentredskaber/ingresses/underskrift-detektor-env-v2
uid: aa2cb597-9d6e-11e9-924b-7285e76b0ce4
spec:
rules:
- host: svik-ml-dev.erst.dk
http:
paths:
- backend:
serviceName: underskrift-detektor-app-v2
servicePort: 8080
path: /dokument-redskaber/underskrift-detektor/v2
tls:
- hosts:
- svik-ml-dev.erst.dk
secretName: erst-tls-secret
status:
loadBalancer:
ingress:
- {}
kubectl describe ing
的输出是:
Namespace: dokumentredskaber
Address:
Default backend: default-http-backend:80 (<none>)
TLS:
erst-tls-secret terminates svik-ml-dev.erst.dk
Rules:
Host Path Backends
---- ---- --------
svik-ml-dev.erst.dk
/dokument-redskaber/underskrift-detektor/v2 underskrift-detektor-app-v2:8080 (<none>)
Annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 20m
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal UPDATE 59m (x6 over 23h) nginx-ingress-controller Ingress dokumentredskaber/underskrift-detektor-env-v2
Normal UPDATE 59m (x6 over 23h) nginx-ingress-controller Ingress dokumentredskaber/underskrift-detektor-env-v2```
从官方 Nginx ingress 文档来看,Annotation 策略只接受字符串值,即使是整数,they should be quoted。
此外,在某些提供商中,您可能还想尝试添加 nginx.org/client-max-body-size
注释以及 proxy-body-size
。
问题中没有说明,以防万一我会提到 Nginx pods 需要重新启动才能选择注释的值。
我在 Kubernetes 集群上有一个应用程序 运行。上个月的某个时候,我的 proxy-body-size 入口注释突然停止工作。我的应用程序现在 returns 413:每当使用大文件调用时请求实体太大。
这是从 ingress.kubernetes.io/proxy-body-size 更改为 nginx.ingress.kubernetes.io/proxy-body-size 之后的结果。目前两者都没有区别。
集群运行 stable/nginx-ingress 版本 1.15.0.
我一定是漏掉了一些明显的东西,但我这辈子都弄不清楚是什么。
我的入口目前看起来像这样:
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 20m
creationTimestamp: "2019-07-03T08:43:43Z"
generation: 1
labels:
app.kubernetes.io/instance: underskrift-detektor-env-v2
app.kubernetes.io/managed-by: Tiller
app.kubernetes.io/name: erst-env
helm.sh/chart: erst-env-1.7.0
name: underskrift-detektor-env-v2
namespace: dokumentredskaber
resourceVersion: "17086462"
selfLink: /apis/extensions/v1beta1/namespaces/dokumentredskaber/ingresses/underskrift-detektor-env-v2
uid: aa2cb597-9d6e-11e9-924b-7285e76b0ce4
spec:
rules:
- host: svik-ml-dev.erst.dk
http:
paths:
- backend:
serviceName: underskrift-detektor-app-v2
servicePort: 8080
path: /dokument-redskaber/underskrift-detektor/v2
tls:
- hosts:
- svik-ml-dev.erst.dk
secretName: erst-tls-secret
status:
loadBalancer:
ingress:
- {}
kubectl describe ing
的输出是:
Namespace: dokumentredskaber
Address:
Default backend: default-http-backend:80 (<none>)
TLS:
erst-tls-secret terminates svik-ml-dev.erst.dk
Rules:
Host Path Backends
---- ---- --------
svik-ml-dev.erst.dk
/dokument-redskaber/underskrift-detektor/v2 underskrift-detektor-app-v2:8080 (<none>)
Annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 20m
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal UPDATE 59m (x6 over 23h) nginx-ingress-controller Ingress dokumentredskaber/underskrift-detektor-env-v2
Normal UPDATE 59m (x6 over 23h) nginx-ingress-controller Ingress dokumentredskaber/underskrift-detektor-env-v2```
从官方 Nginx ingress 文档来看,Annotation 策略只接受字符串值,即使是整数,they should be quoted。
此外,在某些提供商中,您可能还想尝试添加 nginx.org/client-max-body-size
注释以及 proxy-body-size
。
问题中没有说明,以防万一我会提到 Nginx pods 需要重新启动才能选择注释的值。