GitLab 유지 보수 모드의 내부 작동
유지 보수 모드가 시행되는 위치는?
GitLab 유지 보수 모드는 Rails 응용 프로그램 내의 몇 가지 핵심 위치에서 HTTP 및 SSH 요청으로부터의 쓰기를 차단합니다.
maintenance_mode?
을 코드베이스에서 검색하세요.
-
읽기 전용 데이터베이스 메서드는 데이터베이스에 쓰기가 허용되지 않을 때 특별한 동작을 전환하는데, 이 메서드는 GET 요청에서 쓰기가 발생할 수 있는 가능한 장소에 사용됩니다.
Gitlab::Database.read_only?
을 코드베이스에서 검색하세요. - 읽기 전용 미들웨어는 데이터베이스 쓰기를 유발하는 HTTP 요청을 차단하며, 명시적으로 허용되지 않는 한 (예: GET 요청) 차단됩니다.
- SSH를 통한 Git 푸시 액세스는
/internal/allowed
로 POST하는 시gitlab-shell
에서 401을 반환하여 액세스를 허용할 경우에만 차단됩니다. 액세스가 허용되는지 확인합니다. - 컨테이너 레지스트리 인증 서비스에서 컨테이너 레지스트리의 업데이트를 차단합니다.
데이터베이스 자체는 (Geo 보조 사이트의 경우를 제외하고) 읽기 전용 모드가 아니며, 차단된 소스 이외의 소스에 의해 쓰여질 수 있습니다.