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 서브스크립션이 필요합니다.
streaming 배포 전략은 현재 IBM Z에서 지원되지 않습니다.
Red Hat OpenShift distributed tracing을 서비스 메시의 일부로 설치 및 사용하거나 독립형 구성 요소로 사용하는 방법은 다음 두 가지가 있습니다. Red Hat OpenShift Service Mesh의 일부로 분산 추적을 설치한 경우 ServiceMeshControlPlane 의 일부로 기본 구성을 수행할 수 있지만 완전히 제어하려면 Jaeger CR을 구성하고 ServiceMeshControlPlane에서 분산 추적 구성 파일을 참조해야 합니다.
3.2.1. 웹 콘솔에서 분산 추적 기본 전략 배포
CRD(사용자 정의 리소스 정의)는 Red Hat OpenShift 분산 추적 인스턴스를 배포할 때 사용되는 구성을 정의합니다. 기본 CR의 이름은 jaeger-all-in-one-inmemory
로 지정되며 기본 OpenShift Container Platform 설치에 성공적으로 설치할 수 있도록 최소한의 리소스로 구성됩니다. 이 기본 구성을 사용하여 AllInOne
배포 전략을 사용하는 Red Hat OpenShift 분산 추적 플랫폼 인스턴스를 생성하거나 사용자 정의 리소스 파일을 정의할 수 있습니다.
메모리 내 스토리지는 영구적이지 않습니다. Jaeger Pod가 종료, 재시작 또는 교체되면 추적 데이터가 손실됩니다. 영구 스토리지의 경우 Elasticsearch를 기본 스토리지로 사용하는 production
또는 streaming
전략을 사용해야 합니다.
전제 조건
- Red Hat OpenShift distributed tracing platform Operator가 설치되어 있습니다.
- 배포를 사용자 지정하는 방법에 대한 지침을 검토했습니다.
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 웹 콘솔에 로그인합니다. 새 프로젝트(예:
tracing-system
)를 생성합니다.참고Service Mesh의 일부로 설치하는 경우 분산 추적 리소스를
ServiceMeshControlPlane
리소스와 동일한 네임스페이스에 설치해야 합니다(예:istio-system
).-
홈
프로젝트로 이동합니다. - Create Project를 클릭합니다.
-
Name 필드에
tracing-system
을 입력합니다. - Create를 클릭합니다.
-
홈
-
Operators
설치된 Operator로 이동합니다. -
필요한 경우 프로젝트 메뉴에서
추적 시스템을
선택합니다. Operator가 새 프로젝트에 복사될 때까지 몇 분 정도 기다려야 할 수 있습니다. - Red Hat OpenShift distributed tracing platform Operator를 클릭합니다. 세부 정보 탭의 제공된 API 에서 Operator는 단일 링크를 제공합니다.
- Jaeger 에서 인스턴스 생성을 클릭합니다.
- Jaeger 생성 페이지에서 기본값을 사용하여 설치하려면 생성을 클릭하여 분산 추적 플랫폼 인스턴스를 생성합니다.
-
Jaegers 페이지에서 분산 추적 플랫폼 인스턴스의 이름을 클릭합니다(예:
jaeger-all-one-inmemory
). - Jaeger 세부 정보 페이지에서 리소스 탭을 클릭합니다. 계속하기 전에 Pod 상태가 "실행 중"이 될 때까지 기다립니다.
3.2.1.1. CLI에서 분산 추적 기본 전략 배포
명령줄에서 분산 추적 플랫폼의 인스턴스를 생성하려면 다음 절차를 따르십시오.
전제 조건
- Red Hat OpenShift distributed tracing platform Operator가 설치 및 검증되었습니다.
- 배포를 사용자 지정하는 방법에 대한 지침을 검토했습니다.
-
OpenShift Container Platform 버전과 일치하는 OpenShift CLI(
oc
)에 액세스할 수 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
cluster-admin
역할의 사용자로 OpenShift Container Platform CLI에 로그인합니다.$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:8443
tracing-system
이라는 새 프로젝트를 생성합니다.$ oc new-project tracing-system
다음 텍스트가 포함된
jaeger.yaml
이라는 사용자 정의 리소스 파일을 생성합니다.예: jaeger-all-one.yaml
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger-all-in-one-inmemory
다음 명령을 실행하여 분산 추적 플랫폼을 배포합니다.
$ oc create -n tracing-system -f jaeger.yaml
다음 명령을 실행하여 설치 프로세스 중에 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