오늘 아침 2개 컨테이너 설치 환경에서 업그레이드를 진행했는데 문제가 발생했습니다. 새 컨테이너를 부트스트랩하는 과정에서 데이터베이스가 깨진 상태로 마이그레이션되었습니다(SKIP_POST_DEPLOYMENT_MIGRATIONS=1을 사용했으면 이런 일이 일어나지 않았을 수도 있지만, 그것은 별개의 문제입니다). 그 결과 실행 중인 컨테이너에서 "사이트가 깨졌습니다"라는 오류 메시지가 표시되었습니다.
이 정도는 예상했던 부분입니다. 하지만 제 모니터링 시스템은 /srv/status를 확인하는데, 레일즈(Rails)가 상당히 깨진 상태여도 여전히 OK를 반환합니다.
이것이 버그인가요? 문제가 있을 때 모니터링 시스템이 이를 감지하길 원하는데, 로그인 없이 접근할 수 있는 사이트의 경우 /about.json 같은 다른 엔드포인트를 확인하는 것이 더 나은 방법일까요?
/srv/status 엔드포인트는 종속성이 아닌 로컬 프로세스만 확인합니다. “HTTP 스택이 막혔는가?” 그리고 "나는 lame-duck 상태인가?"를 묻는 것이죠. Kubernetes 용어로 말하면, 이것은 readinessProbe가 아니라 livenessProbe입니다.