GitLab 유지 보수 모드의 내부 작동
유지 보수 모드가 시행되는 곳은 어디인가요?
GitLab 유지 보수 모드는 오직 HTTP 및 SSH 요청에서 애플리케이션 레벨의 몇 가지 중요한 위치에서만 쓰기를 차단합니다.
maintenance_mode?
에 대한 코드베이스 검색
-
읽기 전용 데이터베이스 메서드는 데이터베이스에 쓸 수 없는 경우 특별한 동작을 전환합니다. 우리는 GET 요청에서 쓰기가 발생할 수 있는 가능한 장소에 이 메서드를 사용합니다.
Gitlab::Database.read_only?
에 대한 코드베이스 검색 - 읽기 전용 미들웨어에서는 데이터베이스 쓰기를 유발하는 HTTP 요청이 차단되며, 명시적으로 허용된 경우(예: GET 요청)만 허용됩니다.
-
SSH를 통한 Git 푸시 접근이 거부됩니다.
gitlab-shell
이/internal/allowed
로 POST를 전송하여 접근 허용 여부를 확인할 때 401을 반환합니다. - 컨테이너 레지스트리 인증 서비스에서는 컨테이너 레지스트리에 대한 업데이트가 차단됩니다.
데이터베이스 자체는 읽기 전용 모드가 아니며(Geo 보조 사이트를 제외하고) 차단된 것이 아닌 다른 출처에서 작성될 수 있습니다.