GitLab Runner Autoscaling
공개 클라우드 인스턴스에서 GitLab Runner 자동 스케일링을 사용할 수 있습니다. 러너(runner)를 오토스케일러로 구성하면 클라우드 인프라를 활용하여 CI/CD 작업 부하를 증가시킬 수 있으며 동시에 여러 작업을 실행할 수 있습니다.
공개 클라우드 인스턴스를 위한 오토스케일링 옵션 외에도 다음 컨테이너 오케스트레이션 솔루션을 사용하여 러너 플릿을 호스팅하고 확장할 수 있습니다.
- Red Hat OpenShift Kubernetes 클러스터
- Kubernetes 클러스터: AWS EKS, Azure, 온프레미스
- Amazon Elastic Container Services (AWS Fargate) 클러스터
GitLab Runner Autoscaler
GitLab Runner Autoscaler는 Docker Machine에 기반한 오토스케일링 기술의 후속 제품입니다. GitLab Runner Autoscaler의 컴포넌트는 다음과 같습니다.
- Taskscaler: 오토스케일링 로직, 부기록 관리 및 클라우드 제공자 인스턴스 오토스케일링 그룹 생성을 관리합니다.
- Fleeting: 클라우드 제공자 가상 머신의 추상화입니다.
- 클라우드 제공자 플러그인: 대상 클라우드 플랫폼의 API 호출을 처리하며 플러그인 개발 프레임워크를 사용하여 구현됩니다.
GitLab Runner Autoscaler 지원 공개 클라우드 인스턴스
다음 오토스케일링 옵션은 공개 클라우드 컴퓨팅 인스턴스에서 지원됩니다.
다음 GitLab Runner Autoscaler (Status: Beta) | GitLab Runner Docker Machine Autoscaler (GA) | |
---|---|---|
Amazon Web Services EC2 인스턴스 | 예 | 예 |
Google Compute Engine | 예 | 예 |
Microsoft Azure 가상 머신 | 예 | 예 |
GitLab Runner Autoscaler 지원 플랫폼
Executor | Linux | macOS | Windows |
---|---|---|---|
인스턴스 executor | 예 | 예 | 예 |
Docker Autoscaler executor | 예 | 아니오 | 예 |
러너 관리자 구성
Docker Machine Autoscaling 솔루션 및 GitLab Runner Autoscaler를 모두 사용하도록 러너 관리자를 구성해야 합니다.
러너 관리자는 오토스케일링을 위해 여러 러너를 생성하는 유형의 러너입니다. GitLab에서 지속적으로 작업을 폴링하고 새 인스턴스를 생성하여 작업을 실행하기 위해 공개 클라우드 인프라와 상호 작용합니다. 러너 관리자는 GitLab Runner가 설치된 호스트 머신에서 실행해야 합니다. Ubuntu, Debian, CentOS 또는 RHEL과 같이 Docker 및 GitLab Runner에서 지원하는 배포판을 선택하십시오.
- 러너 관리자를 호스트하기 위한 인스턴스를 생성하세요. 이 반드시 (AWS 기준) 스pod 인스턴스나 (GCP, Azure 기준) 스pod 가상 머신이어서는 안 됩니다.
- 인스턴스에 GitLab Runner를 설치하세요.
- 클라우드 제공자 자격 증명을 러너 관리자 호스트 머신에 추가하세요.
GitLab Runner Autoscaler를 위한 자격 증명 구성 예
## credentials_file
[default]
aws_access_key_id=__REDACTED__
aws_secret_access_key=__REDACTED__
GitLab Runner Docker Machine Autoscaling을 위한 자격 증명 구성 예
이 스니펫은 config.toml
파일의 runners.machine 섹션에 있습니다.
[runners.machine]
IdleCount = 1
IdleTime = 1800
MaxBuilds = 10
MachineDriver = "amazonec2"
MachineName = "gitlab-docker-machine-%s"
MachineOptions = [
"amazonec2-access-key=XXXX",
"amazonec2-secret-key=XXXX",
"amazonec2-region=us-central-1",
"amazonec2-vpc-id=vpc-xxxxx",
"amazonec2-subnet-id=subnet-xxxxx",
"amazonec2-zone=x",
"amazonec2-use-private-address=true",
"amazonec2-security-group=xxxxx",
]
러너 자동 스케일링 executor 구성
러너 관리자를 구성한 후에 오토스케일링에 특화된 executor를 구성하세요: