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