GitLab-Spamcheck 차트 사용하기

Tier: 프리미엄, 얼티밋 Offering: Self-managed

spamcheck 서브 차트는 Spamcheck을 배포합니다. 이는 GitLab에서 개발된 스팸 방지 엔진으로, 처음에는 GitLab.com의 스팸 증가에 대응하기 위해 개발되었으며, 나중에는 Self-managed GitLab 인스턴스에서 사용할 수 있도록 공개되었습니다.

요구 사항

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

구성

Spamcheck 활성화

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에서 Spamcheck 사용 구성

  1. 왼쪽 사이드바에서 아래쪽에 있는 Admin Area를 선택합니다.
  2. Settings > Reporting을 선택합니다.
  3. Spam and Anti-bot Protection을 확장합니다.
  4. 스팸 확인 설정을 업데이트합니다:
    1. “Enable Spam Check via external API endpoint” 확인란을 선택합니다.
    2. 외부 스팸 확인 엔드포인트 URL로 grpc://gitlab-spamcheck.default.svc:8001을(를) 사용하며, default는 GitLab을 배포하는 Kubernetes 네임스페이스로 대체됩니다.
    3. “Spam Check API key”란은 비워 둡니다.
  5. Save changes를 선택합니다.

설치 명령줄 옵션

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

매개변수 기본값 설명
annotations {} Pod 주석
common.labels {} 이 차트에 의해 생성된 모든 객체에 적용되는 보조 레이블
deployment.livenessProbe.initialDelaySeconds 20 Liveness 프로브가 시작되기 전의 지연 시간
… (중략) … … (중략) … … (중략) …
priorityClassName   팟에 할당된 우선 순위 클래스

KEDA 구성

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

대부분의 설정은 해당되는 경우 hpa 섹션에서 설정된 값으로 기본값을 갖습니다.

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

트리거가 설정되지 않은 경우 ScaledObject가 생성되지 않습니다.

이러한 설정에 대한 자세한 내용은 KEDA documentation을 참조하십시오.

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

차트 구성 예시

tolerations

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

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

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

annotations

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

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

resources

resources를 사용하면 Spamcheck 파드가 사용할 수 있는 메모리 및 CPU의 최소 및 최대 양을 구성할 수 있습니다.

예를 들어:

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

livenessProbe/readinessProbe

deployment.livenessProbedeployment.readinessProbe를 사용하면 특정 시나리오에서 Spamcheck 파드의 종료를 제어하는 메커니즘을 제공합니다. 예를 들어, 컨테이너가 손상된 상태인 경우 등의 상황입니다.

예를 들어:

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을 참조하십시오.