3.2. 분산 추적 구성 및 배포

Red Hat OpenShift distributed tracing platform Operator는 분산 추적 플랫폼 리소스를 생성하고 배포할 때 사용할 아키텍처 및 구성 설정을 정의하는 CRD(사용자 정의 리소스 정의) 파일을 사용합니다. 기본 구성을 설치하거나 비즈니스 요구 사항에 맞게 파일을 수정할 수 있습니다.

Red Hat OpenShift distributed tracing 플랫폼에는 사전 정의된 배포 전략이 있습니다. 사용자 정의 리소스 파일에 배포 전략을 지정합니다. 분산 추적 플랫폼 인스턴스를 생성할 때 Operator는 이 구성 파일을 사용하여 배포에 필요한 오브젝트를 생성합니다.

배포 전략을 표시하는 Jaeger 사용자 정의 리소스 파일

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: MyConfigFile
spec:
  strategy: production 1

1
Red Hat OpenShift distributed tracing Platform Operator는 현재 다음 배포 전략을 지원합니다.
  • allInOne(기본값) - 이 전략은 개발, 테스트 및 데모 목적으로 설계되었습니다. 이는 프로덕션 사용을 목적으로 하지 않습니다. 기본 백엔드 구성 요소인 에이전트, 수집기 및 쿼리 서비스는 모두 메모리 내 스토리지를 사용하기 위해 기본적으로 구성된 단일 실행 파일로 패키지됩니다.

    참고

    메모리 내 스토리지는 영구적이지 않습니다. 즉, 분산 추적 플랫폼 인스턴스가 종료, 재시작 또는 교체되면 추적 데이터가 손실됩니다. 각 Pod에 자체 메모리가 있으므로 메모리 내 스토리지를 확장할 수 없습니다. 영구 스토리지의 경우 Elasticsearch를 기본 스토리지로 사용하는 production 또는 streaming 전략을 사용해야 합니다.

  • 프로덕션 - 프로덕션 전략은 장기적인 추적 데이터 저장과 더 확장 가능하고 가용성이 높은 아키텍처가 필요한 프로덕션 환경을 위한 것입니다. 따라서 각 백엔드 구성 요소는 별도로 배포됩니다. 에이전트는 조정된 애플리케이션에서 사이드카로 삽입될 수 있습니다. 쿼리 및 수집기 서비스는 지원되는 스토리지 유형(현재 Elasticsearch)으로 구성됩니다. 이러한 각 구성 요소의 여러 인스턴스는 성능 및 복원에 필요한 대로 프로비저닝할 수 있습니다.
  • 스트리밍 - 스트리밍 전략은 수집기와 Elasticsearch 백엔드 스토리지 간에 효과적으로 적용되는 스트리밍 기능을 제공하여 프로덕션 전략을 보강하도록 설계되었습니다. 이를 통해 높은 로드 상황에서 백엔드 스토리지의 부담을 줄이고 다른 추적 후 처리 기능을 통해 스트리밍 플랫폼(AMQ Streams/ Kafka)에서 직접 실시간 데이터를 가져올 수 있습니다.

    참고

    스트리밍 전략에는 AMQ Streams에 대한 추가 Red Hat 서브스크립션이 필요합니다.

참고

스트리밍 배포 전략은 현재 IBM Z에서 지원되지 않습니다.

참고

Red Hat OpenShift distributed tracing을 서비스 메시의 일부로 설치하거나 독립형 구성 요소로 사용하는 방법은 두 가지가 있습니다. Red Hat OpenShift Service Mesh의 일부로 분산 추적을 설치한 경우 ServiceMeshControlPlane 의 일부로 기본 구성을 수행할 수 있지만, 완전히 제어하려면 Jaeger CR을 구성한 다음 ServiceMeshControlPlane에서 분산 추적 구성 파일을 참조해야 합니다.

3.2.1. 웹 콘솔에서 분산 추적 기본 전략 배포

CRD(사용자 정의 리소스 정의)는 Red Hat OpenShift distributed tracing의 인스턴스를 배포할 때 사용되는 구성을 정의합니다. 기본 CR의 이름은 jaeger-all-in-one-inmemory 이며 기본 OpenShift Container Platform 설치에 성공적으로 설치할 수 있도록 최소한의 리소스로 구성됩니다. 이 기본 구성을 사용하여 AllInOne 배포 전략을 사용하는 Red Hat OpenShift distributed tracing 플랫폼 인스턴스를 생성하거나 자체 사용자 지정 리소스 파일을 정의할 수 있습니다.

참고

메모리 내 스토리지는 영구적이지 않습니다. Jaeger Pod가 종료, 재시작 또는 교체되면 추적 데이터가 손실됩니다. 영구 스토리지의 경우 Elasticsearch를 기본 스토리지로 사용하는 production 또는 streaming 전략을 사용해야 합니다.

전제 조건

  • Red Hat OpenShift distributed tracing Platform Operator가 설치되었습니다.
  • 배포를 사용자 지정하는 방법에 대한 지침을 검토했습니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.

프로세스

  1. cluster-admin 역할의 사용자로 OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. 새 프로젝트(예: tracing-system )를 만듭니다.

    참고

    Service Mesh의 일부로 설치하는 경우 분산 추적 리소스는 ServiceMeshControlPlane 리소스와 동일한 네임스페이스에 설치해야 합니다(예: istio-system ).

    1. 프로젝트로 이동합니다.
    2. Create Project를 클릭합니다.
    3. 이름 필드에 tracing-system 을 입력합니다.
    4. Create를 클릭합니다.
  3. Operators설치된 Operator로 이동합니다.
  4. 필요한 경우 프로젝트 메뉴에서 tracing-system 을 선택합니다. Operator가 새 프로젝트에 복사될 때까지 몇 분 정도 기다려야 할 수 있습니다.
  5. Red Hat OpenShift distributed tracing Platform Operator를 클릭합니다. 세부 정보 탭의 제공된 API 에서 Operator는 단일 링크를 제공합니다.
  6. Jaeger 에서 인스턴스 생성을 클릭합니다.
  7. Jaeger 생성 페이지에서 기본값을 사용하여 설치하려면 만들기를 클릭하여 분산 추적 플랫폼 인스턴스를 생성합니다.
  8. Jaegers 페이지에서 분산 추적 플랫폼 인스턴스의 이름을 클릭합니다(예: jaeger-all-one-in-inmemory ).
  9. Jaeger 세부 정보 페이지에서 리소스 탭을 클릭합니다. 계속하기 전에 Pod 상태가 "실행 중"이 될 때까지 기다립니다.

3.2.1.1. CLI에서 분산 추적 기본 전략 배포

다음 절차에 따라 명령줄에서 분산 추적 플랫폼 인스턴스를 생성합니다.

전제 조건

  • Red Hat OpenShift distributed tracing Platform Operator가 설치 및 검증되었습니다.
  • 배포를 사용자 지정하는 방법에 대한 지침을 검토했습니다.
  • OpenShift Container Platform 버전과 일치하는 OpenShift CLI(oc)에 액세스할 수 있습니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.

프로세스

  1. cluster-admin 역할의 사용자로 OpenShift Container Platform CLI에 로그인합니다.

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:8443
  2. tracing-system 이라는 새 프로젝트를 생성합니다.

    $ oc new-project tracing-system
  3. 다음 텍스트가 포함된 jaeger.yaml이라는 사용자 정의 리소스 파일을 생성합니다.

    예: jaeger-all-one.yaml

    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: jaeger-all-in-one-inmemory

  4. 다음 명령을 실행하여 분산 추적 플랫폼을 배포합니다.

    $ oc create -n tracing-system -f jaeger.yaml
  5. 다음 명령을 실행하여 설치 프로세스 중에 Pod의 진행 상황을 확인합니다.

    $ oc get pods -n tracing-system -w

    설치 프로세스가 완료되면 다음 예와 유사한 출력이 표시됩니다.

    NAME                                         READY   STATUS    RESTARTS   AGE
    jaeger-all-in-one-inmemory-cdff7897b-qhfdx   2/2     Running   0          24s