InfoGrab Docs

러너 관리

요약

GitLab Runner에는 다음과 같은 유형의 러너가 있으며, 접근 권한을 부여할 대상에 따라 사용 가능합니다: 인스턴스 러너는 GitLab 인스턴스의 모든 프로젝트에서 사용할 수 있습니다. 비슷한 요구사항을 가진 여러 잡이 있을 때 인스턴스 러너를 사용합니다.

GitLab Runner에는 다음과 같은 유형의 러너가 있으며, 접근 권한을 부여할 대상에 따라 사용 가능합니다:

  • 인스턴스 러너는 GitLab 인스턴스의 모든 그룹 및 프로젝트에서 사용할 수 있습니다.
  • 그룹 러너는 그룹의 모든 프로젝트 및 서브그룹에서 사용할 수 있습니다.
  • 프로젝트 러너는 특정 프로젝트와 연결됩니다. 일반적으로 프로젝트 러너는 한 번에 하나의 프로젝트에서 사용됩니다.

인스턴스 러너#

인스턴스 러너는 GitLab 인스턴스의 모든 프로젝트에서 사용할 수 있습니다.

비슷한 요구사항을 가진 여러 잡이 있을 때 인스턴스 러너를 사용합니다. 많은 프로젝트를 위해 여러 러너가 유휴 상태로 있는 대신, 여러 프로젝트를 처리하는 몇 개의 러너를 가질 수 있습니다.

GitLab Self-Managed를 사용하는 경우, 관리자는:

GitLab.com을 사용하는 경우:

러너 인증 토큰으로 인스턴스 러너 만들기#

히스토리

사전 조건:

  • 관리자여야 합니다.

러너를 만들면 등록에 사용하는 러너 인증 토큰이 할당됩니다. 러너는 잡 큐에서 잡을 가져올 때 GitLab 인증에 이 토큰을 사용합니다.

인스턴스 러너를 만들려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. Create instance runner를 선택합니다.
  4. GitLab Runner가 설치된 운영 체제를 선택합니다.
  5. Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없는 경우 Run untagged를 선택합니다.
  6. 선택 사항. Runner description 필드에 GitLab에 표시될 러너 설명을 추가합니다.
  7. 선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
  8. Create runner를 선택합니다.
  9. 명령줄에서 러너를 등록하려면 화면의 지시를 따릅니다. 명령줄에서 묻는 질문:
    • GitLab instance URL의 경우, GitLab 인스턴스의 URL을 사용합니다. 예를 들어, 프로젝트가 gitlab.example.com/yourname/yourproject에서 호스팅되는 경우, GitLab 인스턴스 URL은 https://gitlab.example.com입니다.
    • executor의 경우, 실행기 유형을 입력합니다. 실행기는 러너가 잡을 실행하는 환경입니다.

API를 사용하여 러너를 만들 수도 있습니다.

Note

러너 인증 토큰은 등록 중에 제한된 시간 동안 UI에 표시됩니다. 러너를 등록한 후 인증 토큰은 config.toml에 저장됩니다.

등록 토큰으로 인스턴스 러너 만들기 (더 이상 사용되지 않음)#

Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

사전 조건:

  • 러너 등록 토큰은 Admin 영역에서 활성화되어야 합니다.
  • 관리자여야 합니다.

인스턴스 러너를 만들려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. Register an instance runner를 선택합니다.
  4. 등록 토큰을 복사합니다.
  5. 러너를 등록합니다.

인스턴스 러너 일시 중지 또는 재개#

사전 조건:

  • 관리자여야 합니다.

GitLab 인스턴스의 그룹 및 프로젝트에서 잡을 수락하지 않도록 러너를 일시 중지할 수 있습니다.

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 러너 목록에서 러너 오른쪽:
    • 러너를 일시 중지하려면 Pause ([pause])를 선택합니다.
    • 러너를 재개하려면 Resume ([play])를 선택합니다.

인스턴스 러너 삭제#

사전 조건:

  • 관리자여야 합니다.

인스턴스 러너를 삭제하면 GitLab 인스턴스에서 영구적으로 삭제되어 그룹 및 프로젝트에서 더 이상 사용할 수 없습니다. 러너가 잡을 수락하지 않도록 일시적으로 중지하려면 러너를 일시 중지할 수 있습니다.

단일 또는 여러 인스턴스 러너를 삭제하려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 인스턴스 러너를 삭제합니다:
    • 단일 러너를 삭제하려면 러너 옆에서 Delete runner ([remove])를 선택합니다.
    • 여러 인스턴스 러너를 삭제하려면 각 러너의 체크박스를 선택하고 Delete selected를 선택합니다.
    • 모든 러너를 삭제하려면 러너 목록 상단의 체크박스를 선택하고 Delete selected를 선택합니다.
  5. Permanently delete runner를 선택합니다.

프로젝트에 인스턴스 러너 활성화#

GitLab.com에서는 인스턴스 러너가 모든 프로젝트에서 기본적으로 활성화됩니다.

GitLab Self-Managed에서는 관리자가 모든 새 프로젝트에 대해 활성화할 수 있습니다.

기존 프로젝트의 경우, 관리자가 설치하고 등록해야 합니다.

프로젝트에 인스턴스 러너를 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Turn on instance runners for this project 토글을 활성화합니다.

그룹에 인스턴스 러너 활성화#

그룹에 인스턴스 러너를 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Turn on instance runners for this group 토글을 활성화합니다.

프로젝트에 인스턴스 러너 비활성화#

개별 프로젝트 또는 그룹에 대해 인스턴스 러너를 비활성화할 수 있습니다. 프로젝트 또는 그룹의 소유자 역할이 있어야 합니다.

프로젝트에 인스턴스 러너를 비활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Instance runners 영역에서 Turn on runners for this project 토글을 끕니다.

인스턴스 러너는 다음 경우에 프로젝트에 대해 자동으로 비활성화됩니다:

  • 상위 그룹의 인스턴스 러너 설정이 비활성화된 경우, 그리고
  • 프로젝트에서 이 설정을 재정의하는 것이 허용되지 않는 경우.

그룹에 인스턴스 러너 비활성화#

그룹에 인스턴스 러너를 비활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Enable instance runners for this group 토글을 끕니다.
  5. 선택 사항. 개별 프로젝트 또는 서브그룹에서 인스턴스 러너를 활성화할 수 있도록 허용하려면 Allow projects and subgroups to override the group setting을 선택합니다.

인스턴스 러너가 잡을 선택하는 방법#

인스턴스 러너는 공정 사용 큐를 사용하여 잡을 처리합니다. 이 큐는 프로젝트가 수백 개의 잡을 만들고 사용 가능한 인스턴스 러너 리소스를 모두 사용하는 것을 방지합니다.

공정 사용 큐 알고리즘은 인스턴스 러너에서 이미 실행 중인 잡의 수가 가장 적은 프로젝트를 기준으로 잡을 할당합니다.

예를 들어, 다음 잡이 큐에 있는 경우:

  • 프로젝트 1의 잡 1
  • 프로젝트 1의 잡 2
  • 프로젝트 1의 잡 3
  • 프로젝트 2의 잡 4
  • 프로젝트 2의 잡 5
  • 프로젝트 3의 잡 6

여러 CI/CD 잡이 동시에 실행되는 경우, 공정 사용 알고리즘은 다음 순서로 잡을 할당합니다:

  1. 잡 1이 첫 번째입니다. 실행 중인 잡이 없는 프로젝트(즉, 모든 프로젝트)에서 가장 낮은 잡 번호를 가지고 있기 때문입니다.
  2. 잡 4가 다음입니다. 실행 중인 잡이 없는 프로젝트(프로젝트 1은 실행 중인 잡이 있음)에서 가장 낮은 잡 번호가 이제 4이기 때문입니다.
  3. 잡 6이 다음입니다. 실행 중인 잡이 없는 프로젝트(프로젝트 1과 2는 실행 중인 잡이 있음)에서 가장 낮은 잡 번호가 이제 6이기 때문입니다.
  4. 잡 2가 다음입니다. 실행 중인 잡의 수가 가장 적은 프로젝트(각각 1개)에서 가장 낮은 잡 번호이기 때문입니다.
  5. 잡 5가 다음입니다. 프로젝트 1은 이제 2개의 잡이 실행 중이고 잡 5는 프로젝트 2와 3 사이에서 가장 낮은 잡 번호이기 때문입니다.
  6. 마지막으로 잡 3은 남은 유일한 잡이기 때문입니다.

한 번에 하나의 잡만 실행되는 경우, 공정 사용 알고리즘은 다음 순서로 잡을 할당합니다:

  1. 잡 1이 먼저 선택됩니다. 실행 중인 잡이 없는 프로젝트(즉, 모든 프로젝트)에서 가장 낮은 잡 번호를 가지고 있기 때문입니다.
  2. 잡 1이 완료됩니다.
  3. 잡 2가 다음입니다. 잡 1이 완료되었으므로 모든 프로젝트의 실행 중인 잡이 다시 0이 되었고, 2가 사용 가능한 가장 낮은 잡 번호이기 때문입니다.
  4. 잡 4가 다음입니다. 프로젝트 1이 잡을 실행 중이므로, 4는 실행 중인 잡이 없는 프로젝트(프로젝트 2와 3)에서 가장 낮은 번호이기 때문입니다.
  5. 잡 4가 완료됩니다.
  6. 잡 5가 다음입니다. 잡 4가 완료되었으므로 프로젝트 2에 다시 실행 중인 잡이 없기 때문입니다.
  7. 잡 6이 다음입니다. 프로젝트 3이 실행 중인 잡이 없는 유일한 프로젝트이기 때문입니다.
  8. 마지막으로 잡 3은 남은 유일한 잡이기 때문입니다.

그룹 러너#

그룹의 모든 프로젝트에서 러너 집합에 접근하려면 그룹 러너를 사용합니다.

그룹 러너는 선입선출(FIFO) 큐를 사용하여 잡을 처리합니다.

러너 인증 토큰으로 그룹 러너 만들기#

히스토리
  • GitLab 15.10에서 도입. create_runner_workflow_for_namespace 플래그 뒤에 배포됨. 기본적으로 비활성화됨.
  • GitLab 16.0에서 기본 활성화.
  • GitLab 16.2에서 일반 공개. 기능 플래그 create_runner_workflow_for_admin 제거됨.

사전 조건:

  • 그룹의 소유자 역할이 있어야 합니다.

GitLab Self-Managed 또는 GitLab.com을 위한 그룹 러너를 만들 수 있습니다. 러너를 만들면 등록에 사용하는 러너 인증 토큰이 할당됩니다. 러너는 잡 큐에서 잡을 가져올 때 GitLab 인증에 이 토큰을 사용합니다.

그룹 러너를 만들려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. Create group runner를 선택합니다.
  4. Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없는 경우 Run untagged를 선택합니다.
  5. 선택 사항. Runner description 필드에 GitLab에 표시될 러너 설명을 추가합니다.
  6. 선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
  7. Create runner를 선택합니다.
  8. GitLab Runner가 설치된 플랫폼을 선택합니다.
  9. 화면의 지시를 완료합니다:
    • Linux, macOS, Windows의 경우, 명령줄에서 묻는 질문:
      • GitLab instance URL의 경우, GitLab 인스턴스의 URL을 사용합니다. 예를 들어, 프로젝트가 gitlab.example.com/yourname/yourproject에서 호스팅되는 경우, GitLab 인스턴스 URL은 https://gitlab.example.com입니다.
      • executor의 경우, 실행기 유형을 입력합니다. 실행기는 러너가 잡을 실행하는 환경입니다.
    • Google Cloud의 경우, Google Cloud에서 러너 프로비저닝을 참조하십시오.

API를 사용하여 러너를 만들 수도 있습니다.

Note

러너 인증 토큰은 등록 중에 짧은 시간 동안만 UI에 표시됩니다.

등록 토큰으로 그룹 러너 만들기 (더 이상 사용되지 않음)#

히스토리
  • 경로가 Settings > CI/CD > Runners에서 변경되었습니다.
Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

사전 조건:

  • 최상위 그룹에서 러너 등록 토큰이 활성화되어야 합니다.
  • 그룹의 소유자 역할이 있어야 합니다.

그룹 러너를 만들려면:

  1. GitLab Runner를 설치합니다.
  2. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  3. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  4. 오른쪽 상단 모서리에서 Register a group runner를 선택합니다.
  5. Show runner installation and registration instructions를 선택합니다. 이 지침에는 러너를 등록하기 위한 토큰, URL 및 명령이 포함됩니다.

또는 등록 토큰을 복사하고 러너를 등록하는 방법에 대한 문서를 따를 수 있습니다.

그룹 러너 보기#

히스토리
  • 유지 관리자 역할의 사용자가 그룹 러너를 볼 수 있는 기능이 GitLab 16.4에서 도입.

사전 조건:

  • 그룹의 유지 관리자 또는 소유자 역할이 있어야 합니다.

그룹 및 해당 서브그룹과 프로젝트의 모든 러너를 볼 수 있습니다. GitLab Self-Managed 또는 GitLab.com에서 이 작업을 수행할 수 있습니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.

상속된 그룹 러너만 표시하도록 필터링#

히스토리
  • GitLab 15.5에서 도입.
  • GitLab 15.5에서 일반 공개. 기능 플래그 runners_finder_all_available 제거됨.

목록의 모든 러너를 표시하거나 인스턴스 또는 다른 그룹에서 상속된 러너만 표시하도록 선택할 수 있습니다.

기본적으로 상속된 러너만 표시됩니다.

인스턴스 러너 및 다른 그룹의 러너를 포함하여 인스턴스에서 사용 가능한 모든 러너를 표시하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. 목록 위에서 Show only inherited 토글을 끕니다.

그룹 러너 일시 중지 또는 재개#

사전 조건:

  • 관리자이거나 그룹의 소유자 역할이 있어야 합니다.

GitLab 인스턴스의 서브그룹 및 프로젝트에서 잡을 수락하지 않도록 러너를 일시 중지할 수 있습니다. 여러 프로젝트에서 사용되는 그룹 러너를 일시 중지하면 러너는 모든 프로젝트에 대해 일시 중지됩니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 러너 목록에서 러너 오른쪽:
    • 러너를 일시 중지하려면 Pause ([pause])를 선택합니다.
    • 러너를 재개하려면 Resume ([play])를 선택합니다.

그룹 러너 삭제#

히스토리
  • 여러 러너 삭제가 GitLab 15.6에서 도입.

사전 조건:

  • 관리자이거나 그룹의 소유자 역할이 있어야 합니다.

그룹 러너를 삭제하면 GitLab 인스턴스에서 영구적으로 삭제되어 서브그룹 및 프로젝트에서 더 이상 사용할 수 없습니다. 러너가 잡을 수락하지 않도록 일시적으로 중지하려면 러너를 일시 중지할 수 있습니다.

단일 또는 여러 그룹 러너를 삭제하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 그룹 러너를 삭제합니다:
    • 단일 러너를 삭제하려면 러너 옆에서 Delete runner ([remove])를 선택합니다.
    • 여러 인스턴스 러너를 삭제하려면 각 러너의 체크박스를 선택하고 Delete selected를 선택합니다.
    • 모든 러너를 삭제하려면 러너 목록 상단의 체크박스를 선택하고 Delete selected를 선택합니다.
  5. Permanently delete runner를 선택합니다.

오래된 그룹 러너 정리#

히스토리

사전 조건:

  • 그룹의 소유자 역할이 있어야 합니다.

3개월 이상 비활성 상태인 그룹 러너를 정리할 수 있습니다.

그룹 러너는 특정 그룹에서 만들어진 러너입니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Enable stale runner cleanup 토글을 활성화합니다.

오래된 러너 정리 로그 보기#

Sidekiq 로그를 확인하여 정리 결과를 볼 수 있습니다. Kibana에서 다음 쿼리를 사용할 수 있습니다:

{
  "query": {
    "match_phrase": {
      "json.class.keyword": "Ci::Runners::StaleGroupRunnersPruneCronWorker"
    }
  }
}

오래된 러너가 제거된 항목을 필터링합니다:

{
  "query": {
    "range": {
      "json.extra.ci_runners_stale_group_runners_prune_cron_worker.total_pruned": {
        "gte": 1,
        "lt": null
      }
    }
  }
}

프로젝트 러너#

특정 프로젝트에 러너를 사용하려면 프로젝트 러너를 사용합니다. 예를 들어, 다음과 같은 경우:

  • 자격 증명이 필요한 배포 잡과 같은 특정 요구사항을 가진 잡이 있는 경우.
  • 다른 러너와 분리됨으로써 이점을 얻을 수 있는 CI 활동이 많은 프로젝트.

프로젝트 러너를 여러 프로젝트에서 사용하도록 설정할 수 있습니다. 프로젝트 러너는 각 프로젝트에 대해 명시적으로 활성화되어야 합니다.

프로젝트 러너는 선입선출(FIFO) 큐를 사용하여 잡을 처리합니다.

Note

프로젝트 러너는 포크된 프로젝트에서 자동으로 인스턴스화되지 않습니다. 포크는 복제된 저장소의 CI/CD 설정을 복사합니다.

프로젝트 러너 소유권#

러너가 프로젝트에 처음 연결되면 해당 프로젝트가 러너의 소유자가 됩니다.

소유자 프로젝트를 삭제하면:

  1. GitLab은 러너를 공유하는 다른 모든 프로젝트를 찾습니다.
  2. GitLab은 가장 오래된 연결을 가진 프로젝트에 소유권을 할당합니다.
  3. 다른 프로젝트가 러너를 공유하지 않으면 GitLab은 러너를 자동으로 삭제합니다.

소유자 프로젝트에서 러너 할당을 해제할 수 없습니다. 대신 러너를 삭제하십시오.

러너 인증 토큰으로 프로젝트 러너 만들기#

히스토리
  • GitLab 15.10에서 도입. create_runner_workflow_for_namespace 플래그 뒤에 배포됨. 기본적으로 비활성화됨.
  • GitLab 16.0에서 기본 활성화.
  • GitLab 16.2에서 일반 공개. 기능 플래그 create_runner_workflow_for_admin 제거됨.

사전 조건:

  • 프로젝트의 유지 관리자 역할이 있어야 합니다.

GitLab Self-Managed 또는 GitLab.com을 위한 프로젝트 러너를 만들 수 있습니다. 러너를 만들면 러너를 등록하는 데 사용하는 러너 인증 토큰이 할당됩니다. 러너는 잡 큐에서 잡을 가져올 때 GitLab 인증에 이 토큰을 사용합니다.

프로젝트 러너를 만들려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners 섹션을 펼칩니다.
  4. Create project runner를 선택합니다.
  5. GitLab Runner가 설치된 운영 체제를 선택합니다.
  6. Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없는 경우 Run untagged를 선택합니다.
  7. 선택 사항. Runner description 필드에 GitLab에 표시될 러너 설명을 추가합니다.
  8. 선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
  9. Create runner를 선택합니다.
  10. GitLab Runner가 설치된 플랫폼을 선택합니다.
  11. 화면의 지시를 완료합니다:
    • Linux, macOS, Windows의 경우, 명령줄에서 묻는 질문:
      • GitLab instance URL의 경우, GitLab 인스턴스의 URL을 사용합니다. 예를 들어, 프로젝트가 gitlab.example.com/yourname/yourproject에서 호스팅되는 경우, GitLab 인스턴스 URL은 https://gitlab.example.com입니다.
      • executor의 경우, 실행기 유형을 입력합니다. 실행기는 러너가 잡을 실행하는 환경입니다.
    • Google Cloud의 경우, Google Cloud에서 러너 프로비저닝을 참조하십시오.

API를 사용하여 러너를 만들 수도 있습니다.

Note

러너 인증 토큰은 등록 중에 짧은 시간 동안만 UI에 표시됩니다.

등록 토큰으로 프로젝트 러너 만들기 (더 이상 사용되지 않음)#

Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

사전 조건:

  • 최상위 그룹에서 러너 등록 토큰이 활성화되어야 합니다.
  • 프로젝트의 유지 관리자 또는 소유자 역할이 있어야 합니다.

프로젝트 러너를 만들려면:

  1. GitLab Runner를 설치합니다.
  2. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  3. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  4. Runners를 펼칩니다.
  5. Project runners 섹션에서 URL과 토큰을 확인합니다.
  6. 러너를 등록합니다.

이제 러너가 프로젝트에 대해 활성화됩니다.

프로젝트 러너 일시 중지 또는 재개#

사전 조건:

  • 관리자이거나 프로젝트의 유지 관리자 역할이 있어야 합니다.

GitLab 인스턴스에서 할당된 프로젝트에서 잡을 수락하지 않도록 프로젝트 러너를 일시 중지할 수 있습니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Assigned project runners 섹션에서 러너를 찾습니다.
  5. 러너 오른쪽:
    • 러너를 일시 중지하려면 Pause ([pause])를 선택한 다음 Pause를 선택합니다.
    • 러너를 재개하려면 Resume ([play])를 선택합니다.

프로젝트 러너 삭제#

사전 조건:

  • 관리자이거나 프로젝트의 유지 관리자 역할이 있어야 합니다.
  • 두 개 이상의 프로젝트에 할당된 프로젝트 러너는 삭제할 수 없습니다. 러너를 삭제하기 전에 활성화된 모든 프로젝트에서 비활성화해야 합니다.

프로젝트 러너를 삭제하면 GitLab 인스턴스에서 영구적으로 삭제되어 프로젝트에서 더 이상 사용할 수 없습니다. 러너가 잡을 수락하지 않도록 일시적으로 중지하려면 러너를 일시 중지할 수 있습니다.

러너를 삭제해도 구성은 여전히 러너 호스트의 config.toml 파일에 존재합니다. 삭제된 러너의 구성이 이 파일에 여전히 있으면 러너 호스트는 계속 GitLab에 연결합니다. 불필요한 API 트래픽을 방지하려면 삭제된 러너의 등록을 해제해야 합니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Assigned project runners 섹션에서 러너를 찾습니다.
  5. 러너 오른쪽에서 Remove runner를 선택합니다.
  6. 러너를 삭제하려면 Remove를 선택합니다.

다른 프로젝트에 프로젝트 러너 활성화#

프로젝트 러너가 만들어지면 다른 프로젝트에 대해 활성화할 수 있습니다.

사전 조건: 다음 프로젝트에 대해 유지 관리자 또는 소유자 역할이 있어야 합니다:

  • 러너가 이미 활성화된 프로젝트.
  • 러너를 활성화하려는 프로젝트.
  • 프로젝트 러너는 잠금되지 않아야 합니다.

프로젝트에 프로젝트 러너를 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Project runners 영역에서 원하는 러너 옆에 Enable for this project를 선택합니다.

활성화된 모든 프로젝트에서 프로젝트 러너를 편집할 수 있습니다. 잠금 해제 및 태그와 설명 편집을 포함한 수정 사항은 러너를 사용하는 모든 프로젝트에 영향을 미칩니다.

관리자는 여러 프로젝트에 대해 러너를 활성화할 수 있습니다.

프로젝트 러너가 다른 프로젝트에 활성화되지 않도록 방지#

프로젝트 러너를 "잠금" 상태로 구성하여 다른 프로젝트에 활성화될 수 없도록 할 수 있습니다. 이 설정은 처음 러너를 등록할 때 활성화할 수 있지만 나중에 변경할 수도 있습니다.

프로젝트 러너를 잠금 또는 잠금 해제하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. 잠금 또는 잠금 해제할 프로젝트 러너를 찾습니다. 활성화되어 있는지 확인합니다. 인스턴스 또는 그룹 러너는 잠금할 수 없습니다.
  5. Edit (✏️)를 선택합니다.
  6. Lock to current projects 체크박스를 선택합니다.
  7. Save changes를 선택합니다.

러너 상태#

러너는 다음 상태 중 하나를 가질 수 있습니다.

상태 설명
online 러너가 지난 2시간 내에 GitLab에 연락했으며 잡을 실행할 수 있습니다.
offline 러너가 2시간 이상 GitLab에 연락하지 않았으며 잡을 실행할 수 없습니다. 러너를 온라인 상태로 전환할 수 있는지 확인하십시오.
stale 러너가 7일 이상 GitLab에 연락하지 않았습니다. 러너가 7일 이상 전에 만들어졌지만 인스턴스에 연락한 적이 없는 경우도 오래됨으로 간주됩니다.
never_contacted 러너가 GitLab에 연락한 적이 없습니다. 러너가 GitLab에 연락하도록 하려면 gitlab-runner run을 실행하십시오.

오래된 러너 관리자 정리#

GitLab은 데이터베이스를 효율적으로 유지하기 위해 오래된 러너 관리자를 주기적으로 삭제합니다. 러너가 GitLab 인스턴스에 연락하면 연결이 다시 생성됩니다.

러너 성능 통계 보기#

히스토리

관리자로서 러너 통계를 보고 러너 플릿의 성능에 대해 알아볼 수 있습니다.

잡 큐 중간 시간 값은 인스턴스 러너가 실행한 가장 최근 100개의 잡의 큐 대기 시간을 샘플링하여 계산됩니다. 최신 5000개의 러너에서의 잡만 고려됩니다.

중간값은 50번째 백분위수에 해당하는 값입니다. 잡의 절반은 중간값보다 더 오래 큐에 있고, 절반은 중간값보다 짧게 큐에 있습니다.

러너 통계를 보려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. View metrics를 선택합니다.

업그레이드가 필요한 러너 확인#

히스토리

사전 조건:

  • 인스턴스 러너를 보기 위한 관리자 접근 권한.
  • 그룹 러너를 보기 위한 유지 관리자 또는 소유자 역할.

러너에서 사용되는 GitLab Runner 버전은 최신 상태로 유지되어야 합니다.

업그레이드가 필요한 러너를 확인하려면:

  1. 러너 목록을 봅니다:

    • 그룹의 경우:
      1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
      2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
    • 인스턴스의 경우:
      1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
      2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  2. 러너 목록 위에서 상태를 봅니다:

    • Outdated - recommended: 러너에 최신 PATCH 버전이 없어 보안 또는 높은 심각도 버그에 취약할 수 있습니다. 또는 러너가 GitLab 인스턴스보다 하나 이상의 MAJOR 버전이 뒤처져 있어 일부 기능이 사용 불가능하거나 제대로 작동하지 않을 수 있습니다.
    • Outdated - available: 최신 버전이 사용 가능하지만 업그레이드가 긴급하지 않습니다.
  3. 상태별로 목록을 필터링하여 업그레이드가 필요한 개별 러너를 확인합니다.

러너의 IP 주소 확인#

러너 문제를 해결하려면 러너의 IP 주소를 알아야 할 수 있습니다. GitLab은 러너가 잡을 폴링할 때 HTTP 요청의 소스를 보고 IP 주소를 저장하고 표시합니다. GitLab은 업데이트될 때마다 러너의 IP 주소를 자동으로 업데이트합니다.

인스턴스 러너와 프로젝트 러너의 IP 주소는 서로 다른 위치에서 찾을 수 있습니다.

인스턴스 러너의 IP 주소 확인#

사전 조건:

  • 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.

인스턴스 러너의 IP 주소를 확인하려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. 테이블에서 러너를 찾아 IP Address 열을 봅니다.

인스턴스 러너의 IP 주소 열을 보여주는 관리자 영역

프로젝트 러너의 IP 주소 확인#

프로젝트 러너의 IP 주소를 찾으려면 해당 프로젝트의 소유자 역할이 있어야 합니다.

  1. 프로젝트의 Settings > CI/CD로 이동하여 Runners 섹션을 펼칩니다.
  2. 러너 이름을 선택하고 IP Address 행을 찾습니다.

프로젝트 러너의 IP 주소 필드를 보여주는 러너 세부 정보 페이지

러너 구성에 유지 관리 메모 추가#

히스토리
  • 관리자를 위해 GitLab 15.1에서 도입.
  • 그룹 및 프로젝트에 대해 GitLab 18.2에서 사용 가능.

러너를 문서화하기 위해 유지 관리 메모를 추가할 수 있습니다. 러너를 편집할 수 있는 사용자는 러너 세부 정보를 볼 때 메모를 볼 수 있습니다.

이 기능을 사용하여 러너 구성 변경과 관련된 결과 또는 문제를 다른 사람에게 알릴 수 있습니다.

프로젝트 및 그룹에서 러너 등록 토큰 사용 활성화#

히스토리
Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

GitLab 17.0에서는 모든 GitLab 인스턴스에서 러너 등록 토큰 사용이 비활성화됩니다.

사전 조건:

프로젝트 및 그룹에서 러너 등록 토큰 사용을 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Allow members of projects and groups to create runners with runner registration tokens 토글을 활성화합니다.

러너 관리

Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab Runner에는 다음과 같은 유형의 러너가 있으며, 접근 권한을 부여할 대상에 따라 사용 가능합니다: 인스턴스 러너는 GitLab 인스턴스의 모든 프로젝트에서 사용할 수 있습니다. 비슷한 요구사항을 가진 여러 잡이 있을 때 인스턴스 러너를 사용합니다.

GitLab Runner에는 다음과 같은 유형의 러너가 있으며, 접근 권한을 부여할 대상에 따라 사용 가능합니다:

  • 인스턴스 러너는 GitLab 인스턴스의 모든 그룹 및 프로젝트에서 사용할 수 있습니다.
  • 그룹 러너는 그룹의 모든 프로젝트 및 서브그룹에서 사용할 수 있습니다.
  • 프로젝트 러너는 특정 프로젝트와 연결됩니다. 일반적으로 프로젝트 러너는 한 번에 하나의 프로젝트에서 사용됩니다.

인스턴스 러너#

인스턴스 러너는 GitLab 인스턴스의 모든 프로젝트에서 사용할 수 있습니다.

비슷한 요구사항을 가진 여러 잡이 있을 때 인스턴스 러너를 사용합니다. 많은 프로젝트를 위해 여러 러너가 유휴 상태로 있는 대신, 여러 프로젝트를 처리하는 몇 개의 러너를 가질 수 있습니다.

GitLab Self-Managed를 사용하는 경우, 관리자는:

GitLab.com을 사용하는 경우:

러너 인증 토큰으로 인스턴스 러너 만들기#

히스토리

사전 조건:

  • 관리자여야 합니다.

러너를 만들면 등록에 사용하는 러너 인증 토큰이 할당됩니다. 러너는 잡 큐에서 잡을 가져올 때 GitLab 인증에 이 토큰을 사용합니다.

인스턴스 러너를 만들려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. Create instance runner를 선택합니다.
  4. GitLab Runner가 설치된 운영 체제를 선택합니다.
  5. Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없는 경우 Run untagged를 선택합니다.
  6. 선택 사항. Runner description 필드에 GitLab에 표시될 러너 설명을 추가합니다.
  7. 선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
  8. Create runner를 선택합니다.
  9. 명령줄에서 러너를 등록하려면 화면의 지시를 따릅니다. 명령줄에서 묻는 질문:
    • GitLab instance URL의 경우, GitLab 인스턴스의 URL을 사용합니다. 예를 들어, 프로젝트가 gitlab.example.com/yourname/yourproject에서 호스팅되는 경우, GitLab 인스턴스 URL은 https://gitlab.example.com입니다.
    • executor의 경우, 실행기 유형을 입력합니다. 실행기는 러너가 잡을 실행하는 환경입니다.

API를 사용하여 러너를 만들 수도 있습니다.

Note

러너 인증 토큰은 등록 중에 제한된 시간 동안 UI에 표시됩니다. 러너를 등록한 후 인증 토큰은 config.toml에 저장됩니다.

등록 토큰으로 인스턴스 러너 만들기 (더 이상 사용되지 않음)#

Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

사전 조건:

  • 러너 등록 토큰은 Admin 영역에서 활성화되어야 합니다.
  • 관리자여야 합니다.

인스턴스 러너를 만들려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. Register an instance runner를 선택합니다.
  4. 등록 토큰을 복사합니다.
  5. 러너를 등록합니다.

인스턴스 러너 일시 중지 또는 재개#

사전 조건:

  • 관리자여야 합니다.

GitLab 인스턴스의 그룹 및 프로젝트에서 잡을 수락하지 않도록 러너를 일시 중지할 수 있습니다.

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 러너 목록에서 러너 오른쪽:
    • 러너를 일시 중지하려면 Pause ([pause])를 선택합니다.
    • 러너를 재개하려면 Resume ([play])를 선택합니다.

인스턴스 러너 삭제#

사전 조건:

  • 관리자여야 합니다.

인스턴스 러너를 삭제하면 GitLab 인스턴스에서 영구적으로 삭제되어 그룹 및 프로젝트에서 더 이상 사용할 수 없습니다. 러너가 잡을 수락하지 않도록 일시적으로 중지하려면 러너를 일시 중지할 수 있습니다.

단일 또는 여러 인스턴스 러너를 삭제하려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 인스턴스 러너를 삭제합니다:
    • 단일 러너를 삭제하려면 러너 옆에서 Delete runner ([remove])를 선택합니다.
    • 여러 인스턴스 러너를 삭제하려면 각 러너의 체크박스를 선택하고 Delete selected를 선택합니다.
    • 모든 러너를 삭제하려면 러너 목록 상단의 체크박스를 선택하고 Delete selected를 선택합니다.
  5. Permanently delete runner를 선택합니다.

프로젝트에 인스턴스 러너 활성화#

GitLab.com에서는 인스턴스 러너가 모든 프로젝트에서 기본적으로 활성화됩니다.

GitLab Self-Managed에서는 관리자가 모든 새 프로젝트에 대해 활성화할 수 있습니다.

기존 프로젝트의 경우, 관리자가 설치하고 등록해야 합니다.

프로젝트에 인스턴스 러너를 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Turn on instance runners for this project 토글을 활성화합니다.

그룹에 인스턴스 러너 활성화#

그룹에 인스턴스 러너를 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Turn on instance runners for this group 토글을 활성화합니다.

프로젝트에 인스턴스 러너 비활성화#

개별 프로젝트 또는 그룹에 대해 인스턴스 러너를 비활성화할 수 있습니다. 프로젝트 또는 그룹의 소유자 역할이 있어야 합니다.

프로젝트에 인스턴스 러너를 비활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Instance runners 영역에서 Turn on runners for this project 토글을 끕니다.

인스턴스 러너는 다음 경우에 프로젝트에 대해 자동으로 비활성화됩니다:

  • 상위 그룹의 인스턴스 러너 설정이 비활성화된 경우, 그리고
  • 프로젝트에서 이 설정을 재정의하는 것이 허용되지 않는 경우.

그룹에 인스턴스 러너 비활성화#

그룹에 인스턴스 러너를 비활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Enable instance runners for this group 토글을 끕니다.
  5. 선택 사항. 개별 프로젝트 또는 서브그룹에서 인스턴스 러너를 활성화할 수 있도록 허용하려면 Allow projects and subgroups to override the group setting을 선택합니다.

인스턴스 러너가 잡을 선택하는 방법#

인스턴스 러너는 공정 사용 큐를 사용하여 잡을 처리합니다. 이 큐는 프로젝트가 수백 개의 잡을 만들고 사용 가능한 인스턴스 러너 리소스를 모두 사용하는 것을 방지합니다.

공정 사용 큐 알고리즘은 인스턴스 러너에서 이미 실행 중인 잡의 수가 가장 적은 프로젝트를 기준으로 잡을 할당합니다.

예를 들어, 다음 잡이 큐에 있는 경우:

  • 프로젝트 1의 잡 1
  • 프로젝트 1의 잡 2
  • 프로젝트 1의 잡 3
  • 프로젝트 2의 잡 4
  • 프로젝트 2의 잡 5
  • 프로젝트 3의 잡 6

여러 CI/CD 잡이 동시에 실행되는 경우, 공정 사용 알고리즘은 다음 순서로 잡을 할당합니다:

  1. 잡 1이 첫 번째입니다. 실행 중인 잡이 없는 프로젝트(즉, 모든 프로젝트)에서 가장 낮은 잡 번호를 가지고 있기 때문입니다.
  2. 잡 4가 다음입니다. 실행 중인 잡이 없는 프로젝트(프로젝트 1은 실행 중인 잡이 있음)에서 가장 낮은 잡 번호가 이제 4이기 때문입니다.
  3. 잡 6이 다음입니다. 실행 중인 잡이 없는 프로젝트(프로젝트 1과 2는 실행 중인 잡이 있음)에서 가장 낮은 잡 번호가 이제 6이기 때문입니다.
  4. 잡 2가 다음입니다. 실행 중인 잡의 수가 가장 적은 프로젝트(각각 1개)에서 가장 낮은 잡 번호이기 때문입니다.
  5. 잡 5가 다음입니다. 프로젝트 1은 이제 2개의 잡이 실행 중이고 잡 5는 프로젝트 2와 3 사이에서 가장 낮은 잡 번호이기 때문입니다.
  6. 마지막으로 잡 3은 남은 유일한 잡이기 때문입니다.

한 번에 하나의 잡만 실행되는 경우, 공정 사용 알고리즘은 다음 순서로 잡을 할당합니다:

  1. 잡 1이 먼저 선택됩니다. 실행 중인 잡이 없는 프로젝트(즉, 모든 프로젝트)에서 가장 낮은 잡 번호를 가지고 있기 때문입니다.
  2. 잡 1이 완료됩니다.
  3. 잡 2가 다음입니다. 잡 1이 완료되었으므로 모든 프로젝트의 실행 중인 잡이 다시 0이 되었고, 2가 사용 가능한 가장 낮은 잡 번호이기 때문입니다.
  4. 잡 4가 다음입니다. 프로젝트 1이 잡을 실행 중이므로, 4는 실행 중인 잡이 없는 프로젝트(프로젝트 2와 3)에서 가장 낮은 번호이기 때문입니다.
  5. 잡 4가 완료됩니다.
  6. 잡 5가 다음입니다. 잡 4가 완료되었으므로 프로젝트 2에 다시 실행 중인 잡이 없기 때문입니다.
  7. 잡 6이 다음입니다. 프로젝트 3이 실행 중인 잡이 없는 유일한 프로젝트이기 때문입니다.
  8. 마지막으로 잡 3은 남은 유일한 잡이기 때문입니다.

그룹 러너#

그룹의 모든 프로젝트에서 러너 집합에 접근하려면 그룹 러너를 사용합니다.

그룹 러너는 선입선출(FIFO) 큐를 사용하여 잡을 처리합니다.

러너 인증 토큰으로 그룹 러너 만들기#

히스토리
  • GitLab 15.10에서 도입. create_runner_workflow_for_namespace 플래그 뒤에 배포됨. 기본적으로 비활성화됨.
  • GitLab 16.0에서 기본 활성화.
  • GitLab 16.2에서 일반 공개. 기능 플래그 create_runner_workflow_for_admin 제거됨.

사전 조건:

  • 그룹의 소유자 역할이 있어야 합니다.

GitLab Self-Managed 또는 GitLab.com을 위한 그룹 러너를 만들 수 있습니다. 러너를 만들면 등록에 사용하는 러너 인증 토큰이 할당됩니다. 러너는 잡 큐에서 잡을 가져올 때 GitLab 인증에 이 토큰을 사용합니다.

그룹 러너를 만들려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. Create group runner를 선택합니다.
  4. Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없는 경우 Run untagged를 선택합니다.
  5. 선택 사항. Runner description 필드에 GitLab에 표시될 러너 설명을 추가합니다.
  6. 선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
  7. Create runner를 선택합니다.
  8. GitLab Runner가 설치된 플랫폼을 선택합니다.
  9. 화면의 지시를 완료합니다:
    • Linux, macOS, Windows의 경우, 명령줄에서 묻는 질문:
      • GitLab instance URL의 경우, GitLab 인스턴스의 URL을 사용합니다. 예를 들어, 프로젝트가 gitlab.example.com/yourname/yourproject에서 호스팅되는 경우, GitLab 인스턴스 URL은 https://gitlab.example.com입니다.
      • executor의 경우, 실행기 유형을 입력합니다. 실행기는 러너가 잡을 실행하는 환경입니다.
    • Google Cloud의 경우, Google Cloud에서 러너 프로비저닝을 참조하십시오.

API를 사용하여 러너를 만들 수도 있습니다.

Note

러너 인증 토큰은 등록 중에 짧은 시간 동안만 UI에 표시됩니다.

등록 토큰으로 그룹 러너 만들기 (더 이상 사용되지 않음)#

히스토리
  • 경로가 Settings > CI/CD > Runners에서 변경되었습니다.
Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

사전 조건:

  • 최상위 그룹에서 러너 등록 토큰이 활성화되어야 합니다.
  • 그룹의 소유자 역할이 있어야 합니다.

그룹 러너를 만들려면:

  1. GitLab Runner를 설치합니다.
  2. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  3. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  4. 오른쪽 상단 모서리에서 Register a group runner를 선택합니다.
  5. Show runner installation and registration instructions를 선택합니다. 이 지침에는 러너를 등록하기 위한 토큰, URL 및 명령이 포함됩니다.

또는 등록 토큰을 복사하고 러너를 등록하는 방법에 대한 문서를 따를 수 있습니다.

그룹 러너 보기#

히스토리
  • 유지 관리자 역할의 사용자가 그룹 러너를 볼 수 있는 기능이 GitLab 16.4에서 도입.

사전 조건:

  • 그룹의 유지 관리자 또는 소유자 역할이 있어야 합니다.

그룹 및 해당 서브그룹과 프로젝트의 모든 러너를 볼 수 있습니다. GitLab Self-Managed 또는 GitLab.com에서 이 작업을 수행할 수 있습니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.

상속된 그룹 러너만 표시하도록 필터링#

히스토리
  • GitLab 15.5에서 도입.
  • GitLab 15.5에서 일반 공개. 기능 플래그 runners_finder_all_available 제거됨.

목록의 모든 러너를 표시하거나 인스턴스 또는 다른 그룹에서 상속된 러너만 표시하도록 선택할 수 있습니다.

기본적으로 상속된 러너만 표시됩니다.

인스턴스 러너 및 다른 그룹의 러너를 포함하여 인스턴스에서 사용 가능한 모든 러너를 표시하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. 목록 위에서 Show only inherited 토글을 끕니다.

그룹 러너 일시 중지 또는 재개#

사전 조건:

  • 관리자이거나 그룹의 소유자 역할이 있어야 합니다.

GitLab 인스턴스의 서브그룹 및 프로젝트에서 잡을 수락하지 않도록 러너를 일시 중지할 수 있습니다. 여러 프로젝트에서 사용되는 그룹 러너를 일시 중지하면 러너는 모든 프로젝트에 대해 일시 중지됩니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 러너 목록에서 러너 오른쪽:
    • 러너를 일시 중지하려면 Pause ([pause])를 선택합니다.
    • 러너를 재개하려면 Resume ([play])를 선택합니다.

그룹 러너 삭제#

히스토리
  • 여러 러너 삭제가 GitLab 15.6에서 도입.

사전 조건:

  • 관리자이거나 그룹의 소유자 역할이 있어야 합니다.

그룹 러너를 삭제하면 GitLab 인스턴스에서 영구적으로 삭제되어 서브그룹 및 프로젝트에서 더 이상 사용할 수 없습니다. 러너가 잡을 수락하지 않도록 일시적으로 중지하려면 러너를 일시 중지할 수 있습니다.

단일 또는 여러 그룹 러너를 삭제하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
  3. 검색 상자에 러너 설명을 입력하거나 러너 목록을 필터링합니다.
  4. 그룹 러너를 삭제합니다:
    • 단일 러너를 삭제하려면 러너 옆에서 Delete runner ([remove])를 선택합니다.
    • 여러 인스턴스 러너를 삭제하려면 각 러너의 체크박스를 선택하고 Delete selected를 선택합니다.
    • 모든 러너를 삭제하려면 러너 목록 상단의 체크박스를 선택하고 Delete selected를 선택합니다.
  5. Permanently delete runner를 선택합니다.

오래된 그룹 러너 정리#

히스토리

사전 조건:

  • 그룹의 소유자 역할이 있어야 합니다.

3개월 이상 비활성 상태인 그룹 러너를 정리할 수 있습니다.

그룹 러너는 특정 그룹에서 만들어진 러너입니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Enable stale runner cleanup 토글을 활성화합니다.

오래된 러너 정리 로그 보기#

Sidekiq 로그를 확인하여 정리 결과를 볼 수 있습니다. Kibana에서 다음 쿼리를 사용할 수 있습니다:

{
  "query": {
    "match_phrase": {
      "json.class.keyword": "Ci::Runners::StaleGroupRunnersPruneCronWorker"
    }
  }
}

오래된 러너가 제거된 항목을 필터링합니다:

{
  "query": {
    "range": {
      "json.extra.ci_runners_stale_group_runners_prune_cron_worker.total_pruned": {
        "gte": 1,
        "lt": null
      }
    }
  }
}

프로젝트 러너#

특정 프로젝트에 러너를 사용하려면 프로젝트 러너를 사용합니다. 예를 들어, 다음과 같은 경우:

  • 자격 증명이 필요한 배포 잡과 같은 특정 요구사항을 가진 잡이 있는 경우.
  • 다른 러너와 분리됨으로써 이점을 얻을 수 있는 CI 활동이 많은 프로젝트.

프로젝트 러너를 여러 프로젝트에서 사용하도록 설정할 수 있습니다. 프로젝트 러너는 각 프로젝트에 대해 명시적으로 활성화되어야 합니다.

프로젝트 러너는 선입선출(FIFO) 큐를 사용하여 잡을 처리합니다.

Note

프로젝트 러너는 포크된 프로젝트에서 자동으로 인스턴스화되지 않습니다. 포크는 복제된 저장소의 CI/CD 설정을 복사합니다.

프로젝트 러너 소유권#

러너가 프로젝트에 처음 연결되면 해당 프로젝트가 러너의 소유자가 됩니다.

소유자 프로젝트를 삭제하면:

  1. GitLab은 러너를 공유하는 다른 모든 프로젝트를 찾습니다.
  2. GitLab은 가장 오래된 연결을 가진 프로젝트에 소유권을 할당합니다.
  3. 다른 프로젝트가 러너를 공유하지 않으면 GitLab은 러너를 자동으로 삭제합니다.

소유자 프로젝트에서 러너 할당을 해제할 수 없습니다. 대신 러너를 삭제하십시오.

러너 인증 토큰으로 프로젝트 러너 만들기#

히스토리
  • GitLab 15.10에서 도입. create_runner_workflow_for_namespace 플래그 뒤에 배포됨. 기본적으로 비활성화됨.
  • GitLab 16.0에서 기본 활성화.
  • GitLab 16.2에서 일반 공개. 기능 플래그 create_runner_workflow_for_admin 제거됨.

사전 조건:

  • 프로젝트의 유지 관리자 역할이 있어야 합니다.

GitLab Self-Managed 또는 GitLab.com을 위한 프로젝트 러너를 만들 수 있습니다. 러너를 만들면 러너를 등록하는 데 사용하는 러너 인증 토큰이 할당됩니다. 러너는 잡 큐에서 잡을 가져올 때 GitLab 인증에 이 토큰을 사용합니다.

프로젝트 러너를 만들려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners 섹션을 펼칩니다.
  4. Create project runner를 선택합니다.
  5. GitLab Runner가 설치된 운영 체제를 선택합니다.
  6. Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없는 경우 Run untagged를 선택합니다.
  7. 선택 사항. Runner description 필드에 GitLab에 표시될 러너 설명을 추가합니다.
  8. 선택 사항. Configuration 섹션에 추가 구성을 추가합니다.
  9. Create runner를 선택합니다.
  10. GitLab Runner가 설치된 플랫폼을 선택합니다.
  11. 화면의 지시를 완료합니다:
    • Linux, macOS, Windows의 경우, 명령줄에서 묻는 질문:
      • GitLab instance URL의 경우, GitLab 인스턴스의 URL을 사용합니다. 예를 들어, 프로젝트가 gitlab.example.com/yourname/yourproject에서 호스팅되는 경우, GitLab 인스턴스 URL은 https://gitlab.example.com입니다.
      • executor의 경우, 실행기 유형을 입력합니다. 실행기는 러너가 잡을 실행하는 환경입니다.
    • Google Cloud의 경우, Google Cloud에서 러너 프로비저닝을 참조하십시오.

API를 사용하여 러너를 만들 수도 있습니다.

Note

러너 인증 토큰은 등록 중에 짧은 시간 동안만 UI에 표시됩니다.

등록 토큰으로 프로젝트 러너 만들기 (더 이상 사용되지 않음)#

Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

사전 조건:

  • 최상위 그룹에서 러너 등록 토큰이 활성화되어야 합니다.
  • 프로젝트의 유지 관리자 또는 소유자 역할이 있어야 합니다.

프로젝트 러너를 만들려면:

  1. GitLab Runner를 설치합니다.
  2. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  3. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  4. Runners를 펼칩니다.
  5. Project runners 섹션에서 URL과 토큰을 확인합니다.
  6. 러너를 등록합니다.

이제 러너가 프로젝트에 대해 활성화됩니다.

프로젝트 러너 일시 중지 또는 재개#

사전 조건:

  • 관리자이거나 프로젝트의 유지 관리자 역할이 있어야 합니다.

GitLab 인스턴스에서 할당된 프로젝트에서 잡을 수락하지 않도록 프로젝트 러너를 일시 중지할 수 있습니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Assigned project runners 섹션에서 러너를 찾습니다.
  5. 러너 오른쪽:
    • 러너를 일시 중지하려면 Pause ([pause])를 선택한 다음 Pause를 선택합니다.
    • 러너를 재개하려면 Resume ([play])를 선택합니다.

프로젝트 러너 삭제#

사전 조건:

  • 관리자이거나 프로젝트의 유지 관리자 역할이 있어야 합니다.
  • 두 개 이상의 프로젝트에 할당된 프로젝트 러너는 삭제할 수 없습니다. 러너를 삭제하기 전에 활성화된 모든 프로젝트에서 비활성화해야 합니다.

프로젝트 러너를 삭제하면 GitLab 인스턴스에서 영구적으로 삭제되어 프로젝트에서 더 이상 사용할 수 없습니다. 러너가 잡을 수락하지 않도록 일시적으로 중지하려면 러너를 일시 중지할 수 있습니다.

러너를 삭제해도 구성은 여전히 러너 호스트의 config.toml 파일에 존재합니다. 삭제된 러너의 구성이 이 파일에 여전히 있으면 러너 호스트는 계속 GitLab에 연결합니다. 불필요한 API 트래픽을 방지하려면 삭제된 러너의 등록을 해제해야 합니다.

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Assigned project runners 섹션에서 러너를 찾습니다.
  5. 러너 오른쪽에서 Remove runner를 선택합니다.
  6. 러너를 삭제하려면 Remove를 선택합니다.

다른 프로젝트에 프로젝트 러너 활성화#

프로젝트 러너가 만들어지면 다른 프로젝트에 대해 활성화할 수 있습니다.

사전 조건: 다음 프로젝트에 대해 유지 관리자 또는 소유자 역할이 있어야 합니다:

  • 러너가 이미 활성화된 프로젝트.
  • 러너를 활성화하려는 프로젝트.
  • 프로젝트 러너는 잠금되지 않아야 합니다.

프로젝트에 프로젝트 러너를 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Project runners 영역에서 원하는 러너 옆에 Enable for this project를 선택합니다.

활성화된 모든 프로젝트에서 프로젝트 러너를 편집할 수 있습니다. 잠금 해제 및 태그와 설명 편집을 포함한 수정 사항은 러너를 사용하는 모든 프로젝트에 영향을 미칩니다.

관리자는 여러 프로젝트에 대해 러너를 활성화할 수 있습니다.

프로젝트 러너가 다른 프로젝트에 활성화되지 않도록 방지#

프로젝트 러너를 "잠금" 상태로 구성하여 다른 프로젝트에 활성화될 수 없도록 할 수 있습니다. 이 설정은 처음 러너를 등록할 때 활성화할 수 있지만 나중에 변경할 수도 있습니다.

프로젝트 러너를 잠금 또는 잠금 해제하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. 잠금 또는 잠금 해제할 프로젝트 러너를 찾습니다. 활성화되어 있는지 확인합니다. 인스턴스 또는 그룹 러너는 잠금할 수 없습니다.
  5. Edit (✏️)를 선택합니다.
  6. Lock to current projects 체크박스를 선택합니다.
  7. Save changes를 선택합니다.

러너 상태#

러너는 다음 상태 중 하나를 가질 수 있습니다.

상태 설명
online 러너가 지난 2시간 내에 GitLab에 연락했으며 잡을 실행할 수 있습니다.
offline 러너가 2시간 이상 GitLab에 연락하지 않았으며 잡을 실행할 수 없습니다. 러너를 온라인 상태로 전환할 수 있는지 확인하십시오.
stale 러너가 7일 이상 GitLab에 연락하지 않았습니다. 러너가 7일 이상 전에 만들어졌지만 인스턴스에 연락한 적이 없는 경우도 오래됨으로 간주됩니다.
never_contacted 러너가 GitLab에 연락한 적이 없습니다. 러너가 GitLab에 연락하도록 하려면 gitlab-runner run을 실행하십시오.

오래된 러너 관리자 정리#

GitLab은 데이터베이스를 효율적으로 유지하기 위해 오래된 러너 관리자를 주기적으로 삭제합니다. 러너가 GitLab 인스턴스에 연락하면 연결이 다시 생성됩니다.

러너 성능 통계 보기#

히스토리

관리자로서 러너 통계를 보고 러너 플릿의 성능에 대해 알아볼 수 있습니다.

잡 큐 중간 시간 값은 인스턴스 러너가 실행한 가장 최근 100개의 잡의 큐 대기 시간을 샘플링하여 계산됩니다. 최신 5000개의 러너에서의 잡만 고려됩니다.

중간값은 50번째 백분위수에 해당하는 값입니다. 잡의 절반은 중간값보다 더 오래 큐에 있고, 절반은 중간값보다 짧게 큐에 있습니다.

러너 통계를 보려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. View metrics를 선택합니다.

업그레이드가 필요한 러너 확인#

히스토리

사전 조건:

  • 인스턴스 러너를 보기 위한 관리자 접근 권한.
  • 그룹 러너를 보기 위한 유지 관리자 또는 소유자 역할.

러너에서 사용되는 GitLab Runner 버전은 최신 상태로 유지되어야 합니다.

업그레이드가 필요한 러너를 확인하려면:

  1. 러너 목록을 봅니다:

    • 그룹의 경우:
      1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
      2. 왼쪽 사이드바에서 Build > Runners를 선택합니다.
    • 인스턴스의 경우:
      1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
      2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  2. 러너 목록 위에서 상태를 봅니다:

    • Outdated - recommended: 러너에 최신 PATCH 버전이 없어 보안 또는 높은 심각도 버그에 취약할 수 있습니다. 또는 러너가 GitLab 인스턴스보다 하나 이상의 MAJOR 버전이 뒤처져 있어 일부 기능이 사용 불가능하거나 제대로 작동하지 않을 수 있습니다.
    • Outdated - available: 최신 버전이 사용 가능하지만 업그레이드가 긴급하지 않습니다.
  3. 상태별로 목록을 필터링하여 업그레이드가 필요한 개별 러너를 확인합니다.

러너의 IP 주소 확인#

러너 문제를 해결하려면 러너의 IP 주소를 알아야 할 수 있습니다. GitLab은 러너가 잡을 폴링할 때 HTTP 요청의 소스를 보고 IP 주소를 저장하고 표시합니다. GitLab은 업데이트될 때마다 러너의 IP 주소를 자동으로 업데이트합니다.

인스턴스 러너와 프로젝트 러너의 IP 주소는 서로 다른 위치에서 찾을 수 있습니다.

인스턴스 러너의 IP 주소 확인#

사전 조건:

  • 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.

인스턴스 러너의 IP 주소를 확인하려면:

  1. 오른쪽 상단 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > Runners를 선택합니다.
  3. 테이블에서 러너를 찾아 IP Address 열을 봅니다.

인스턴스 러너의 IP 주소 열을 보여주는 관리자 영역

프로젝트 러너의 IP 주소 확인#

프로젝트 러너의 IP 주소를 찾으려면 해당 프로젝트의 소유자 역할이 있어야 합니다.

  1. 프로젝트의 Settings > CI/CD로 이동하여 Runners 섹션을 펼칩니다.
  2. 러너 이름을 선택하고 IP Address 행을 찾습니다.

프로젝트 러너의 IP 주소 필드를 보여주는 러너 세부 정보 페이지

러너 구성에 유지 관리 메모 추가#

히스토리
  • 관리자를 위해 GitLab 15.1에서 도입.
  • 그룹 및 프로젝트에 대해 GitLab 18.2에서 사용 가능.

러너를 문서화하기 위해 유지 관리 메모를 추가할 수 있습니다. 러너를 편집할 수 있는 사용자는 러너 세부 정보를 볼 때 메모를 볼 수 있습니다.

이 기능을 사용하여 러너 구성 변경과 관련된 결과 또는 문제를 다른 사람에게 알릴 수 있습니다.

프로젝트 및 그룹에서 러너 등록 토큰 사용 활성화#

히스토리
Warning

러너 등록 토큰 전달 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되어 권장되지 않습니다. 러너 생성 워크플로우를 사용하여 러너를 등록할 인증 토큰을 생성합니다. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 정보는 새 러너 등록 워크플로우로 마이그레이션을 참조하십시오.

GitLab 17.0에서는 모든 GitLab 인스턴스에서 러너 등록 토큰 사용이 비활성화됩니다.

사전 조건:

프로젝트 및 그룹에서 러너 등록 토큰 사용을 활성화하려면:

  1. 상단 표시줄에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Runners를 펼칩니다.
  4. Allow members of projects and groups to create runners with runner registration tokens 토글을 활성화합니다.