반응형
마이크로 서비스 아키텍처에서 문제중 일반적인 것은 cascading failure을 꼽을 수 있습니다.
어떤 이유로 서비스가 응답하지 않는 경우, 서비스에 request를 계속해서 보내면
latency가 길어지고 그에 따른 서비스에 불필요한 부하가 발생할 여지가 있습니다.
마이크로 서비스의 경우 다양한 서비스로 구성되는데,
A 서비스와 B 서비스가 연계되어 있을 경우 다른 서비스의 부하로 이어지는데 이런 현상을 cascading failure라 한다.
이런 현상을 circuit breaking을 통해 과부하된 서비스의 연결을 끊고 서비스가 회복할 시간을 줄 수 있게하여
장애를 처리할 수 있게 됩니다.
Destination rule에서 또는 value에서 이용하여 circuit break 설정이 가능합니다.
먼저
outlierDetection을 이용하여 circuit breaker를 동작시킨다.
maxEjectionPercent: 접속하는 호스트 중 몇 %만 제외시킬지
consecutive5xxErrors: 연속으로 들어오는 5xx 에러의 수
inteval: 시간 간격
baseEjectionTime: 얼마동안 Ejection을 시킬 것인지 .
위 yaml의 outlierDetection을 요약하면
10초 동안 연속으로 2개의 5xx에러 응답을 받으면
30초동안 pod를 ejection하여 어떤 호스트도 접근하지 못하게한다.
반응형
'고기 대신 SW 한점 > DEVOPS' 카테고리의 다른 글
[DevOps] CI (Continuous Integration) 완전 정복 (3) | 2022.12.07 |
---|---|
[DevOps] CD, Routing 컨트롤을 통한 Rollout 방안 (0) | 2022.10.26 |
[Helm] k8s package manger - 낱낱이 알아보기 (0) | 2022.10.24 |
[Backend] 개발 환경 구성 : 끝장내기 (0) | 2022.10.11 |
Code Convention (0) | 2022.09.29 |