보조 러너
Geo 보조 사이트에 GitLab 러너를 등록하여 기본 인스턴스의 부하를 분산합니다.
히스토리 GitLab 16.8에서 geo_proxy_check_pipeline_refs 라는 기능 플래그 와 함께 도입 되었습니다. 기본적으로 비활성화되어 있습니다. GitLab 16.9에서 기본적으로 활성화 되었습니다. 보조 사이트 Geo 프록시 를 사용하면 gitlab-runner 를 보조 사이트에 등록할 수 있습니다. 이렇게 하면 기본 인스턴스의 부하를 덜어 줍니다. Note 파이프라인의 첫 Stage에서 시작하는 job은 Git 클론 요청이 거의 항상 기본 사이트로 전달됩니다. 보조 사이트가 Git 데이터를 복제하고 검증하기 전에 클론이 이루어지기 때문입니다. 이후 Stage 역시 보조 사이트가 처리한다고 보장할 수는 없습니다. 예를 들어 Git 변경량이 크거나, 대역폭이 좁거나, 파이프라인 Stage가 짧은 경우가 그렇습니다. 대부분의 경우 파이프라인의 이후 Stage에서는 보조 사이트가 Git 데이터를 제공합니다. 이슈 446176 은 첫 Stage의 클론 요청이 보조 사이트에서 처리될 가능성을 높이는 개선안을 제안합니다. 위치 인식 공개 URL(통합 URL) 환경에서 보조 러너 사용 # 기능 플래그가 활성화된 상태에서 위치 인식 DNS 를 사용하면 추가 구성 없이 동작합니다. 보조 사이트와 같은 위치에 러너를 설치하고 등록하면 러너가 자동으로 가장 가까운 사이트와 통신하며, 보조 사이트가 최신 상태가 아닐 때만 기본 사이트로 프록시합니다. 별도 URL 환경에서 보조 러너 사용 # 보조 사이트에 별도 URL을 사용한다면 러너를 다음과 같이 구성합니다. 보조 사이트의 외부 URL로 등록합니다. clone_url 을 보조 인스턴스의 external_url 로 설정해 구성합니다. 보조 러너 환경에서 계획된 페일오버 처리 # 계획된 페일오버 를 수행할 때 보조 러너는 로컬 인스턴스와 계속 통신하려고 합니다. 이로 인해 러너 용량이 줄어들 수 있으므로 이를 감안해야 합니다. 위치 인식 공개 URL 사용 시 # 위치 인식 DNS 를 사용하면 모든 러너가 자동으로 가장 가까운 Geo 사이트에 연결됩니다. 새 기본 사이트로 페일오버할 때는 다음과 같습니다. 이전 기본 사이트가 DNS 레코드에 남아 있는 동안, 그 사이트에 연결되어 있던 러너는 계속 이전 기본 사이트에서 job을 가져오려 합니다. 해당 사이트에 연결할 수 없으면 러너가 이를 감지 하고, 인스턴스가 복구된 뒤에도 일정 시간 동안 요청을 중단합니다. 보조 노드가 여러 개 라면 최초 페일오버 이후 나머지 보조 사이트는 새 기본 사이트와 복제 될 때까지 비정상 상태가 됩니다. 그 사이트에 연결된 러너는 체크인하지 못하고 상태 점검도 함께 작동합니다. 비정상 노드를 Geo DNS 항목에서 제거하면 러너가 그다음으로 가까운 인스턴스를 선택합니다. 아키텍처에 따라서는 용량이 줄어든 사이트에 과부하가 걸릴 수 있어 바람직하지 않을 수 있습니다. 이런 문제를 완화하려면 사이트가 완전히 복구될 때까지 일부 러너를 일시 중지 하거나 종료할 수 있습니다. 이런 문제가 우려되지 않는다면 별도로 조치