GitLab Runner 차트 사용하기
GitLab Runner 하위 차트는 CI 작업을 실행하는 GitLab Runner를 제공합니다. 기본적으로 활성화되어 있으며, s3 호환 객체 저장소를 사용하여 캐싱을 지원하여 즉시 사용할 수 있어야 합니다.
경고: 기본 구성의 포함된 GitLab Runner 차트는 제품용으로 의도되지 않았습니다. 이는 모든 GitLab 서비스가 클러스터에 배포되는 증명 프로젝트(PoC) 구현으로 제공됩니다. 제품 배포의 경우 보안 및 성능상의 이유로 별도의 머신에 GitLab Runner를 설치하세요. 자세한 정보는 참조 아키텍처 문서를 참조하세요.
요구 사항
이 차트는 registrationToken
을 자동 등록하기 위해 shared-secrets Job에 의존합니다. 기존의 GitLab 인스턴스와 함께 독립형 차트로 실행할 계획이라면 실행 중인 GitLab 인스턴스에서 표시된 registrationToken
과 동일하게 gitlab-runner
시크릿에 수동으로 설정해야 합니다.
구성
자세한 정보는 사용 및 구성에 대한 문서를 참조하세요.
독립형 러너 배포
기본적으로 우리는 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
키 하위에서 사용할 수 있습니다.