안녕하세요,

베스핀글로벌 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에 문의해 주시기 바랍니다.


감사합니다.