러너

러너 (Runners)

러너는 파이프라인 안의 GitLab CI/CD 잡을 실제로 실행해 주는 에이전트예요. GitLab Runner 애플리케이션이 동작하는 곳이며, .gitlab-ci.yml 파일에 정의된 빌드·테스트·배포 및 각종 CI/CD 태스크를 수행합니다.

출처: GitLab Docs — Runners

러너 실행 흐름

러너가 잡을 실행하기까지의 흐름을 순서대로 보면 이래요.

  1. 러너를 먼저 GitLab에 등록해야 해요. 등록하면 러너와 GitLab 사이에 지속적인 연결이 생깁니다.
  2. 파이프라인이 트리거되면 GitLab이 등록된 러너들이 처리할 수 있도록 잡을 내보내요.
  3. 조건에 맞는 러너가 잡을 가져가서 실행합니다. 러너 하나당 잡 하나를 처리하죠.
  4. 실행 결과가 실시간으로 GitLab에 보고돼요.

잡 스케줄링과 실행

CI/CD 잡이 실행되어야 할 때 GitLab은 .gitlab-ci.yml에 정의된 태스크를 바탕으로 잡을 만들고 대기열에 넣어요. 그러면 GitLab이 다음 조건이 맞는 사용 가능한 러너를 찾습니다.

  • 러너 태그 (Runner tags)
  • 러너 유형 (공유·그룹 등)
  • 러너 상태와 용량
  • 필요로 하는 기능 지원 여부

잡을 배정받은 러너는 실행 환경을 준비하고 .gitlab-ci.yml에 지정된 명령을 수행해요.

러너 유형

잡을 실행할 러너를 고를 때는 크게 두 갈래로 나눌 수 있어요.

  • GitLab 호스팅 러너: GitLab.com이나 GitLab Dedicated 사용자를 위한 러너예요.
  • 자체 관리 (Self-managed) 러너: 모든 GitLab 설치 환경에서 쓸 수 있는 러너죠.

러너는 범위에 따라 그룹 러너, 프로젝트 러너, 인스턴스 러너로 나뉘는데, GitLab 호스팅 러너는 인스턴스 러너에 속합니다.

GitLab 호스팅 러너

GitLab이 완전히 관리하는 러너예요. 별도 설정 없이 바로 쓸 수 있고, 잡마다 새 VM에서 실행되며, Linux·Windows·macOS 옵션을 제공해요. 수요에 따라 자동으로 스케일링되죠. 유지보수가 필요 없는 CI/CD를 원하거나, 인프라 관리 없이 빠르게 셋업하고 싶을 때, 실행 간 격리가 필요한 표준 빌드 환경이라면 호스팅 러너가 좋은 선택이에요.

자체 관리 러너

직접 설치하고 관리하는 러너예요. 자기 인프라 위에서 돌고 필요에 따라 커스터마이즈할 수 있으며, Shell·Docker·Kubernetes 등 다양한 실행기(executor)를 지원합니다. 특정 프로젝트나 그룹에 한정해 쓰게 할 수도 있어요. 사용자 정의 구성이 필요하거나, 사내망 안에서 잡을 돌리거나, 세밀한 보안 제어가 필요할 때, 프로젝트·그룹 러너가 필요할 때, 러너 재사용으로 속도를 최적화하고 싶을 때 자체 관리 러너를 씁니다.

더 알아보기