Linux의 호스팅 러너
Offering: GitLab.com
GitLab.com의 Linux 호스팅 러너는 Google Cloud Compute Engine에서 실행됩니다. 각 VM은 Google Container-Optimized OS(COS)와 docker+machine 실행기를 실행하는 최신 버전의 Docker Engine을 사용합니다.
GitLab.com의 Linux 호스팅 러너는 Google Cloud Compute Engine에서 실행됩니다. 각 잡은 완전히 격리된 임시 가상 머신(VM)을 가집니다. 기본 리전은 us-east1입니다.
각 VM은 Google Container-Optimized OS(COS)와 docker+machine 실행기를 실행하는 최신 버전의 Docker Engine을 사용합니다.
머신 유형과 기반 프로세서 유형이 변경될 수 있습니다. 특정 프로세서 설계에 최적화된 잡은 일관성 없이 동작할 수 있습니다.
태그 없는 잡은 small Linux x86-64 러너에서 실행됩니다.
Linux - x86-64에 사용 가능한 머신 유형#
GitLab은 Linux x86-64의 호스팅 러너에 대해 다음 머신 유형을 제공합니다.
| 러너 태그 | vCPU | 메모리 | 스토리지 |
|---|---|---|---|
saas-linux-small-amd64 (기본값)
|
2 | 8 GB | 30 GB |
saas-linux-medium-amd64
|
4 | 16 GB | 50 GB |
saas-linux-large-amd64 (Premium 및 Ultimate 전용)
|
8 | 32 GB | 100 GB |
saas-linux-xlarge-amd64 (Premium 및 Ultimate 전용)
|
16 | 64 GB | 200 GB |
saas-linux-2xlarge-amd64 (Premium 및 Ultimate 전용)
|
32 | 128 GB | 200 GB |
Linux - Arm64에 사용 가능한 머신 유형#
GitLab은 Linux Arm64의 호스팅 러너에 대해 다음 머신 유형을 제공합니다.
| 러너 태그 | vCPU | 메모리 | 스토리지 |
|---|---|---|---|
saas-linux-small-arm64
|
2 | 8 GB | 30 GB |
saas-linux-medium-arm64 (Premium 및 Ultimate 전용)
|
4 | 16 GB | 50 GB |
saas-linux-large-arm64 (Premium 및 Ultimate 전용)
|
8 | 32 GB | 100 GB |
Linux Arm의 호스팅 러너에서 Docker-in-Docker를 사용할 때 네트워크 연결 문제가 발생할 수 있습니다. 이 문제는 Google Cloud와 Docker의 최대 전송 단위(MTU) 값이 일치하지 않을 때 발생합니다.
이 문제를 해결하려면 클라이언트 측 Docker 구성에서 --mtu=1400을 설정합니다.
자세한 내용은 이슈 473739를 참조하세요.
컨테이너 이미지#
Linux의 러너는 docker+machine 실행기를 사용하므로
.gitlab-ci.yml 파일에서 image를 정의하여 모든 컨테이너 이미지를 선택할 수 있습니다.
선택한 Docker 이미지가 프로세서 아키텍처와 호환되는지 확인합니다.
이미지가 설정되지 않은 경우 기본값은 ruby:3.1입니다.
Docker-in-Docker 지원#
saas-linux-<size>-<architecture> 태그가 있는 러너는 Docker-in-Docker를 지원하기 위해 privileged 모드로 실행되도록 구성됩니다.
이러한 러너를 사용하면 기본적으로 Docker 이미지를 빌드하거나 격리된 잡에서 여러 컨테이너를 실행할 수 있습니다.
gitlab-org 태그가 있는 러너는 privileged 모드로 실행되지 않으며 Docker-in-Docker 빌드에 사용할 수 없습니다.
.gitlab-ci.yml 파일 예시#
small 이외의 머신 유형을 사용하려면 잡에 tags: 키워드를 추가합니다.
예를 들어:
job_small:
script:
- echo "This job is untagged and runs on the default small Linux x86-64 instance"
job_medium:
tags:
- saas-linux-medium-amd64
script:
- echo "This job runs on the medium Linux x86-64 instance"
job_large:
tags:
- saas-linux-large-arm64
script:
- echo "This job runs on the large Linux Arm64 instance"
