GitLab-Spamcheck 차트 사용하기

Tier: Premium, Ultimate Offering: Self-Managed

spamcheck 서브 차트는 Spamcheck을 배포합니다. 이는 GitLab이 원래 GitLab.com의 스팸 증가에 대응하기 위해 개발한 악성 스팸 엔진으로, 후에 Self-Managed형 GitLab 인스턴스에서 사용할 수 있도록 공개되었습니다.

요구 사항

이 차트는 GitLab API에 액세스해야 합니다.

구성

스팸체크 활성화

spamcheck는 기본적으로 비활성화되어 있습니다. GitLab 인스턴스에서 활성화하려면 Helm 속성 global.spamcheck.enabledtrue로 설정하세요. 예:

helm upgrade --force --install gitlab . \
--set global.hosts.domain='your.domain.com' \
--set global.hosts.externalIP=XYZ.XYZ.XYZ.XYZ \
--set certmanager-issuer.email='me@example.com' \
--set global.spamcheck.enabled=true

GitLab에서 스팸체크 구성

  1. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  2. 설정 > 보고서를 선택합니다.
  3. 스팸 및 안티봇 보호를 확장합니다.
  4. 스팸 체크 설정을 업데이트합니다:
    1. “외부 API 엔드포인트를 통한 스팸 체크 활성화” 확인란을 선택합니다.
    2. 외부 스팸 체크 엔드포인트 URL로 grpc://gitlab-spamcheck.default.svc:8001을 사용하고, 여기서 default는 GitLab이 배포된 Kubernetes 네임스페이스로 대체됩니다.
    3. “스팸 체크 API 키”를 비워 둡니다.
  5. 변경 사항 저장을 선택합니다.

설치 명령줄 옵션

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

매개변수 기본값 설명
annotations {} Pod 주석
common.labels {} 이 차트에 의해 생성된 모든 객체에 적용되는 부가 레이블
deployment.livenessProbe.initialDelaySeconds 20 Liveness 프로브가 시작되기 전의 지연 시간
deployment.livenessProbe.periodSeconds 60 Liveness 프로브 수행 주기
deployment.livenessProbe.timeoutSeconds 30 Liveness 프로브 타임아웃 시간
deployment.livenessProbe.successThreshold 1 Liveness 프로브가 실패한 후 성공으로 간주되기 위한 최소 연속 성공 횟수
… (이어짐) …    

(표의 내용은 계속됨)

KEDA 구성

keda 섹션은 일반적인 HorizontalPodAutoscalers 대신 KEDA ScaledObjects의 설치를 가능하게 합니다. 이 구성은 선택 사항이며, 사용자 또는 외부 메트릭에 기반한 자동 스케일링이 필요할 때 사용할 수 있습니다.

대부분의 설정은 해당되는 경우 hpa 섹션에서 설정한 값으로 기본값으로 사용됩니다.

다음 조건이 참이면 CPU 및 메모리 트리거가 자동으로 추가되며, 이는 triggers가 설정되지 않았거나 해당하는 request.cpu.request 또는 request.memory.request 설정이 0이 아닌 값으로 설정되었을 때 발생합니다.

  • triggers가 설정되지 않았을 때.
  • 해당하는 request.cpu.request 또는 request.memory.request 설정이 0이 아닌 값으로 설정되었을 때.

트리거가 설정되지 않으면 ScaledObject가 생성되지 않습니다.

이러한 설정에 대한 자세한 내용은 KEDA 문서를 참조하세요.

이름 유형 기본값 설명
enabled 불리언 false 일반적인 HorizontalPodAutoscalers 대신 KEDA ScaledObject를 사용합니다.
pollingInterval 정수 30 각 트리거를 확인하는 간격
cooldownPeriod 정수 300 스케일링된 리소스를 0으로 다시 축소하기 전에 마지막 트리거가 활성화된 후 기다리는 기간
minReplicaCount 정수   KEDA가 리소스를 축소할 수 있는 최소 레플리카 수로, 기본값은 hpa.minReplicas로 설정됩니다.
maxReplicaCount 정수   KEDA가 리소스를 확장할 수 있는 최대 레플리카 수로, 기본값은 hpa.maxReplicas로 설정됩니다.
fallback   KEDA 후속 설정, 문서 참조
hpaName 문자열   KEDA가 생성할 HPA 리소스의 이름으로, 기본값은 keda-hpa-{scaled-object-name}으로 설정됩니다.
restoreToOriginalReplicaCount 불리언   ScaledObject가 삭제된 후 대상 리소스를 원래의 레플리카 수로 축소해야 하는지 여부를 지정합니다.
behavior   업/다운 스케일링 동작에 대한 사양으로, 기본값은 hpa.behavior로 설정됩니다.
triggers 배열   대상 리소스의 스케일링을 활성화하기 위한 트리거 디렉터리으로, 기본값은 hpa.cpuhpa.memory에서 계산된 트리거입니다.

차트 구성 예시

tolerations

tolerations을 사용하면 tainted된 워커 노드에 pod을 예약할 수 있습니다.

다음은 tolerations의 예시 사용법입니다:

tolerations:
- key: "node_label"
  operator: "Equal"
  value: "true"
  effect: "NoSchedule"
- key: "node_label"
  operator: "Equal"
  value: "true"
  effect: "NoExecute"

annotations

annotations을 사용하면 Spamcheck pod에 주석을 추가할 수 있습니다. 예:

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

resources

resources를 사용하면 Spamcheck pod이 사용할 수 있는 리소스(메모리 및 CPU)의 최소 및 최대량을 구성할 수 있습니다.

예시:

resources:
  requests:
    memory: 100m
    cpu: 100M

livenessProbe/readinessProbe

deployment.livenessProbedeployment.readinessProbe는 컨테이너가 손상된 상태일 때 Spamcheck pod의 종료를 제어하는 메커니즘을 제공합니다.

예시:

deployment:
  livenessProbe:
    initialDelaySeconds: 10
    periodSeconds: 20
    timeoutSeconds: 3
    successThreshold: 1
    failureThreshold: 10
  readinessProbe:
    initialDelaySeconds: 10
    periodSeconds: 5
    timeoutSeconds: 2
    successThreshold: 1
    failureThreshold: 3

이 구성에 대한 추가 세부 정보는 공식 Kubernetes Documentation를 참조하세요.