안녕하세요,
베스핀글로벌 GCP Support팀입니다.
이번 아티클에서는 주제로 "GKE Ingress IP로 통신 시 발생하는 Timeout 이슈"를 다루고자 합니다.
GKE Ingress Timeout 이슈
GKE Ingress의 기본 백엔드 서비스 Timeout 시간은 30초로 설정되어 있습니다.[1]
사용하시는 어플리케이션에 따라 다른 값의 Timeout 설정이 필요할 수 있습니다.
GKE 백엔드 서비스 Timeout 시간은 BackendConfig Custom Resource Definition(CRD)를 사용하여 수정할 수 있습니다.
BackendConfig를 사용한 Timeout 설정
1) BackendConfig yaml 파일 생성 후 배포
2) 사용 중인 Service yaml파일 수정(annotation 추가) 후 재배포
3) Console > Load Balancer > Backend에서 변경되었는지 확인
Backend Config 사용시 다음과 같은 제한사항이 존재하니 참고하시기 바랍니다.[2]
- 여러 인그레스 객체가 (서비스, 포트)를 참조하더라도 (서비스, 포트) 쌍 하나만 BackendConfig를 한 개만 사용할 수 있습니다. 즉, 동일한 (서비스, 포트)를 참조하는 모든 인그레스 객체는 Google Cloud Armor, Cloud IAP, Cloud CDN의 동일한 구성을 사용해야 합니다.
- 동일한 HTTP(S) 부하 분산 백엔드 서비스에는 IAP 및 Cloud CDN을 사용 설정할 수 없습니다. 즉, 동일한 BackendConfig에서 IAP 및 Cloud CDN을 모두 구성할 수 없습니다.
- BackendConfig와의 상호작용하려면 kubectl 1.7 이상을 사용해야 합니다.
참조 링크
[1] Ingress Backend Timeout 구성
https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#timeout
[2] BackendConfig 제한사항
https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#limitations
관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.
감사합니다.