nginx 504 Gateway Time-out 에러가 발생할 경우에는 각 Ingress Controller 별로 아래와 같이 설정합니다.
IBM Kubernetes Service(IKS) Ingress Controller
Ingress 리소스에 다음의 어노테이션을 추가합니다.
client-max-body-size
클라이언트가 요청의 일부로 전송할 수 있는 최대 본문 크기를 설정합니다.
https://cloud.ibm.com/docs/containers?topic=containers-ingress_annotation#client-max-body-size
샘플 Ingress 리소스 YAML
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: myingress annotations: ingress.bluemix.net/client-max-body-size: "serviceName=<myservice> size=<size>; size=<size>" spec: tls: - hosts: - mydomain secretName: mytlssecret rules: - host: mydomain http: paths: - path: / backend: serviceName: myservice servicePort: 8080
proxy-connect-timeout, proxy-read-timeout
백엔드 앱이 사용할 수 없는 것으로 간주되기 전에 백엔드 앱에 연결하고 백엔드 앱에서 읽기 위해 ALB가 대기하는 시간을 설정합니다.
proxy-connect-timeout: 백엔드 앱에 연결하기 위해 대기하는 시간(초 또는 분)입니다(예: 65s
또는 1m
). 연결 제한시간은 75초를 초과할 수 없습니다.
proxy-read-timeout: 백엔드 앱을 읽기 전에 대기하는 시간(초 또는 분)입니다(예: 65s
또는 2m
).
https://cloud.ibm.com/docs/containers?topic=containers-ingress_annotation#proxy-connect-timeout
샘플 Ingress 리소스 YAML
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: myingress annotations: ingress.bluemix.net/proxy-connect-timeout: "serviceName=<myservice> timeout=<connect_timeout>" ingress.bluemix.net/proxy-read-timeout: "serviceName=<myservice> timeout=<read_timeout>" spec: tls: - hosts: - mydomain secretName: mytlssecret rules: - host: mydomain http: paths: - path: / backend: serviceName: myservice servicePort: 8080