/
에이전트를 사용하여 GitLab Runner 설치

에이전트를 사용하여 GitLab Runner 설치

티어 무료, Premium, Ultimate
제공: http://GitLab.com, 자체 관리

Kubernetes용 GitLab 에이전트를 설치하고 구성한 후에는 이 에이전트를 사용하여 클러스터에 GitLab Runner를 설치할 수 있습니다.

이 GitOps 워크플로우를 사용하면 리포지토리에 GitLab Runner 구성 파일이 포함되고 클러스터가 자동으로 업데이트됩니다.

runner-manifest.yaml에 암호화되지 않은 GitLab Runner 시크릿을 추가하면 리포지토리 파일에 시크릿이 노출될 수 있습니다. 퍼블릭 프로젝트에서 GitOps 워크플로우를 사용하는 경우, GitOps 워크플로우에서 Kubernetes 시크릿 관리하기를 참조하세요.

  1. GitLab 러너에 대한 Helm 차트 값을 확인합니다.

  2. 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
  3. 클러스터 에이전트와 함께 GitLab Runner 차트를 설치하기 위해 단일 매니페스트 파일을 생성합니다:

    helm template --namespace GITLAB-NAMESPACE gitlab-runner -f runner-chart-values.yaml gitlab/gitlab-runner > runner-manifest.yaml

    GITLAB-NAMESPACE를 사용자의 namespace로 변경합니다.

  4. ServiceAccountnamespace를 포함하도록 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: ...
  5. runner-manifest.yaml를 Kubernetes 매니페스트를 보관하는 리포지토리로 푸시하세요.

  6. 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: TCPcontainers.ports 하위 섹션에 추가합니다: