GitLab 러너 투구 차트
GitLab Runner 인스턴스를 Kubernetes 클러스터에 배포하는 공식적인 방법은 gitlab-runnerHelm 차트를 사용하는 것입니다.
이 차트는 GitLab Runner를 다음과 같이 구성합니다.
- GitLab Runner용 Kubernetes 실행기 를 사용하여 실행 합니다.
- GitLab CI/CD에서 수신하는 각각의 새 작업에 대해 지정된 네임스페이스 내에 새 포드를 프로비저닝하여 실행합니다.
전제 조건
- 클러스터에서 GitLab 서버의 API에 연결할 수 있습니다.
- 베타 API가 활성화된 Kubernetes 1.4+.
- kubectlCLI가 로컬에 설치되고 클러스터에 대해 인증되었습니다 .
- 머신에 로컬로 설치된 Helm 클라이언트 .
Helm 차트를 사용하여 GitLab Runner 설치
GitLab Helm 리포지토리를 추가합니다.
helm repo add gitlab https://charts.gitlab.io
Helm 2를 사용하는 경우 Helm도 초기화해야 합니다.
helm init
파일 에 GitLab Runner를 구성 했으면 values.yaml다음을 실행합니다.
# For Helm 2
helm install --namespace <NAMESPACE> --name gitlab-runner -f <CONFIG_VALUES_FILE> gitlab/gitlab-runner
# For Helm 3
helm install --namespace <NAMESPACE> gitlab-runner -f <CONFIG_VALUES_FILE> gitlab/gitlab-runner
어디에:
- <NAMESPACE> GitLab Runner를 설치하려는 Kubernetes 네임스페이스입니다.
- <CONFIG_VALUES_FILE>사용자 정의 구성이 포함된 값 파일의 경로입니다. 생성 하려면 Helm 차트를 사용하여 GitLab Runner 구성 섹션을 참조하세요 .
특정 버전의 GitLab Runner Helm Chart를 설치하려면 명령 에 추가 --version <RUNNER_HELM_CHART_VERSION> 하십시오 .helm install
Helm 차트를 사용하여 GitLab Runner 업그레이드
GitLab Runner를 업그레이드하기 전에 GitLab에서 실행기를 일시 중지하고 모든 작업이 완료되었는지 확인하십시오. 러너를 일시 중지하면 작업 완료 시 권한 부여 오류 와 같은 작업에서 발생하는 문제를 방지할 수 있습니다 .
GitLab Runner Chart가 설치되면 다음을 사용하여 구성 변경 및 차트 업데이트를 수행해야 합니다 helm upgrade.
helm upgrade --namespace <NAMESPACE> -f <CONFIG_VALUES_FILE> <RELEASE-NAME> gitlab/gitlab-runner
어디에:
- <NAMESPACE> GitLab Runner가 설치된 Kubernetes 네임스페이스입니다.
- <CONFIG_VALUES_FILE>사용자 정의 구성이 포함된 값 파일의 경로입니다. 생성 하려면 Helm 차트를 사용하여 GitLab Runner 구성 섹션을 참조하세요 .
- <RELEASE-NAME>차트를 설치할 때 지정한 이름입니다. Helm 차트를 사용 하여 GitLab Runner 설치 섹션에서 gitlab-runner.
최신 버전이 아닌 특정 버전의 GitLab Runner Helm Chart로 업데이트하려면 명령 에 추가 --version <RUNNER_HELM_CHART_VERSION> 하십시오 .helm upgrade
사용 가능한 GitLab Runner Helm 차트 버전 확인
Helm Chart 및 GitLab Runner의 버전은 동일한 버전을 따르지 않습니다. 아래 명령을 사용하여 Helm 차트와 GitLab Runner 간의 버전 매핑을 가져옵니다.
# For Helm 2
helm search -l gitlab/gitlab-runner
# For Helm 3
helm search repo -l gitlab/gitlab-runner
출력의 예는 다음과 같습니다.
NAME CHART VERSION APP VERSION DESCRIPTION
...
gitlab/gitlab-runner 0.14.0 12.8.0 GitLab Runner
gitlab/gitlab-runner 0.13.1 12.7.1 GitLab Runner
gitlab/gitlab-runner 0.13.0 12.7.0 GitLab Runner
gitlab/gitlab-runner 0.12.0 12.6.0 GitLab Runner
gitlab/gitlab-runner 0.11.0 12.5.0 GitLab Runner
gitlab/gitlab-runner 0.10.1 12.4.1 GitLab Runner
gitlab/gitlab-runner 0.10.0 12.4.0 GitLab Runner
...
Helm 차트를 사용하여 GitLab Runner 구성
values.yamlGitLab Runner 구성을 위한 파일을 만듭니다 . 값 파일이 기본값을 재정의하는 방법에 대한 정보는 Helm 문서 를 참조하십시오 .
기본 구성은 항상 values.yaml 차트 저장소에서 찾을 수 있습니다.
필수 구성
GitLab Runner가 작동하려면 구성 파일 에서 다음을 지정 해야 합니다 .
- gitlabUrlhttps://gitlab.example.com- 주자를 등록할 GitLab 서버 전체 URL(예: ).
- runnerRegistrationToken- GitLab에 새 주자를 추가하기 위한 등록 토큰입니다. 이것은 GitLab 인스턴스에서 검색 해야 합니다 .
추가 구성을 지정할 필요가 없다면 GitLab Runner를 설치할 준비가 된 것 입니다.
추가 구성
Helm Chart 0.23.0에 구성 템플릿 이 도입 되었습니다. 지원 중단 문제 를 참조하세요 .
구성 템플릿 파일 을 사용하여 러너를 구성 할 수 있습니다 . Helm 차트가 특정 러너 구성 옵션을 인식하지 않고도 구성 템플릿을 사용하여 러너의 모든 필드를 구성할 수 있습니다.
다음 은 차트 리포지토리 의 values.yaml파일 에 있는 기본 설정의 스니펫입니다 . config:섹션의 경우 형식은 에 포함하므로 ( toml대신 <parameter> = <value>) <parameter>: <value>이어야 config.toml합니다 values.yaml.
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:16.04"
나머지 구성 은 에 설명되어 있습니다values.yaml .
새 구성 템플릿으로 마이그레이션
values.yamlHelm Chart 버전 1.0이 도입되면 파일 에서 허용하는 많은 필드 가 제거됩니다. 가능한 한 빨리 다른 곳으로 마이그레이션하는 것이 좋습니다. 이러한 필드는 DEPRECATED:그 위에 주석으로 표시됩니다.
Kubernetes executor에서 지원하는 모든 구성 옵션 은 Kubernetes executor 문서 에 나열되어 있습니다 . 많은 필드에서 의 이전 이름 은 키워드values.yaml 와 동일 합니다 . 일부의 경우 이름을 바꿔야 합니다. 예를 들어 를 사용 하여 CPU 제한을 설정하는 경우: helpers
helpers:
cpuLimit: 200m
이제 로 설정할 수 있습니다 helper_cpu_limit. 섹션 에서 toml형식( =대신 :)을 사용하고 있는지 확인합니다 .config:
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:16.04"
helper_cpu_limit = "200m"
## helpers:
## cpuLimit: 200m
구성 템플릿과 함께 캐시 사용
구성 템플릿과 함께 캐시를 사용하려면 에서 다음 변수를 설정합니다 values.yaml.
- runners.cache.secretName개체 스토리지 공급자의 비밀 이름( s3access, gcsaccess, google-application-credentials또는 azureaccess).
- runners.config캐시 에 대한 다른 설정을 사용 합니다 . toml서식을 사용 합니다.
시즌3
예를 들어 다음은 정적 자격 증명으로 S3 를 구성하는 예입니다 .
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:16.04"
[runners.cache]
Type = "s3"
Path = "runner"
Shared = true
[runners.cache.s3]
ServerAddress = "s3.amazonaws.com"
BucketName = "my_bucket_name"
BucketLocation = "eu-west-1"
Insecure = false
AuthenticationType = "access-key"
cache:
secretName: s3access
다음으로 및 다음 s3access을 포함하는 Kubernetes 시크릿을 작성하십시오.accesskeysecretkey
kubectl create secret generic s3access \
--from-literal=accesskey="YourAccessKey" \
--from-literal=secretkey="YourSecretKey"
구글 클라우드 스토리지(GCS)
직접 구성된 정적 자격 증명
다음 예는 액세스 ID 및 개인 키가 있는 자격 증명으로 GCS 를 구성하는 방법을 보여줍니다 .
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:16.04"
[runners.cache]
Type = "gcs"
Path = "runner"
Shared = true
[runners.cache.gcs]
BucketName = "runners-cache"
cache:
secretName: gcsaccess
다음으로 및 다음 gcsaccess을 포함하는 Kubernetes 시크릿을 작성하십시오.gcs-access-idgcs-private-key
kubectl create secret generic gcsaccess \
--from-literal=gcs-access-id="YourAccessID" \
--from-literal=gcs-private-key="YourPrivateKey"
GCP에서 다운로드한 JSON 파일의 정적 사용자 인증 정보
다음 예시는 Google Cloud Platform에서 다운로드한 JSON 파일의 자격 증명으로 GCS를 구성 하는 방법을 보여줍니다 .
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:16.04"
[runners.cache]
Type = "gcs"
Path = "runner"
Shared = true
[runners.cache.gcs]
BucketName = "runners-cache"
cache:
secretName: google-application-credentials
다음으로 Kubernetes 보안 비밀을 만들고 google-application-credentials함께 JSON 파일을 로드합니다.
kubectl create secret generic google-application-credentials \
--from-file=gcs-application-credentials-file=./path-to-your-google-application-credentials-file.json
하늘빛
다음 예제에서는 Azure Blob Storage를 구성하는 방법을 보여줍니다 .
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:16.04"
[runners.cache]
Type = "s3"
Path = "runner"
Shared = true
[runners.cache.azure]
ContainerName = "my_container_name"
StorageDomain = "blob.core.windows.net"
cache:
secretName: azureaccess
다음으로 및 다음 azureaccess을 포함하는 Kubernetes 시크릿을 작성하십시오.azure-account-nameazure-account-key
kubectl create secret generic azureaccess \
--from-literal=azure-account-name="YourAccountName" \
--from-literal=azure-account-key="YourAccountKey"
에서 Helm 차트의 캐싱에 대해 자세히 알아보세요 values.yaml.
'GitLab_가이드' 카테고리의 다른 글
macOS에 GitLab Runner 설치 (0) | 2022.08.03 |
---|---|
RBAC 지원 활성화 (0) | 2022.08.03 |
FreeBSD에 GitLab Runner 설치 (0) | 2022.08.02 |
컨테이너에서 GitLab Runner 실행 (0) | 2022.08.02 |
Geo를 사용한 다중 노드/HA 배포 (0) | 2022.08.02 |