티스토리 뷰

728x90
반응형

본 포스팅에서는 Kubernetes 기반 Nginx Ingress Proxy를 사용할 경우 발생할 수 있는 Request Entity Too Large Response 이슈에 대한 해결 방안을 제시한다.

 

<기반 환경>

Infra : Private Cloud (OpenStack)

PaaS : Kubernetes

Ingress Controller : Nginx Proxy

Web Server : Apahce Httpd

Application Server : Wildfly17

 

<장애 발생>

Kubernetes 기반의 Application Pod에 10MB 이상의 파일을 전송할 경우 Request Entity Too Large Response 응답이 발생하며, 파일 업로드가 이루어 지지않는 현상

 

<장애 추적>

파일 업로드 제한에 대한 각 구간 별 진단 수행

1. Kubernetes 유입 지점인 Nginx Proxy의 body_size 확인

2. Apache Httpd의 body_size 확인

3. WildFly의 bode_size 확인

 

<장애 해결>

각 구간 별 파일 업로드 용량 제한을 확인해 보니 다음과 같았다.

- Nginx Proxy : proxy_body_size 10MB

- Apache Httpd : LimitRequestBody 0 (unlimited)

- WildFly : max-post-size 10MB

 

파일 업로드는 1차로 Kubernetes Ingress인 Nginx Proxy에서 Request Entity Too Large를 발생 시켰을 것이라 의심된다.

따라서 아래와 같이 proxy_body_size를 annotation으로 적용한다.

 

apiVersion: extentions/v1beta1
kind: Ingress
metadata:
    annotations:
      nginx.ingress.kubernetes.io/proxy_body_size: 1024M

 

위와 같이 annotation으로 kubernetes ingress를 edit하면 ingress proxy에 반영할 수 있다.

728x90
반응형