GitLab Dedicated의 호스트된 러너

Tier: Ultimate Offering: GitLab Dedicated Status: Beta

참고: 이 기능을 사용하려면 GitLab Dedicated의 호스팅 러너를 구독해야 합니다. Dedicated용 호스팅 러너의 폐쇄 베타에 참여하려면 고객 성공 매니저나 계정 담당자에게 문의하십시오.

GitLab 호스팅 러너에서 CI/CD 작업을 실행할 수 있습니다. 이러한 러너는 GitLab에서 관리되며 GitLab Dedicated 인스턴스와 완전히 통합되어 있습니다. Dedicated용 GitLab 호스팅 러너는 GitLab Dedicated 인스턴스와 동일한 지역의 AWS EC2에서 실행되는 자동 확장 인스턴스 러너입니다.

호스팅 러너를 사용하면:

  • 각 작업은 해당 작업에 전용인 새로 프로비저닝된 가상 머신(VM)에서 실행됩니다.
  • 작업이 실행되는 VM은 sudo 액세스 권한을 무한합니다.
  • 저장 공간은 운영 체제, 사전 설치된 소프트웨어 이미지 및 복제된 저장소의 사본으로 공유됩니다. 따라서 작업용으로 사용 가능한 무료 디스크 공간이 감소합니다.
  • 기본적으로 untagged 작업은 소형 Linux x86-64 러너에서 실행됩니다. GitLab 관리자는 GitLab에서 untagged 작업 옵션을 변경할 수 있습니다.

보안

이 섹션은 GitLab 러너 빌드 환경의 보안을 강화하는 추가적인 내장 계층의 개요를 제공합니다.

GitLab Dedicated용 호스팅 러너는 다음과 같이 구성됩니다.

  • 방화벽 규칙은 일시적인 VM에서 공개 인터넷으로의 외부 통신만 허용합니다.
  • 공개 인터넷에서 일시적인 VM으로의 내부 통신은 허용되지 않습니다.
  • 방화벽 규칙은 VM 간 통신을 허용하지 않습니다.
  • 일시적인 러너 VM으로 허용된 유일한 내부 통신은 러너 관리자로부터입니다.
  • 일시적인 러너 VM은 단일 작업에만 사용되며 작업 실행 후에 삭제됩니다.

또한 호스팅 러너에서 AWS 계정으로의 비공개 연결을 활성화할 수 있습니다.

자세한 내용은 GitLab Dedicated용 호스팅 러너 아키텍처 다이어그램을 참조하십시오.

요금

베타 기간 동안 Dedicated용 호스팅 러너는 무료입니다. 자세한 요금 모델은 일반 공개 했을 때 발표될 예정입니다.

Linux용 호스팅 러너

GitLab Dedicated용 Linux 호스팅 러너는 Docker Autoscaler 실행기를 사용합니다. 각 작업에는 완전히 격리된 일시적인 가상 머신(VM)의 Docker 환경이 제공되며 최신 버전의 Docker Engine에서 실행됩니다.

Linux용 머신 유형(x86-64)

다음과 같은 머신 유형이 Linux x86-64용 호스팅 러너로 제공됩니다.

크기 러너 태그 vCPU 메모리 저장 공간
linux-small-amd64 (기본값) 2 8 GB 30 GB
linux-medium-amd64 4 16 GB 50 GB
linux-large-amd64 8 32 GB 100 GB
X-큰 linux-xlarge-amd64 16 64 GB 200 GB
2X-큰 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 주소를 사용하기 때문입니다.

율 제한을 피하려면 다음을 대신 사용하십시오.

Docker in Docker 지원

러너는 privileged 모드로 구성되어 있어 Docker in Docker를 지원하여 도커 이미지를 네이티브로 빌드하거나 격리된 작업 내에서 여러 컨테이너를 실행하는 것을 지원합니다.

Switchboard에서 호스팅된 러너 관리

Switchboard를 사용하여 GitLab Dedicated 인스턴스용 호스팅 러너를 생성하고 볼 수 있습니다.

사전 요구 사항:

  • Dedicated용 호스팅 러너를 구독해야 합니다.

Switchboard에서 호스팅 러너 생성

호스팅 러너를 생성하려면:

  1. Switchboard에 로그인합니다.
  2. 페이지 상단에서 Hosted runners를 선택합니다.
  3. New hosted runner을 선택합니다.
  4. 러너의 크기를 선택한 후 Create hosted runner를 선택합니다.

호스팅된 러너가 사용 가능해지면 이메일로 알림을 받게 됩니다.

Switchboard에서 호스팅 러너보기

호스팅된 러너를 보려면:

  1. Switchboard에 로그인합니다.
  2. 페이지 상단에서 Hosted runners를 선택합니다.
  3. Runner ID를 복사하여 GitLab에서 액세스하려는 러너의 목록에서 선택할 수 있습니다.

GitLab에서 호스팅된 러너 보기 및 구성하기

GitLab 관리자는 관리자 영역에서 GitLab Dedicated 인스턴스용 호스팅된 러너를 관리할 수 있습니다.

GitLab에서 호스팅된 러너 보기

GitLab Dedicated 인스턴스용 호스팅된 러너를 러너 페이지 및 Fleet 대시보드에서 확인할 수 있습니다.

필수 사항:

  • 관리자여야 합니다.

GitLab에서 호스팅된 러너를 보려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리자를 선택합니다.
  2. CI/CD > 러너를 선택합니다.
  3. (선택 사항) Fleet 대시보드를 선택합니다.

GitLab에서 호스팅된 러너 구성

필수 사항:

  • 관리자여야 합니다.

GitLab Dedicated 인스턴스용 호스팅된 러너를 구성할 수 있으며, 러너 태그의 기본값을 변경하는 등의 작업을 수행할 수 있습니다.

사용 가능한 구성 옵션:

  • 최대 작업 시간 제한 변경
  • 러너를 태그 있는 작업 또는 태그 없는 작업으로 실행하도록 설정합니다.](../../ci/runners/configure_runners.md#for-an-instance-runner-2)

참고: 러너 설명 및 러너 태그에 대한 모든 변경 사항은 GitLab에서 제어되지 않습니다.

GitLab에서 프로젝트나 그룹용 호스팅된 러너 비활성화

기본적으로 GitLab Dedicated 인스턴스의 모든 프로젝트 및 그룹에 호스팅된 러너를 사용할 수 있습니다. GitLab 유지보수자는 프로젝트그룹에 대해 호스팅된 러너를 비활성화할 수 있습니다.

아웃바운드 사설 링크

아웃바운드 사설 링크는 GitLab Dedicated용 호스팅된 러너와 AWS VPC의 서비스 간에 안전한 연결을 생성합니다. 이 연결은 어떠한 트래픽도 공개 인터넷에 노출시키지 않으며, 호스팅된 러너가 다음을 수행할 수 있도록 합니다:

  • 사용자 지정 보안 관리자와 같은 개인 서비스에 액세스합니다.
  • 인프라에 저장된 artifact 또는 작업 이미지를 검색합니다.
  • 인프라에 배포합니다.

GitLab에서 관리하는 러너 계정에는 기본적으로 두 개의 아웃바운드 사설 링크가 존재합니다.

  • GitLab 인스턴스로의 링크
  • GitLab에서 제어하는 Prometheus 인스턴스로의 링크

이러한 링크는 사전 구성되어 있으며 수정할 수 없습니다. 테넌트의 Prometheus 인스턴스는 GitLab에서 관리하며 사용자에게는 접근할 수 없습니다.

다른 VPC 서비스와의 아웃바운드 사설 링크를 사용하려면 수동으로 구성해야 합니다. 자세한 정보는 아웃바운드 사설 링크를 참조하십시오.

IP 범위

GitLab Dedicated용 호스팅된 러너의 IP 범위는 요청에 따라 제공됩니다. IP 범위는 최선을 다해 유지되며 인프라의 변경으로 인해 언제든지 변경될 수 있습니다. 자세한 정보는 고객 성공 관리자 또는 계정 담당자에게 문의하십시오.

작업을 호스팅된 러너로 마이그레이션

작업을 호스팅된 러너를 사용하도록 마이그레이션하려면:

  1. 태그가 없는 작업에 대해 작은 Linux x86-64 러너를 사용합니다.
  2. .gitlab-ci.yml 파일의 작업 구성에 적절한 태그를 추가합니다:

    job_name:
      tags:
        - linux-medium-amd64 # 중간 사이즈의 Linux 러너 사용
    
  3. 태그를 수정하여 기존 작업 구성과 일치시킵니다.

GitLab 관리자는 GitLab에서 인스턴스 러너를 구성하여 태그가 없는 작업을 실행하지 않도록 할 수 있습니다.