在K8s集群中,使用Nginx Ingress代理出口,对于 NGINX,当请求中的大小超过客户端请求正文的最大允许大小时,将向客户端返回 413 错误。

Server status: 413 (Request Entity Too Large)

解决办法:

在Nginx中可以通过参数来配置client_max_body_size

在K8s中

  1. 为所有 Ingress配置此规则,可以在NGINX ConfigMap中设置proxy-body-size值;
  2. 为某个 Ingress配置此规则,请定义以下注释:
nginx.ingress.kubernetes.io/proxy-body-size: 8m

K8s yaml

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 1024m   # 这行是重点
  # 此处省略若干内容
  creationTimestamp: "2022-07-31T17:38:33Z"
  name: test.com
  namespace: default
spec:
  # 此处省略若干内容
```

Rancher修改

  1. 全局的
    修改config-map
    在这里插入图片描述
    如果nginx-ingress-controller没有引用config-map,请手动关联
    在这里插入图片描述

  2. 局部的
    Rancher
    在这里插入图片描述

附件

Nginx Ingree资料:

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐