GitLab-Exporter 차트 사용하기
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 서버가 노출된 메트릭을 발견하고 스크래핑할 수 있습니다.