Http Error 413 requesting k8s service which does not have an ingress configuration

3/10/2020

Inside my cluster, there is a service that returns 413 when requested via POST with a large request client body size, > 10MB. Since this service should not be reachable from outside the cluster I am wondering how to increase this setting in order to prevent the above error.

Sure, when using an ingress configuration on the service I can stick to the proxy-body-size annotation, but how is it when not using an ingress configuration?

-- attidev
http-status-code-413
kubernetes
kubernetes-ingress

1 Answer

3/12/2020

It seems there is no limitation on request-body-size when a service has not defined an ingress resource.

Edit: Exemplary, we got two services hosted in our cluster A and B. Service A will be reachable from outside the cluster which will be achieved by defining an nginx ingress resource which exposes to the url my.service.a.

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
  ...
spec:
  rules:
    - host: my.service.a
    http:
      paths:
      ...

Please take note of the annotation nginx.ingress.kubernetes.io/proxy-body-size: "0" which disables the limitation of client request body size (not recommended!).

Service B will only be requested by Service A within its internal cluster address my-service-b.svc.cluster.local and therefore no nginx ingress resource has been defined for Service B.

My assumption was, that Service B has by default a client_request_body_size limitation too. But after testing, it seems that there is no limitation.

-- attidev
Source: StackOverflow