1.26.4.6. 분산 추적 스토리지 구성 옵션

spec:storage에서 Collector, Ingester 및 쿼리 서비스에 대한 스토리지를 구성합니다. 이러한 각 구성 요소의 여러 인스턴스는 성능 및 복원에 필요한 대로 프로비저닝할 수 있습니다.

표 1.44. Red Hat OpenShift distributed tracing platform Operator에서 분산 추적 스토리지를 정의하는 데 사용하는 일반 스토리지 매개변수

매개변수설명기본값
spec:
  storage:
    type:

배포에 사용할 스토리지 유형입니다.

memory 또는 elasticsearch. 메모리 스토리지는 Pod가 종료되면 데이터가 유지되지 않으므로 개념 환경의 개발, 테스트, 시연 및 검증에만 적합합니다. 프로덕션 환경 분산 추적 플랫폼의 경우 영구 스토리지를 위해 Elasticsearch를 지원합니다.

memory

storage:
  secretname:

시크릿 이름(예: tracing-secret )입니다.

 

해당 없음

storage:
  options: {}

스토리지를 정의하는 구성 옵션입니다.

  

표 1.45. Elasticsearch 인덱스 정리 매개변수

매개변수설명기본값
storage:
  esIndexCleaner:
    enabled:

Elasticsearch 스토리지를 사용하는 경우 기본적으로 인덱스에서 오래된 추적을 정리하는 작업이 생성됩니다. 이 매개변수는 인덱스 정리 작업을 활성화하거나 비활성화합니다.

true/ false

true

storage:
  esIndexCleaner:
    numberOfDays:

인덱스를 삭제하기 전에 대기하는 날의 수입니다.

정수 값

7

storage:
  esIndexCleaner:
    schedule:

Elasticsearch 인덱스를 정리하는 빈도에 대한 일정을 정의합니다.

Cron 표현식

"55 23 * * *"

1.26.4.6.1. Elasticsearch 인스턴스 자동 프로비저닝

Jaeger 사용자 정의 리소스를 배포할 때 Red Hat OpenShift distributed tracing Platform Operator는 OpenShift Elasticsearch Operator를 사용하여 사용자 정의 리소스 파일의 스토리지 섹션에 제공된 구성에 따라 Elasticsearch 클러스터를 생성합니다. 다음 구성이 설정된 경우 Red Hat OpenShift distributed tracing platform Operator는 Elasticsearch를 프로비저닝합니다.

  • spec.storage:typeelasticsearch로 설정됩니다.
  • spec.storage.elasticsearch.doNotProvisionfalse로 설정
  • spec.storage.options.es.server-urls 가 정의되지 않습니다. 즉 Red Hat Elasticsearch Operator에서 프로비저닝하지 않은 Elasticsearch 인스턴스에 대한 연결이 없습니다.

Elasticsearch를 프로비저닝할 때 Red Hat OpenShift distributed tracing platform Operator는 Elasticsearch 사용자 정의 리소스 이름을 Jaeger 사용자 정의 리소스에서 spec.storage.elasticsearch.name 값으로 설정합니다. spec.storage.elasticsearch.name 에 대한 값을 지정하지 않으면 Operator는 elasticsearch 을 사용합니다.

제한 사항

  • 네임스페이스당 자체 프로비저닝 Elasticsearch 인스턴스가 있는 하나의 분산 추적 플랫폼만 있을 수 있습니다. Elasticsearch 클러스터는 단일 분산 추적 플랫폼 인스턴스에 전용해야 합니다.
  • 네임스페이스당 Elasticsearch가 하나만 있을 수 있습니다.
참고

OpenShift Logging의 일부로 Elasticsearch를 이미 설치한 경우 Red Hat OpenShift distributed tracing platform Operator는 설치된 OpenShift Elasticsearch Operator를 사용하여 스토리지를 프로비저닝할 수 있습니다.

다음 구성 매개변수는 OpenShift Elasticsearch Operator를 사용하여 Red Hat OpenShift distributed tracing platform Operator에서 생성한 인스턴스인 자체 프로비저닝 Elasticsearch 인스턴스에 대한 것입니다. 구성 파일의 spec:storage:elasticsearch에서 자체 프로비저닝 Elasticsearch에 대한 구성 옵션을 지정합니다.

표 1.46. Elasticsearch 리소스 구성 매개변수

매개변수설명기본값
elasticsearch:
  properties:
    doNotProvision:

을 사용하여 Elasticsearch 인스턴스를 Red Hat OpenShift distributed tracing platform Operator에서 프로비저닝해야 하는지 여부를 지정합니다.

true/false

true

elasticsearch:
  properties:
    name:

Elasticsearch 인스턴스의 이름입니다. Red Hat OpenShift distributed tracing platform Operator는 이 매개변수에 지정된 Elasticsearch 인스턴스를 사용하여 Elasticsearch에 연결합니다.

string

elasticsearch

elasticsearch:
  nodeCount:

Elasticsearch 노드 수입니다. 고가용성의 경우 최소 3개의 노드를 사용합니다. “스플릿 브레인” 문제가 발생할 수 있으므로 2개의 노드를 사용하지 마십시오.

정수 값입니다. 예를 들면 개념 증명 = 1, 최소 배포 =3입니다.

3

elasticsearch:
  resources:
    requests:
      cpu:

사용자 환경 구성에 따른 요청에 대한 중앙 처리 단위 수입니다.

코어 또는 밀리코어(예: 200m, 0.5, 1)에 지정되어 있습니다. 예를 들면 개념 증명 = 500m, 최소 배포 =1입니다.

1

elasticsearch:
  resources:
    requests:
      memory:

환경 구성에 따른 요청에 사용 가능한 메모리입니다.

바이트로 지정됩니다(예: 200Ki, 50Mi, 5Gi). 예를 들면 개념 증명 = 1Gi, 최소 배포 = 16Gi*입니다.

16Gi

elasticsearch:
  resources:
    limits:
      cpu:

사용자 환경 구성에 따른 중앙 처리 장치 수에 대한 제한입니다.

코어 또는 밀리코어(예: 200m, 0.5, 1)에 지정되어 있습니다. 예를 들면 개념 증명 = 500m, 최소 배포 =1입니다.

 
elasticsearch:
  resources:
    limits:
      memory:

사용자 환경 구성에 따라 사용 가능한 메모리 제한입니다.

바이트로 지정됩니다(예: 200Ki, 50Mi, 5Gi). 예를 들면 개념 증명 = 1Gi, 최소 배포 = 16Gi*입니다.

 
elasticsearch:
  redundancyPolicy:

데이터 복제 정책은 Elasticsearch shard가 클러스터의 데이터 노드에 복제되는 방법을 정의합니다. 지정하지 않으면 Red Hat OpenShift distributed tracing Platform Operator에서 노드 수에 따라 가장 적절한 복제를 자동으로 결정합니다.

ZeroRedundancy(replica shard 없음), SingleRedundancy(하나의 replica shard), MultipleRedundancy(각 인덱스가 데이터 노드의 반을 넘어 분산됨), FullRedundancy(각 인덱스가 클러스터의 모든 데이터 노드에 전체적으로 복제됨).

 
elasticsearch:
  useCertManagement:

을 사용하여 분산 추적 플랫폼에서 Red Hat Elasticsearch Operator의 인증서 관리 기능을 사용해야 하는지 여부를 지정합니다. 이 기능은 OpenShift Container Platform 4.7에서 Red Hat OpenShift 5.2에 대한 로깅 하위 시스템에 추가되었으며 새로운 Jaeger 배포의 기본 설정입니다.

true/false

true

*각 Elasticsearch 노드는 더 낮은 메모리 설정으로 작동할 수 있지만 프로덕션 배포에는 권장되지 않습니다. 프로덕션 용도의 경우 기본적으로 각 Pod에 할당된 16Gi 미만이 있어야 하지만 Pod당 최대 64Gi까지 할당할 수도 있습니다.

프로덕션 스토리지 예

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    elasticsearch:
      nodeCount: 3
      resources:
        requests:
          cpu: 1
          memory: 16Gi
        limits:
          memory: 16Gi

영구 스토리지가 있는 스토리지 예:

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    elasticsearch:
      nodeCount: 1
      storage: 1
        storageClassName: gp2
        size: 5Gi
      resources:
        requests:
          cpu: 200m
          memory: 4Gi
        limits:
          memory: 4Gi
      redundancyPolicy: ZeroRedundancy

1
영구 스토리지 구성. 이 경우 AWS gp25Gi 크기가 있습니다. 값을 지정하지 않으면 분산 추적 플랫폼에서 emptyDir 을 사용합니다. OpenShift Elasticsearch Operator는 분산 추적 플랫폼 인스턴스에서 제거되지 않은 PersistentVolumeClaim 및 PersistentVolume을 프로비저닝합니다. 동일한 이름과 네임스페이스를 사용하여 분산 추적 플랫폼 인스턴스를 생성하는 경우 동일한 볼륨을 마운트할 수 있습니다.