에이전트를 사용하여 GitLab Runner 설치
티어 무료, Premium, Ultimate
제공: http://GitLab.com, 자체 관리
Kubernetes용 GitLab 에이전트를 설치하고 구성한 후에는 이 에이전트를 사용하여 클러스터에 GitLab Runner를 설치할 수 있습니다.
이 GitOps 워크플로우를 사용하면 리포지토리에 GitLab Runner 구성 파일이 포함되고 클러스터가 자동으로 업데이트됩니다.
runner-manifest.yaml
에 암호화되지 않은 GitLab Runner 시크릿을 추가하면 리포지토리 파일에 시크릿이 노출될 수 있습니다. 퍼블릭 프로젝트에서 GitOps 워크플로우를 사용하는 경우, GitOps 워크플로우에서 Kubernetes 시크릿 관리하기를 참조하세요.
GitLab 러너에 대한 Helm 차트 값을 확인합니다.
runner-chart-values.yaml
파일을 생성합니다. 예를 들어:# The GitLab Server URL (with protocol) that you want to register the runner against # ref: https://docs.gitlab.com/runner/commands/index.html#gitlab-runner-register # gitlabUrl: https://gitlab.my.domain.example.com/ # The registration token for adding new runners to the GitLab server # Retrieve this value from your GitLab instance # For more info: https://docs.gitlab.com/ee/ci/runners/index.html # runnerRegistrationToken: "yrnZW46BrtBFqM7xDzE7dddd" # For RBAC support: rbac: create: true # Run all containers with the privileged flag enabled # This flag allows the docker:dind image to run if you need to run Docker commands # Read the docs before turning this on: # https://docs.gitlab.com/runner/executors/kubernetes/index.html#using-dockerdind runners: privileged: true
클러스터 에이전트와 함께 GitLab Runner 차트를 설치하기 위해 단일 매니페스트 파일을 생성합니다:
helm template --namespace GITLAB-NAMESPACE gitlab-runner -f runner-chart-values.yaml gitlab/gitlab-runner > runner-manifest.yaml
GITLAB-NAMESPACE
를 사용자의namespace
로 변경합니다.ServiceAccount
의namespace
를 포함하도록runner-manifest.yaml
파일을 편집합니다.helm template
의 출력에는 생성된 리소스에ServiceAccount
namespace
가 포함되지 않습니다.--- # Source: gitlab-runner/templates/service-account.yaml apiVersion: v1 kind: ServiceAccount metadata: annotations: name: gitlab-runner-gitlab-runner namespace: gitlab labels: ...
runner-manifest.yaml
를 Kubernetes 매니페스트를 보관하는 리포지토리로 푸시하세요.GitOps를 사용하여 에이전트가 러너 매니페스트를 동기화하도록 구성합니다. 예를 들어:
자세한 내용은 GitOps 구성 참조를 참조하세요.
이제 에이전트가 리포지토리에서 매니페스트 업데이트를 확인할 때마다 클러스터가 GitLab 러너를 포함하도록 업데이트됩니다.
러너 매니페스트 예시
이 예는 샘플 러너 매니페스트 파일을 보여줍니다. 프로젝트의 요구 사항을 충족하는 자체 manifest.yaml
파일을 만드세요.
Troubleshooting
associative list with keys has an element that omits key field "protocol"
Kubernetes v1.19의 버그로 인해, Kubernetes용 GitLab 에이전트가 있는 GitLab 러너 또는 다른 애플리케이션을 설치할 때 이 오류가 표시될 수 있습니다. 이 문제를 해결하려면 다음과 같이 하세요:
Kubernetes 클러스터를 v1.20 이상으로 업그레이드합니다.
protocol: TCP
를containers.ports
하위 섹션에 추가합니다: