- 보안
- 가격
- Linux에서의 호스팅 러너
- Switchboard에서 호스팅된 러너 관리
- GitLab에서 호스팅된 러너 보기 및 구성
- 아웃바운드 개인 링크
- IP 범위
- 작업을 호스팅된 러너로 마이그레이션
GitLab 전용 호스팅 러너
Status: Beta
귀하는 GitLab 호스팅 러너에서 CI/CD 작업을 실행할 수 있습니다. 이 러너는 GitLab에서 관리되며 귀하의 GitLab Dedicated 인스턴스와 완전히 통합되어 있습니다.
GitLab 전용 호스팅 러너는 AWS EC2에서 GitLab Dedicated 인스턴스와 동일한 지역에서 실행되는 자동 확장 인스턴스 러너입니다.
호스팅 러너를 사용할 때:
- 각 작업은 특정 작업 전용으로 프로비저닝된 새 가상 머신(VM)에서 실행됩니다.
- 귀하의 작업이 실행되는 VM은 비밀번호 없이
sudo
접근을 가집니다. - 저장소는 운영 체제, 미리 설치된 소프트웨어를 포함하는 이미지 및 복제된 리포지토리의 복사본에 의해 공유됩니다. 이는 작업을 위한 사용 가능한 무료 디스크 공간이 줄어든다는 것을 의미합니다.
- 기본적으로 태그가 없는 작업은 작은 Linux x86-64 러너에서 실행됩니다. GitLab 관리자는 GitLab에서 태그가 없는 작업 실행 옵션을 변경할 수 있습니다.
보안
이 섹션은 GitLab Runner 빌드 환경의 보안을 강화하는 추가 내장 계층에 대한 개요를 제공합니다.
GitLab 전용 호스팅 러너는 다음과 같이 구성됩니다:
- 방화벽 규칙은 일시적인 VM에서 공용 인터넷으로의 아웃바운드 통신만 허용합니다.
- 공용 인터넷에서 일시적인 VM으로의 인바운드 통신은 허용되지 않습니다.
- 방화벽 규칙은 VM 간의 통신을 허용하지 않습니다.
- 일시적인 VM에 대한 유일한 내부 통신은 러너 관리자에서만 허용됩니다.
- 일시적인 러너 VM은 단일 작업만 수행하며 작업 실행 후 삭제됩니다.
또한 호스팅 러너에서 AWS 계정으로 비공식 연결을 활성화할 수 있습니다.
자세한 내용은 GitLab 전용 호스팅 러너에 대한 아키텍처 다이어그램을 참조하세요.
가격
베타 기간 동안 GitLab Dedicated용 호스팅 러너는 무료입니다. 자세한 가격 모델은 일반 제공 시 발표됩니다.
Linux에서의 호스팅 러너
GitLab Dedicated용 Linux에서의 호스팅 러너는 Docker Autoscaler 실행기를 사용합니다. 각 작업에는 완전히 격리된 일시적인 가상 머신(VM)에서 Docker 환경이 제공되며, 최신 버전의 Docker Engine에서 실행됩니다.
Linux (x86-64)용 머신 유형
다음은 Linux x86-64의 호스팅 러너에 사용할 수 있는 머신 유형입니다.
크기 | 러너 태그 | vCPUs | 메모리 | 저장소 |
---|---|---|---|---|
Small |
linux-small-amd64 (기본) |
2 | 8 GB | 30 GB |
Medium | linux-medium-amd64 |
4 | 16 GB | 50 GB |
Large | linux-large-amd64 |
8 | 32 GB | 100 GB |
X-Large | linux-xlarge-amd64 |
16 | 64 GB | 200 GB |
2X-Large | linux-2xlarge-amd64 |
32 | 128 GB | 200 GB |
기본 러너 태그는 생성 시 할당됩니다. 관리자는 이후 태그 설정을 수정할 수 있습니다 자신의 인스턴스 러너에 대해.
컨테이너 이미지
Linux에서 러너는 Docker Autoscaler 실행기를 사용하므로, .gitlab-ci.yml
파일에 이미지를 정의하여 원하는 컨테이너 이미지를 선택할 수 있습니다. 선택한 Docker 이미지가 기본 프로세서 아키텍처와 호환되는지 확인하세요. 예제 .gitlab-ci.yml
파일을 참조하세요.
이미지가 설정되지 않은 경우 기본값은 ruby:3.1
입니다.
Docker Hub 컨테이너 레지스트리의 이미지를 사용하는 경우, 요금 제한에 직면할 수 있습니다. 이는 GitLab Dedicated가 단일 네트워크 주소 변환(NAT) IP 주소를 사용하기 때문입니다.
요금 제한을 피하려면 다음을 사용하세요:
- GitLab 컨테이너 레지스트리에 저장된 이미지.
- 요금 제한이 없는 다른 공용 레지스트리에 저장된 이미지.
- 의존성 프록시, 풀 스루 캐시 역할.
Docker in Docker 지원
러너는 Docker in Docker를 지원하기 위해 privileged
모드에서 실행되도록 구성되어 있으며, 이를 통해 Docker 이미지를 네이티브로 빌드하거나 격리된 작업 내에서 여러 컨테이너를 실행할 수 있습니다.
Switchboard에서 호스팅된 러너 관리
Switchboard를 사용하여 GitLab Dedicated 인스턴스의 호스팅된 러너를 생성하고 볼 수 있습니다.
사전 조건:
- GitLab Dedicated의 호스팅된 러너에 대한 구독을 구매해야 합니다.
Switchboard에서 호스팅된 러너 생성
호스팅된 러너를 생성하려면:
- Switchboard에 로그인합니다.
- 페이지 상단에서 Hosted runners를 선택합니다.
- New hosted runner를 선택합니다.
- 러너의 크기를 선택한 후 Create hosted runner를 선택합니다.
호스팅된 러너가 사용 준비가 되면 이메일 알림을 받게 됩니다.
Switchboard에서 호스팅된 러너 보기
호스팅된 러너를 보려면:
- Switchboard에 로그인합니다.
- 페이지 상단에서 Hosted runners를 선택합니다.
- 선택 사항. 호스팅된 러너 목록에서 GitLab에서 액세스하고 싶은 러너의 Runner ID를 복사합니다.
GitLab에서 호스팅된 러너 보기 및 구성
GitLab 관리자는 관리 영역에서 GitLab Dedicated 인스턴스의 호스팅된 러너를 관리할 수 있습니다.
GitLab에서 호스팅된 러너 보기
GitLab Dedicated 인스턴스의 호스팅된 러너는 러너 페이지 및 Fleet 대시보드에서 볼 수 있습니다.
사전 조건:
- 관리자가 되어야 합니다.
GitLab에서 호스팅된 러너를 보려면:
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- CI/CD > Runners를 선택합니다.
- 선택 사항. Fleet dashboard를 선택합니다.
GitLab에서 호스팅된 러너 구성
사전 조건:
- 관리자가 되어야 합니다.
GitLab Dedicated 인스턴스의 호스팅된 러너를 구성할 수 있으며, 러너 태그의 기본값을 변경할 수 있습니다.
사용 가능한 구성 옵션은 다음과 같습니다:
참고:
러너 설명 및 러너 태그에 대한 모든 변경 사항은 GitLab에 의해 제어되지 않습니다.
GitLab에서 그룹 또는 프로젝트에 대해 호스팅된 러너 비활성화
기본적으로, 호스팅된 러너는 GitLab 전용 인스턴스의 모든 프로젝트와 그룹에서 사용할 수 있습니다.
GitLab 유지 관리자는 프로젝트 또는 그룹에 대해 호스팅된 러너를 비활성화할 수 있습니다.
아웃바운드 개인 링크
아웃바운드 개인 링크는 GitLab 전용을 위한 호스팅된 러너와 AWS VPC의 서비스 간에 안전한 연결을 생성합니다.
이 연결은 공개 인터넷에 어떤 트래픽도 노출하지 않으며, 호스팅된 러너가 다음을 수행할 수 있도록 합니다:
- 사용자 지정 비밀 관리와 같은 개인 서비스에 접근합니다.
- 인프라에 저장된 아티팩트 또는 작업 이미지를 검색합니다.
- 인프라에 배포합니다.
GitLab 관리 러너 계정의 모든 러너에 대해 기본적으로 두 개의 아웃바운드 개인 링크가 존재합니다:
- GitLab 인스턴스에 대한 링크
- GitLab에서 제어하는 Prometheus 인스턴스에 대한 링크
이 링크는 사전 구성되어 있으며 수정할 수 없습니다. 임차인의 Prometheus 인스턴스는 GitLab에서 관리되며 사용자에게는 접근할 수 없습니다.
다른 VPC 서비스와 아웃바운드 개인 링크를 사용하려면 수동 구성이 필요합니다. 자세한 내용은 아웃바운드 개인 링크를 참조하세요.
IP 범위
GitLab 전용의 호스팅된 러너에 대한 IP 범위는 요청 시 제공됩니다. IP 범위는 최선의 노력에 따라 유지 관리되며 인프라의 변경으로 인해 언제든지 변경될 수 있습니다. 자세한 내용은 고객 성공 관리자 또는 계정 담당자에게 문의하세요.
작업을 호스팅된 러너로 마이그레이션
작업을 호스팅된 러너를 사용하도록 마이그레이션하려면:
-
태그가 없는 작업에 대해 소형 Linux x86-64 러너를 사용합니다.
-
.gitlab-ci.yml
파일에서 작업 구성에 적절한 태그를 추가합니다:job_name: tags: - linux-medium-amd64 # 중간 크기의 Linux 러너 사용
-
기존 작업 구성과 일치하도록 태그를 수정합니다.
GitLab 관리자는 GitLab에서 인스턴스 러너를 구성하여 태그가 없는 작업을 실행하지 않도록 설정할 수 있습니다.