GitLab Runner 차트 사용하기
GitLab Runner 서브차트는 CI 작업을 실행하기 위한 GitLab Runner를 제공합니다. 기본적으로 활성화되어 있으며, s3 호환 객체 저장소를 사용하는 캐싱을 지원하여 즉시 사용할 수 있습니다.
이는 모든 GitLab 서비스가 클러스터에 배포된 증명 개념(PoC) 구현으로 제공됩니다.
생산 환경에서 배포하려면 보안 및 성능 이유로
별도의 머신에 GitLab Runner를 설치해야 합니다.
자세한 내용은 참조 아키텍처 문서를 참조하세요.
요구 사항
GitLab 16.0에서는 러너 인증 토큰을 사용하여 러너를 등록하는 새로운 러너 생성 워크플로를 도입했습니다.
등록 토큰을 사용하는 기존 워크플로는 더 이상 지원되지 않으며 GitLab 17.0에서 기본적으로 비활성화됩니다.
GitLab 18.0에서 제거될 예정입니다.
권장 워크플로를 사용하려면:
- 인증 토큰을 생성하세요.
- 구성 설정이
shared-secrets
작업에 의해 처리되지 않으므로,
러너 비밀(<release>-gitlab-runner-secret
)을 수동으로 업데이트하세요. -
gitlab-runner.runners.locked
를null
로 설정하세요:gitlab-runner: runners: locked: null
기존 워크플로를 사용하려면(권장하지 않음):
- 기존 워크플로를 다시 활성화해야 합니다.
- 등록 토큰은
shared-secrets
작업에 의해 채워집니다. - GitLab 18.0 이전에 새로운 워크플로로 마이그레이션해야 합니다.
기존 워크플로에 대한 지원은 제거될 예정입니다.
구성
자세한 내용은 사용 및 구성 문서를 참조하세요.
독립 실행형 러너 배포
기본적으로 gitlabUrl
를 추론하고, 등록 토큰을 자동으로 생성하며,
migrations
차트를 통해 이를 생성합니다.
이 동작은 실행 중인 GitLab 인스턴스와 함께 배포할 경우 작동하지 않습니다.
이 경우 gitlabUrl
값을 실행 중인 GitLab 인스턴스의 URL로 설정해야 합니다.
또한 gitlab-runner
비밀을 수동으로 생성하고, 실행 중인 GitLab에서 제공하는 registrationToken
으로 채워야 합니다.
Docker-in-Docker 사용하기
Docker-in-Docker를 실행하기 위해서는 러너 컨테이너가 필요한 권한에 접근할 수 있도록 privileged가 필요합니다.
이를 활성화하려면 privileged
값을 true
로 설정하세요.
이것이 기본적으로 true
로 설정되지 않는 이유에 대한 내용은 업스트림 문서를 참조하세요.
보안 우려
privileged 컨테이너는 확장된 권한을 가지고 있으며, 예를 들어 실행 중인 호스트에서 임의의 파일을 마운트할 수 있습니다.
중요한 것이 그 옆에 실행되지 않도록 격리된 환경에서 컨테이너를 실행하세요.
기본 러너 구성
GitLab 차트에서 사용되는 기본 러너 구성은 기본적으로 포함된 MinIO를
캐시로 사용하도록 사용자 지정되었습니다.
러너 config
값을 설정하는 경우, 자신의 캐시 구성을 추가로 설정해야 합니다.
gitlab-runner:
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:22.04"
{{- if .Values.global.minio.enabled }}
[runners.cache]
Type = "s3"
Path = "gitlab-runner"
Shared = true
[runners.cache.s3]
ServerAddress = {{ include "gitlab-runner.cache-tpl.s3ServerAddress" . }}
BucketName = "runner-cache"
BucketLocation = "us-east-1"
Insecure = false
{{ end }}
모든 사용자 지정 GitLab Runner 차트 구성은
top-level values.yaml
파일에서
gitlab-runner
키 아래에 있습니다.