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 需要重新启动才能选择注释的值。