web-dev-qa-db-ja.com

KubernetesおよびNginx入力コントローラーでの413エラー

client_max_body_size値を変更しようとしているので、nginxイングレスは413エラーを返しません。

いくつかのソリューションをテストしました。
テスト構成マップは次のとおりです。

kind: ConfigMap
apiVersion: v1
data:
  proxy-connect-timeout: "15"
  proxy-read-timeout: "600"
  proxy-send-timeout: "600"
  proxy-body-size: "8m"
  hsts-include-subdomains: "false"
  body-size: "64m"
  server-name-hash-bucket-size: "256"
  client-max-body-size: "50m"
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app: ingress-nginx

これらの変更は、ロード後、nginxコントローラーログで設定マップのリロードに関する情報を確認できますが、nginx.confの値は同じです。

root@nginx-ingress-controller-95db685f5-b5s6s:/# cat /etc/nginx/nginx.conf | grep client_max                                                                                                       
                        client_max_body_size                    "8m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";

Nginx-controller configはこのイメージを使用します:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0

Nginxに値を強制的に変更するにはどうすればよいですか?すべてのイングレスについて、グローバルに変更する必要があります。

12
Djent

annotationnginx.ingress.kubernetes.io/proxy-body-sizeを使用して、ベースConfigMapを変更する代わりに、Ingressオブジェクトでmax-body-sizeオプションを直接設定できます。

使用例は次のとおりです。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-app
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
...
29
Anton Kostenko

グローバルに設定するには、この configmap.md のドキュメントが役立つ場合があります。設定する変数は、proxy-body-sizeではなくclient-max-body-sizeです。

ヘルムチャートを展開するときに、--set-string controller.config.proxy-body-size="4m"を設定できます。

6
SoJeN