Google Cloud Compute Engine에서 러너 프로비저닝하기
Google Cloud Compute Engine에서 러너 프로비저닝하기
GitLab.com용 프로젝트 또는 그룹 러너를 만들고, 이를 Google Cloud 프로젝트에 프로비저닝할 수 있어요. 러너를 만들 때 GitLab UI가 Google Cloud 프로젝트에 러너를 자동으로 프로비저닝하는 화면 안내와 스크립트를 제공해 줘요.
출처: 문서
본문
러너를 만들면 러너 인증 토큰이 할당돼요. GRIT Terraform 스크립트가 이 토큰을 사용해 러너를 등록해요. 이후 러너는 잡 큐에서 잡을 가져올 때 이 토큰으로 GitLab에 인증해요.
프로비저닝이 끝나면 Google Cloud에서 CI/CD 잡을 실행할 준비가 된 자동 확장(autoscaling) 러너 풀이 준비돼요. 러너 매니저가 임시 러너를 자동으로 생성하죠.
전제 조건은 다음과 같아요.
- 그룹 러너: 그룹에 대한 Owner 역할
- 프로젝트 러너: 프로젝트에 대한 Maintainer 역할
- Google Cloud Platform 프로젝트: Owner IAM 역할
- Google Cloud Platform 프로젝트에 결제 활성화
- Google Cloud 프로젝트의 IAM 역할로 인증된 gcloud CLI 도구
- Terraform v1.5 이상 및 Terraform CLI 도구
- Bash가 설치된 터미널
그룹 또는 프로젝트 러너를 만들어 Google Cloud에 프로비저닝하려면:
-
상단 바에서 Search or go to를 선택하고 그룹을 찾아요.
-
새 러너를 만들어요.
- 새 그룹 러너를 만들려면 Build > Runners > New group runner를 선택해요.
- 새 프로젝트 러너를 만들려면 Settings > CI/CD > Runners > New project runner를 선택해요.
-
Tags 섹션의 Tags 필드에 잡이 실행할 수 있는 잡 태그를 입력해요. 태그가 있는 잡 외에도 태그 없는 잡에 러너를 사용하려면 Run untagged를 선택해요.
-
(선택) Configuration 섹션에서 러너 설명과 추가 구성을 추가해요.
-
Create runner를 선택해요.
-
Platform 섹션에서 Google Cloud를 선택해요.
-
Environment에서 Google Cloud 환경의 다음 세부 정보를 입력해요.
- Google Cloud project ID
- Region
- Zone
- Machine type
-
Set up GitLab Runner에서 Setup instructions를 선택해요. 대화 상자에서:
- 필요한 서비스, 서비스 계정, 권한을 활성화하려면 Configure Google Cloud project에서 Google Cloud 프로젝트마다 Bash 스크립트를 한 번씩 실행해요.
- Install and register GitLab Runner의 구성으로
main.tf파일을 만들어요. GitLab Runner Infrastructure Toolkit (GRIT) 스크립트가 러너 매니저를 실행하기 위한 인프라를 Google Cloud 프로젝트에 프로비저닝해요.
기본적으로 러너는 CI/CD 잡이 없을 때도 VM 인스턴스가 계속 실행될 수 있는 설정으로 구성돼요. 자동 확장 동작을 제어하고 비용을 줄이려면, 매니저 인스턴스에서 러너 구성 파일을 찾아 IdleCount, IdleTime, 인스턴스 상한 같은 매개변수를 조정하려고 [[runners.machine] 섹션](https://docs.gitlab.com/runner/configuration/advanced-configuration/#the-runnersmachine-section)을 편집해요.
스크립트를 실행하면 러너 매니저가 러너 인증 토큰으로 연결돼요. 러너 매니저가 온라인으로 표시되고 잡을 받기 시작하기까지 최대 1분이 걸릴 수 있어요.
더 알아보기
러너의 자동 확장과 비용 최적화를 더 깊이 다루고 싶다면 러너 고급 구성 문서의 [[runners.machine] 섹션](https://docs.gitlab.com/runner/configuration/advanced-configuration/#the-runnersmachine-section)을 참고해요. GitLab.com에서 러너를 만들고 관리하는 전체 흐름은 러너 만들기 워크플로 문서에서 확인할 수 있어요.