GitLab Runner 차트 사용
GitLab Runner 서브차트는 CI 작업을 실행하는 데 사용되는 GitLab Runner를 제공합니다. 기본적으로 활성화되며 S3 호환 객체 스토리지를 사용하여 캐싱을 지원하므로 즉시 사용할 수 있어야 합니다.
경고: 포함된 GitLab Runner 차트의 기본 구성은 운영용으로 사용하기에 적합하지 않습니다. 이는 모든 GitLab 서비스가 클러스터에 배포되는 컨셉트 증명(PoC) 구현으로 제공됩니다. 운영 배포의 경우 보안 및 성능상의 이유로 GitLab Runner를 별도의 머신에 설치하셔야 합니다. 더 많은 정보는 참조 아키텍처 문서를 참조하세요.
요구 사항
GitLab 16.0에서 러너 생성 워크플로우를 변경하여 러너 인증 토큰을 사용하도록 했습니다. 등록 토큰을 사용하는 레거시 워크플로우는 기본적으로 비활성화되어 있으며 GitLab 17.0에서 제거될 예정입니다. 권장되는 워크플로우를 사용하려면:
- 인증 토큰을 생성하세요.
- 러너 시크릿(
<release>-gitlab-runner-secret
)을 수동으로 업데이트하십시오. 구성은shared-secrets
작업에서 처리되지 않습니다. -
gitlab-runner.runners.locked
를null
로 설정하세요:gitlab-runner: runners: locked: null
레거시 워크플로우를 사용하려면(권장되지 않음):
- 레거시 워크플로우를 다시 활성화해야 합니다.
- 등록 토큰은
shared-secrets
작업에 의해 채워집니다. - 레거시 워크플로우 지원이 제거될 예정인 GitLab 18.0 이전에 새 워크플로우로 마이그레이션해야 합니다.
구성
더 많은 정보를 보려면 사용 및 구성에 대한 문서를 참조하세요.
독립적인 러너 배포
기본적으로 gitlabUrl
을 추론하고 자동으로 등록 토큰을 생성하며 migrations
차트를 통해 생성하는 것입니다. 이 동작은 실행 중인 GitLab 인스턴스로 배포하려면 작동하지 않습니다.
이 경우 gitlabUrl
값을 실행 중인 GitLab 인스턴스의 URL로 설정해야 합니다. 또한 실행 중인 GitLab에서 제공된 registrationToken
으로 gitlab-runner
시크릿을 수동으로 생성해야 합니다.
Docker-in-Docker 사용
Docker-in-Docker를 실행하려면 러너 컨테이너에 필요한 권한을 부여하기 위해 privileged
값을 true
로 설정해야 합니다. 이는 기본적으로 true
로 설정되지 않은 이유에 대한 상위 문서를 참조하세요.
보안 문제
특권이 있는 컨테이너에는 확장된 권한이 있으며, 예를 들어 호스트에서 임의의 파일을 마운트할 수 있습니다. 중요한 내용이 옆에서 실행되지 않도록 환경을 격리시킨 후 컨테이너를 실행하는지 확인하십시오.
기본 러너 구성
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
키 하위에서 사용할 수 있습니다.