GitLab-Exporter 차트 사용하기

Tier: Free, Premium, Ultimate Offering: Self-Managed

gitlab-exporter 하위 차트는 GitLab 애플리케이션별 데이터에 대한 Prometheus 메트릭을 제공합니다. 이는 CI 빌드, pull mirror 등의 데이터를 검색하기 위해 직접 PostgreSQL과 통신합니다. 또한, Sidekiq API를 사용하여 Sidekiq 대기열의 상태에 대한 다양한 메트릭을 수집합니다(예: 작업 수).

요구 사항

이 차트는 Redis 및 PostgreSQL 서비스에 의존하며, GitLab 차트의 일부로 제공되거나 이 차트가 배포된 Kubernetes 클러스터에서 도달 가능한 외부 서비스로 제공됩니다.

구성

gitlab-exporter 차트는 다음과 같이 구성됩니다: 글로벌 설정차트 설정.

설치 명령줄 옵션

아래 표는 helm install 명령에 --set 플래그를 사용하여 제공할 수 있는 모든 가능한 차트 구성을 포함하고 있습니다.

매개변수 기본값 설명
annotations   Pod 주석
common.labels {} 이 차트에 의해 생성된 모든 객체에 적용되는 보충 레이블
podLabels   보충 Pod 레이블. 셀렉터에는 사용되지 않습니다.
common.labels   이 차트에 의해 생성된 모든 객체에 적용되는 보충 레이블
deployment.strategy {} 배포에 의해 사용되는 업데이트 전략을 구성할 수 있게 합니다.
enabled true GitLab Exporter 활성화 플래그
extraContainers   포함할 추가 컨테이너 목록
extraInitContainers   포함할 추가 init 컨테이너 목록
extraVolumeMounts   수행할 추가 볼륨 마운트 목록
extraVolumes   생성할 추가 볼륨 목록
extraEnv   노출할 추가 환경 변수 목록
extraEnvFrom   다른 데이터 소스에서 노출할 추가 환경 변수 목록
image.pullPolicy IfNotPresent GitLab 이미지 풀 정책
image.pullSecrets   이미지 저장소용 시크릿
image.repository registry.gitlab.com/gitlab-org/build/cng/gitlab-exporter GitLab Exporter 이미지 저장소
image.tag   이미지 태그
init.image.repository   initContainer 이미지
init.image.tag   initContainer 이미지 태그
init.containerSecurityContext   initContainer 컨테이너별 securityContext
metrics.enabled true 스크래핑용 메트릭 엔드포인트를 사용할지 여부
metrics.port 9168 메트릭 엔드포인트 포트
metrics.path /metrics 메트릭 엔드포인트 경로
metrics.serviceMonitor.enabled false Prometheus Operator가 메트릭 스크래핑을 관리하도록 하는 ServiceMonitor를 생성해야 하는지 여부, 이 기능을 활성화하면 prometheus.io 스크래핑 주석이 제거됨
metrics.serviceMonitor.additionalLabels {} ServiceMonitor에 추가할 레이블
metrics.serviceMonitor.endpointConfig {} ServiceMonitor에 대한 추가 엔드포인트 구성
metrics.annotations   DEPRECATED 명시적 메트릭 주석 설정. 템플릿 내용으로 대체됨.
priorityClassName   팟에 할당된 우선순위 클래스
resources.requests.cpu 75m GitLab Exporter 최소 CPU
resources.requests.memory 100M GitLab Exporter 최소 메모리
serviceLabels {} 보충 서비스 레이블
service.externalPort 9168 GitLab Exporter 노출된 포트
service.internalPort 9168 GitLab Exporter 내부 포트
service.name gitlab-exporter GitLab Exporter 서비스 이름
service.type ClusterIP GitLab Exporter 서비스 유형
securityContext.fsGroup 1000 팟이 시작될 때 사용되는 그룹 ID
securityContext.runAsUser 1000 팟이 시작될 때 사용되는 사용자 ID
securityContext.fsGroupChangePolicy   볼륨 소유권 및 권한 변경 정책 (Kubernetes 1.23 이상 필요)
containerSecurityContext   컨테이너 시작 시 사용되는 오버라이드 securityContext
containerSecurityContext.runAsUser 1000 컨테이너 시작 시 사용되는 특정 보안 문맥 덮어쓰기
tolerations [] 팟 할당을 위한 허용 레이블
psql.port   PostgreSQL 서버 포트 설정. global.psql.port보다 우선함
tls.enabled false GitLab Exporter TLS 활성화 여부
tls.secretName {Release.Name}-gitlab-exporter-tls GitLab Exporter TLS 시크릿. Kubernetes TLS 시크릿을 가리켜야 함.

차트 구성 예시

extraEnv

extraEnv는 팟의 모든 컨테이너에 추가적인 환경 변수를 노출할 수 있습니다.

아래는 extraEnv의 사용 예시입니다:

extraEnv:
  SOME_KEY: some_value
  SOME_OTHER_KEY: some_other_value

컨테이너가 시작될 때, 환경 변수가 노출되는지 확인할 수 있습니다:

env | grep SOME
SOME_KEY=some_value
SOME_OTHER_KEY=some_other_value

extraEnvFrom

extraEnvFrom은 팟의 모든 컨테이너에 다른 데이터 원본에서 추가적인 환경 변수를 노출할 수 있습니다.

아래는 extraEnvFrom의 사용 예시입니다:

extraEnvFrom:
  MY_NODE_NAME:
    fieldRef:
      fieldPath: spec.nodeName
  MY_CPU_REQUEST:
    resourceFieldRef:
      containerName: test-container
      resource: requests.cpu
  SECRET_THING:
    secretKeyRef:
      name: special-secret
      key: special_token
      # optional: boolean
  CONFIG_STRING:
    configMapKeyRef:
      name: useful-config
      key: some-string
      # optional: boolean

image.pullSecrets

pullSecrets는 팟에서 이미지를 가져오기 위해 개인 레지스트리에 인증하는 데 사용됩니다.

개인 레지스트리와 해당 인증 방법에 대한 자세한 내용은 Kubernetes 문서에서 찾을 수 있습니다.

아래는 pullSecrets의 사용 예시입니다:

image:
  repository: my.image.repository
  pullPolicy: Always
  pullSecrets:
  - name: my-secret-name
  - name: my-secondary-secret-name

annotations

annotations은 GitLab Exporter 팟에 주석을 추가할 수 있습니다. 예시:

annotations:
  kubernetes.io/example-annotation: annotation-value

전역 설정

차트 간에 일부 공통 전역 설정을 공유합니다. 공통 구성 옵션(예: GitLab 및 Registry 호스트명)은 글로벌 문서를 참조하세요.

차트 설정

다음 값은 GitLab Exporter 팟을 구성하는 데 사용됩니다.

metrics.enabled

기본적으로, 팟은 /metrics에 메트릭 엔드포인트를 노출합니다. 메트릭이 활성화되면 각 팟에 주석이 추가되어 Prometheus 서버가 노출된 메트릭을 발견하고 스크래핑할 수 있습니다.