GitLab 러너 설치를 위해 에이전트 사용
GitLab 쿠버네티스 에이전트 설치를 완료한 후 에이전트를 사용하여 클러스터에 GitLab 러너를 설치할 수 있습니다.
이 GitOps 워크플로를 통해 리포지토리에는 GitLab 러너 구성 파일이 포함되며 클러스터는 자동으로 업데이트됩니다.
경고:
runner-manifest.yaml
에 암호화되지 않은 GitLab 러너 비밀을 추가하면 해당 비밀이
리포지토리 파일에 노출될 수 있습니다. 공개 프로젝트에서 GitOps
워크플로를 사용하는 경우 GitOps 워크플로에서 쿠버네티스 비밀 관리를 확인하세요.
- GitLab 러너의 Helm 차트 값을 검토하세요.
-
runner-chart-values.yaml
파일을 생성하세요. 예시:# GitLab 서버 URL(프로토콜과 함께) - 등록할 러너의 GitLab 서버 # 참조: https://docs.gitlab.com/runner/commands/index.html#gitlab-runner-register # gitlabUrl: https://gitlab.my.domain.example.com/ # 새 러너를 GitLab 서버에 추가하는 등록 토큰 # 해당 값을 GitLab 인스턴스에서 가져옵니다 # 자세한 정보: https://docs.gitlab.com/ee/ci/runners/index.html # runnerRegistrationToken: "yrnZW46BrtBFqM7xDzE7dddd" # RBAC 지원: rbac: create: true # 모든 컨테이너를 특권 플래그로 실행 # 이 플래그는 Docker 명령을 실행해야 하는 경우 docker:dind 이미지를 실행하는 데 사용됩니다 # 이를 활성화하기 전에 문서를 확인하세요: # https://docs.gitlab.com/runner/executors/kubernetes/index.html#using-dockerdind runners: privileged: true
-
클러스터 에이전트와 함께 GitLab 러너 차트를 설치하는 단일 매니페스트 파일을 생성하세요:
helm template --namespace GITLAB-NAMESPACE gitlab-runner -f runner-chart-values.yaml gitlab/gitlab-runner > runner-manifest.yaml
GITLAB-NAMESPACE
를 사용자의 네임스페이스로 대체하세요. 예시 확인. -
runner-manifest.yaml
파일을 편집하여ServiceAccount
의namespace
를 포함하세요.helm template
의 출력에는 생성된 리소스 내에ServiceAccount
네임스페이스가 포함되지 않습니다.--- # 원본: 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: manifest_projects: - id: path/to/manifest/project paths: - glob: 'path/to/runner-manifest.yaml'
자세한 내용은 GitOps 구성 참조를 참조하세요.
이제 에이전트가 리포지토리에서 매니페스트 업데이트를 확인할 때마다 클러스터가 GitLab 러너를 포함하여 업데이트됩니다.
러너 매니페스트 예시
이 예시는 샘플 러너 매니페스트 파일을 보여줍니다.
프로젝트의 요구에 맞게 자체 manifest.yaml
파일을 작성하세요.
---
# 원본: gitlab-runner/templates/service-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
name: gitlab-runner-gitlab-runner
labels:
app: gitlab-runner-gitlab-runner
chart: gitlab-runner-0.58.2
release: "gitlab-runner"
heritage: "Helm"
---
(중략)
문제 해결
키가 있는 연관 목록에 "프로토콜" 키 필드가 누락된 요소가 있습니다
쿠버네티스 v1.19의 버그로 인해 GitLab 러너 또는 쿠버네티스용 GitLab 에이전트와 같은 다른 응용 프로그램을 설치할 때 이 오류가 발생할 수 있습니다. 이를 해결하려면 다음을 수행하세요:
- 쿠버네티스 클러스터를 v1.20 이상으로 업그레이드합니다.
-
containers.ports
하위 섹션에protocol: TCP
를 추가합니다:... ports: - name: metrics containerPort: 9252 protocol: TCP ...