3장. 분산 추적 플랫폼(Tempo)
3.1. 설치
분산 추적 플랫폼(Tempo)을 설치하려면 Tempo Operator를 설치하고 사용 사례에 가장 적합한 배포 유형을 선택해야 합니다.
- 마이크로 서비스 모드의 경우 전용 OpenShift 프로젝트에 TempoStack 인스턴스를 배포합니다.
- 모놀리식 모드의 경우 전용 OpenShift 프로젝트에 TempoMonolithic 인스턴스를 배포합니다.
오브젝트 스토리지를 사용하려면 TempoStack 또는 TempoMonolithic 인스턴스를 배포하기 전에 지원되는 오브젝트 저장소를 설정하고 오브젝트 저장소 인증 정보에 대한 시크릿을 생성해야 합니다.
3.1.1. Tempo Operator 설치
웹 콘솔 또는 명령줄을 사용하여 Tempo Operator를 설치할 수 있습니다.
3.1.1.1. 웹 콘솔을 사용하여 Tempo Operator 설치
웹 콘솔의 관리자 보기에서 Tempo Operator를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할을 사용하여 클러스터 관리자로 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다. -
Red Hat OpenShift Dedicated의 경우
dedicated-admin
역할의 계정을 사용하여 로그인해야 합니다. 지원되는 공급자가 필요한 오브젝트 스토리지 설정 완료: Red Hat OpenShift Data Foundation,MinIO,Amazon S3,Azure Blob Storage,Google Cloud Storage. 자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
주의개체 스토리지는 필수이며 분산 추적 플랫폼(Tempo)에 포함되지 않습니다. 임시(Distributed tracing platform)를 설치하기 전에 지원되는 공급자가 오브젝트 스토리지를 선택하고 설정해야 합니다.
프로세스
-
Operators
OperatorHub 로 이동하여 Tempo Operator
를 검색합니다. Red Hat에서 제공하는 Tempo Operator 를 선택합니다.
중요다음 선택 사항은 이 Operator의 기본 사전 설정 사항입니다.
-
업데이트 채널
stable -
설치 모드
클러스터의 모든 네임스페이스 -
설치된 네임스페이스
openshift-tempo-operator -
업데이트 승인
자동
-
업데이트 채널
- 이 네임스페이스에서 Operator 권장 클러스터 모니터링 활성화 확인란을 선택합니다.
-
설치
설치 Operator 보기를 선택합니다.
검증
- 설치된 Operator 페이지의 세부 정보 탭에서 ClusterServiceVersion 세부 정보에서 설치 상태가 Succeeded인지 확인합니다.
3.1.1.2. CLI를 사용하여 Tempo Operator 설치
명령줄에서 Tempo Operator를 설치할 수 있습니다.
사전 요구 사항
cluster-admin
역할의 클러스터 관리자가 활성 OpenShift CLI(oc
) 세션입니다.작은 정보-
OpenShift CLI(
oc
) 버전이 최신 버전인지 확인하고 OpenShift Container Platform 버전과 일치하는지 확인합니다. oc login
을 실행합니다.$ oc login --username=<your_username>
-
OpenShift CLI(
지원되는 공급자가 필요한 오브젝트 스토리지 설정 완료: Red Hat OpenShift Data Foundation,MinIO,Amazon S3,Azure Blob Storage,Google Cloud Storage. 자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
주의개체 스토리지는 필수이며 분산 추적 플랫폼(Tempo)에 포함되지 않습니다. 임시(Distributed tracing platform)를 설치하기 전에 지원되는 공급자가 오브젝트 스토리지를 선택하고 설정해야 합니다.
프로세스
다음 명령을 실행하여 Tempo Operator에 대한 프로젝트를 생성합니다.
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: labels: kubernetes.io/metadata.name: openshift-tempo-operator openshift.io/cluster-monitoring: "true" name: openshift-tempo-operator EOF
다음 명령을 실행하여 Operator group을 생성합니다.
$ oc apply -f - << EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-tempo-operator namespace: openshift-tempo-operator spec: upgradeStrategy: Default EOF
다음 명령을 실행하여 서브스크립션을 생성합니다.
$ oc apply -f - << EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: tempo-product namespace: openshift-tempo-operator spec: channel: stable installPlanApproval: Automatic name: tempo-product source: redhat-operators sourceNamespace: openshift-marketplace EOF
검증
다음 명령을 실행하여 Operator 상태를 확인합니다.
$ oc get csv -n openshift-tempo-operator
3.1.2. TempoStack 인스턴스 설치
웹 콘솔 또는 명령줄을 사용하여 TempoStack 인스턴스를 설치할 수 있습니다.
3.1.2.1. 웹 콘솔을 사용하여 TempoStack 인스턴스 설치
웹 콘솔의 관리자 보기에서 TempoStack 인스턴스를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할을 사용하여 클러스터 관리자로 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다. -
Red Hat OpenShift Dedicated의 경우
dedicated-admin
역할의 계정을 사용하여 로그인해야 합니다. 지원되는 공급자가 필요한 오브젝트 스토리지 설정 완료: Red Hat OpenShift Data Foundation,MinIO,Amazon S3,Azure Blob Storage,Google Cloud Storage. 자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
주의개체 스토리지는 필수이며 분산 추적 플랫폼(Tempo)에 포함되지 않습니다. 임시(Distributed tracing platform)를 설치하기 전에 지원되는 공급자가 오브젝트 스토리지를 선택하고 설정해야 합니다.
프로세스
-
홈
프로젝트 프로젝트 생성 으로 이동하여 후속 단계에서 생성할 TempoStack 인스턴스에 대해 선택한 프로젝트를 생성합니다. 워크로드
시크릿 → 생성 YAML 로 이동하여 TempoStack 인스턴스에 대해 생성한 프로젝트에서 오브젝트 스토리지 버킷에 대한 시크릿을 생성합니다. 자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오. Amazon S3 및 MinIO 스토리지의 시크릿 예
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: <secret> type: Opaque
TempoStack 인스턴스를 생성합니다.
참고동일한 클러스터의 별도의 프로젝트에서 여러 TempoStack 인스턴스를 생성할 수 있습니다.
-
Operator
설치된 Operator 로 이동합니다. -
TempoStack
TempoStack YAML 보기를 선택합니다. YAML 보기에서
TempoStack
사용자 정의 리소스(CR)를 사용자 지정합니다.apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: sample namespace: <project_of_tempostack_instance> spec: storageSize: <value>Gi 1 storage: secret: 2 name: <secret_name> 3 type: <secret_provider> 4 tls: 5 enabled: true caName: <ca_certificate_configmap_name> 6 template: queryFrontend: jaegerQuery: enabled: true ingress: route: termination: edge type: route resources: 7 total: limits: memory: <value>Gi cpu: <value>m
- 1
- Tempo WAL에 대한 영구 볼륨 클레임의 크기입니다. 기본값은
10Gi
입니다. - 2
- 사전 요구 사항 중 하나로 설정된 오브젝트 스토리지의 2단계에서 생성한 시크릿입니다.
- 3
- 시크릿
메타데이터
의이름
값입니다. - 4
- 허용되는 값은 Azure Blob Storage에
azure
, Google Cloud Storage용gcs
, Amazon S3, MinIO 또는 Red Hat OpenShift Data Foundation의 경우s3
입니다. - 5
- 선택 사항입니다.
- 6
- 선택사항: CA 인증서가 포함된
ConfigMap
오브젝트의 이름입니다. - 7
- 선택 사항입니다.
AWS S3 및 MinIO 스토리지에 대한
TempoStack
CR의 예apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: simplest namespace: <project_of_tempostack_instance> spec: storageSize: 1Gi storage: 1 secret: name: minio-test type: s3 resources: total: limits: memory: 2Gi cpu: 2000m template: queryFrontend: jaegerQuery: 2 enabled: true ingress: route: termination: edge type: route
- 생성을 선택합니다.
-
Operator
검증
- 프로젝트: 드롭다운 목록을 사용하여 TempoStack 인스턴스의 프로젝트를 선택합니다.
-
Operator
설치된 Operator로 이동하여 TempoStack 인스턴스의 상태가 Condition: Ready 인지 확인합니다. -
워크로드
Pod 로 이동하여 TempoStack 인스턴스의 모든 구성 요소 Pod가 실행 중인지 확인합니다. Tempo 콘솔에 액세스합니다.
-
네트워킹
경로 및 Ctrl+F 로 이동하여 tempo
를 검색합니다. 위치 열에서 URL을 열어 Tempo 콘솔에 액세스합니다.
참고Tempo 콘솔은 처음에 Tempo 콘솔 설치 후 추적 데이터를 표시하지 않습니다.
-
네트워킹
3.1.2.2. CLI를 사용하여 TempoStack 인스턴스 설치
명령줄에서 TempoStack 인스턴스를 설치할 수 있습니다.
사전 요구 사항
cluster-admin
역할의 클러스터 관리자가 활성 OpenShift CLI(oc
) 세션입니다.작은 정보-
OpenShift CLI(
oc
) 버전이 최신 버전인지 확인하고 OpenShift Container Platform 버전과 일치하는지 확인합니다. oc login
명령을 실행합니다.$ oc login --username=<your_username>
-
OpenShift CLI(
지원되는 공급자가 필요한 오브젝트 스토리지 설정 완료: Red Hat OpenShift Data Foundation,MinIO,Amazon S3,Azure Blob Storage,Google Cloud Storage. 자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
주의개체 스토리지는 필수이며 분산 추적 플랫폼(Tempo)에 포함되지 않습니다. 임시(Distributed tracing platform)를 설치하기 전에 지원되는 공급자가 오브젝트 스토리지를 선택하고 설정해야 합니다.
프로세스
다음 명령을 실행하여 후속 단계에서 생성할 TempoStack 인스턴스에 대해 선택한 프로젝트를 생성합니다.
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <project_of_tempostack_instance> EOF
TempoStack 인스턴스에 대해 생성한 프로젝트에서 다음 명령을 실행하여 오브젝트 스토리지 버킷에 대한 시크릿을 생성합니다.
$ oc apply -f - << EOF <object_storage_secret> EOF
자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
Amazon S3 및 MinIO 스토리지의 시크릿 예
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: <secret> type: Opaque
생성한 프로젝트에 TempoStack 인스턴스를 생성합니다.
참고동일한 클러스터의 별도의 프로젝트에서 여러 TempoStack 인스턴스를 생성할 수 있습니다.
TempoStack
CR(사용자 정의 리소스)을 사용자 정의합니다.apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: sample namespace: <project_of_tempostack_instance> spec: storageSize: <value>Gi 1 storage: secret: 2 name: <secret_name> 3 type: <secret_provider> 4 tls: 5 enabled: true caName: <ca_certificate_configmap_name> 6 template: queryFrontend: jaegerQuery: enabled: true ingress: route: termination: edge type: route resources: 7 total: limits: memory: <value>Gi cpu: <value>m
- 1
- Tempo WAL에 대한 영구 볼륨 클레임의 크기입니다. 기본값은
10Gi
입니다. - 2
- 사전 요구 사항 중 하나로 설정된 오브젝트 스토리지의 2단계에서 생성한 시크릿입니다.
- 3
- 시크릿
메타데이터
의이름
값입니다. - 4
- 허용되는 값은 Azure Blob Storage에
azure
, Google Cloud Storage용gcs
, Amazon S3, MinIO 또는 Red Hat OpenShift Data Foundation의 경우s3
입니다. - 5
- 선택 사항입니다.
- 6
- 선택사항: CA 인증서가 포함된
ConfigMap
오브젝트의 이름입니다. - 7
- 선택 사항입니다.
AWS S3 및 MinIO 스토리지에 대한
TempoStack
CR의 예apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: simplest namespace: <project_of_tempostack_instance> spec: storageSize: 1Gi storage: 1 secret: name: minio-test type: s3 resources: total: limits: memory: 2Gi cpu: 2000m template: queryFrontend: jaegerQuery: 2 enabled: true ingress: route: termination: edge type: route
다음 명령을 실행하여 사용자 지정된 CR을 적용합니다.
$ oc apply -f - << EOF <tempostack_cr> EOF
검증
다음 명령을 실행하여 모든 TempoStack
components
의status
가Running
이고conditions
가type: Ready
인지 확인합니다.$ oc get tempostacks.tempo.grafana.com simplest -o yaml
다음 명령을 실행하여 모든 TempoStack 구성 요소 Pod가 실행 중인지 확인합니다.
$ oc get pods
Tempo 콘솔에 액세스합니다.
다음 명령을 실행하여 경로 세부 정보를 쿼리합니다.
$ oc get route
웹 브라우저에서
https://<route_from_previous_step>
을 엽니다.참고Tempo 콘솔은 처음에 Tempo 콘솔 설치 후 추적 데이터를 표시하지 않습니다.
3.1.3. TempoMonolithic 인스턴스 설치
TempoMonolithic 인스턴스는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
웹 콘솔 또는 명령줄을 사용하여 TempoMonolithic 인스턴스를 설치할 수 있습니다.
TempoMonolithic
CR(사용자 정의 리소스)은 모놀리식 모드로 Tempo 배포를 생성합니다. Tempo 배포의 모든 구성 요소(예: compactor, distributor, ingester, querier, 쿼리 프런트 엔드)는 단일 컨테이너에 포함됩니다.
TempoMonolithic 인스턴스는 메모리 내 스토리지, 영구 볼륨 또는 오브젝트 스토리지에 추적을 저장할 수 있도록 지원합니다.
모놀리식 모드의 템포 배포는 소규모 배포, 시연, 테스트 및 Red Hat OpenShift distributed tracing Platform(Jaeger) all-in-one 배포의 마이그레이션 경로로 선호됩니다.
Tempo의 모놀리식 배포는 수평으로 확장되지 않습니다. 수평 확장이 필요한 경우 마이크로 서비스의 Tempo 배포에 TempoStack
CR을 사용합니다.
3.1.3.1. 웹 콘솔을 사용하여 TempoMonolithic 인스턴스 설치
TempoMonolithic 인스턴스는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
웹 콘솔의 관리자 보기에서 TempoMonolithic 인스턴스를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할을 사용하여 클러스터 관리자로 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다. -
Red Hat OpenShift Dedicated의 경우
dedicated-admin
역할의 계정을 사용하여 로그인해야 합니다.
프로세스
-
홈
프로젝트 프로젝트 생성 으로 이동하여 후속 단계에서 생성할 TempoMonolithic 인스턴스에 대해 선택한 프로젝트를 만듭니다. 추적을 저장하는 데 사용할 지원되는 스토리지 유형(메모리 스토리지, 영구 볼륨 또는 오브젝트 스토리지)을 결정합니다.
중요오브젝트 스토리지는 분산 추적 플랫폼(Tempo)에 포함되지 않으며 Red Hat OpenShift Data Foundation,MinIO,Amazon S3,Azure Blob Storage 또는 Google Cloud Storage 에서 지원되는 공급자의 오브젝트 저장소를 설정해야 합니다.
또한 오브젝트 스토리지를 선택하려면 TempoMonolithic 인스턴스를 위해 생성한 프로젝트에서 오브젝트 스토리지 버킷에 대한 시크릿을 생성해야 합니다. 워크로드
시크릿 생성 → YAML에서 이 작업을 수행할 수 있습니다. 자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
Amazon S3 및 MinIO 스토리지의 시크릿 예
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: <secret> type: Opaque
TempoMonolithic 인스턴스를 생성합니다.
참고동일한 클러스터의 별도의 프로젝트에서 여러 TempoMonolithic 인스턴스를 생성할 수 있습니다.
-
Operator
설치된 Operator 로 이동합니다. - TempoMonolithic →Temp oMonolithic → YAML 보기를 선택합니다.
YAML 보기에서
TempoMonolithic
사용자 정의 리소스(CR)를 사용자 지정합니다.다음
TempoMonolithic
CR은 OTLP/gRPC 및 OTLP/HTTP를 통한 추적 수집으로 TempoMonolithic 배포를 생성하여 지원되는 스토리지 유형에 추적을 저장하고 경로를 통해 Jaeger UI를 노출합니다.apiVersion: tempo.grafana.com/v1alpha1 kind: TempoMonolithic metadata: name: <metadata_name> namespace: <project_of_tempomonolithic_instance> spec: storage: traces: backend: <supported_storage_type> 1 size: <value>Gi 2 s3: 3 secret: <secret_name> 4 tls: 5 enabled: true caName: <ca_certificate_configmap_name> 6 jaegerui: enabled: true 7 route: enabled: true 8 resources: 9 total: limits: memory: <value>Gi cpu: <value>m
- 1
- 추적을 저장하기 위한 스토리지 유형: 메모리 내 스토리지, 영구 볼륨 또는 오브젝트 스토리지. 영구 볼륨의 값은
pv
입니다. 오브젝트 스토리지에 허용되는 값은 사용된 오브젝트 저장소 유형에 따라s3
,gcs
또는azure
입니다. 기본값은tmpfs
in-memory
스토리지의 메모리입니다. 이는 Pod가 종료될 때 데이터가 유지되지 않기 때문에 개발, 테스트, 시연 및 개념 증명 환경에만 적합합니다. - 2
- 메모리 내 스토리지의 경우 기본값은
2Gi
인tmpfs
볼륨의 크기를 의미합니다. 영구 볼륨의 경우 이는 영구 볼륨 클레임의 크기입니다. 여기서 기본값은10Gi
입니다. 오브젝트 스토리지의 경우 Tempo WAL의 영구 볼륨 클레임 크기를 의미합니다. 기본값은10Gi
입니다. - 3
- 선택 사항: 오브젝트 스토리지의 경우 오브젝트 스토리지의 유형입니다. 허용되는 값은 사용된 오브젝트 저장소 유형에 따라
s3
,gcs
및azure
입니다. - 4
- 선택 사항: 오브젝트 스토리지의 경우 스토리지 시크릿의
메타데이터에
있는이름의
값입니다. 스토리지 시크릿은 TempoMonolithic 인스턴스와 동일한 네임스페이스에 있어야 하며 "표 1"에 지정된 필드를 포함해야 합니다. "오브젝트 스토리지 설정" 섹션의 필수 시크릿 매개변수입니다. - 5
- 선택 사항입니다.
- 6
- 선택사항: CA 인증서가 포함된
ConfigMap
오브젝트의 이름입니다. - 7
- Jaeger UI를 활성화합니다.
- 8
- Jaeger UI에 대한 경로 생성을 활성화합니다.
- 9
- 선택 사항입니다.
- 생성을 선택합니다.
-
Operator
검증
- Project: 드롭다운 목록을 사용하여 TempoMonolithic 인스턴스의 프로젝트를 선택합니다.
-
Operator
설치된 Operator로 이동하여 TempoMonolithic 인스턴스의 상태가 Condition: Ready 인지 확인합니다. -
워크로드
Pod 로 이동하여 TempoMonolithic 인스턴스의 Pod가 실행 중인지 확인합니다. Jaeger UI에 액세스합니다.
네트워킹
경로 및 Ctrl+F 로 이동하여 jaegerui
를 검색합니다.참고Jaeger UI는
tempo-<metadata_name_of_TempoMonolithic_CR>-jaegerui
경로를 사용합니다.- 위치 열에서 URL을 열어 Jaeger UI에 액세스합니다.
TempoMonolithic 인스턴스의 Pod가 준비되면 클러스터 내부의
tempo-<metadata_name_of_TempoMonolithic_CR>:4317
(OTLP/gRPC) 및tempo-<metadata_name_of_TempoMonolithic_CR>:4318
(OTLP/HTTP) 끝점으로 추적을 보낼 수 있습니다.Tempo API는 클러스터 내부의
tempo-<metadata_name_of_TempoMonolithic_CR>:3200
끝점에서 사용할 수 있습니다.
3.1.3.2. CLI를 사용하여 TempoMonolithic 인스턴스 설치
TempoMonolithic 인스턴스는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
명령줄에서 TempoMonolithic 인스턴스를 설치할 수 있습니다.
사전 요구 사항
cluster-admin
역할의 클러스터 관리자가 활성 OpenShift CLI(oc
) 세션입니다.작은 정보-
OpenShift CLI(
oc
) 버전이 최신 버전인지 확인하고 OpenShift Container Platform 버전과 일치하는지 확인합니다. oc login
명령을 실행합니다.$ oc login --username=<your_username>
-
OpenShift CLI(
프로세스
다음 명령을 실행하여 후속 단계에서 생성할 TempoMonolithic 인스턴스에 대해 선택한 프로젝트를 생성합니다.
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <project_of_tempomonolithic_instance> EOF
추적을 저장하는 데 사용할 지원되는 스토리지 유형(메모리 스토리지, 영구 볼륨 또는 오브젝트 스토리지)을 결정합니다.
중요오브젝트 스토리지는 분산 추적 플랫폼(Tempo)에 포함되지 않으며 Red Hat OpenShift Data Foundation,MinIO,Amazon S3,Azure Blob Storage 또는 Google Cloud Storage 에서 지원되는 공급자의 오브젝트 저장소를 설정해야 합니다.
또한 오브젝트 스토리지를 선택하려면 TempoMonolithic 인스턴스를 위해 생성한 프로젝트에서 오브젝트 스토리지 버킷에 대한 시크릿을 생성해야 합니다. 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.
$ oc apply -f - << EOF <object_storage_secret> EOF
자세한 내용은 "오브젝트 스토리지 설정"을 참조하십시오.
Amazon S3 및 MinIO 스토리지의 시크릿 예
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: <secret> type: Opaque
사용자가 만든 프로젝트에 TempoMonolithic 인스턴스를 만듭니다.
작은 정보동일한 클러스터의 별도의 프로젝트에서 여러 TempoMonolithic 인스턴스를 생성할 수 있습니다.
TempoMonolithic
사용자 정의 리소스(CR)를 사용자 지정합니다.다음
TempoMonolithic
CR은 OTLP/gRPC 및 OTLP/HTTP를 통한 추적 수집으로 TempoMonolithic 배포를 생성하여 지원되는 스토리지 유형에 추적을 저장하고 경로를 통해 Jaeger UI를 노출합니다.apiVersion: tempo.grafana.com/v1alpha1 kind: TempoMonolithic metadata: name: <metadata_name> namespace: <project_of_tempomonolithic_instance> spec: storage: traces: backend: <supported_storage_type> 1 size: <value>Gi 2 s3: 3 secret: <secret_name> 4 tls: 5 enabled: true caName: <ca_certificate_configmap_name> 6 jaegerui: enabled: true 7 route: enabled: true 8 resources: 9 total: limits: memory: <value>Gi cpu: <value>m
- 1
- 추적을 저장하기 위한 스토리지 유형: 메모리 내 스토리지, 영구 볼륨 또는 오브젝트 스토리지. 영구 볼륨의 값은
pv
입니다. 오브젝트 스토리지에 허용되는 값은 사용된 오브젝트 저장소 유형에 따라s3
,gcs
또는azure
입니다. 기본값은tmpfs
in-memory
스토리지의 메모리입니다. 이는 Pod가 종료될 때 데이터가 유지되지 않기 때문에 개발, 테스트, 시연 및 개념 증명 환경에만 적합합니다. - 2
- 메모리 내 스토리지의 경우 기본값은
2Gi
인tmpfs
볼륨의 크기를 의미합니다. 영구 볼륨의 경우 이는 영구 볼륨 클레임의 크기입니다. 여기서 기본값은10Gi
입니다. 오브젝트 스토리지의 경우 Tempo WAL의 영구 볼륨 클레임 크기를 의미합니다. 기본값은10Gi
입니다. - 3
- 선택 사항: 오브젝트 스토리지의 경우 오브젝트 스토리지의 유형입니다. 허용되는 값은 사용된 오브젝트 저장소 유형에 따라
s3
,gcs
및azure
입니다. - 4
- 선택 사항: 오브젝트 스토리지의 경우 스토리지 시크릿의
메타데이터에
있는이름의
값입니다. 스토리지 시크릿은 TempoMonolithic 인스턴스와 동일한 네임스페이스에 있어야 하며 "표 1"에 지정된 필드를 포함해야 합니다. "오브젝트 스토리지 설정" 섹션의 필수 시크릿 매개변수입니다. - 5
- 선택 사항입니다.
- 6
- 선택사항: CA 인증서가 포함된
ConfigMap
오브젝트의 이름입니다. - 7
- Jaeger UI를 활성화합니다.
- 8
- Jaeger UI에 대한 경로 생성을 활성화합니다.
- 9
- 선택 사항입니다.
다음 명령을 실행하여 사용자 지정된 CR을 적용합니다.
$ oc apply -f - << EOF <tempomonolithic_cr> EOF
검증
다음 명령을 실행하여 모든 TempoMonolithic
구성 요소의
상태가
Running
이고조건이
type: Ready
인지 확인합니다.$ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml
다음 명령을 실행하여 TempoMonolithic 인스턴스의 포드가 실행 중인지 확인합니다.
$ oc get pods
Jaeger UI에 액세스합니다.
다음 명령을 실행하여
tempo-<metadata_name_of_tempomonolithic_cr>-jaegerui
경로에 대한 경로 세부 정보를 쿼리합니다.$ oc get route
-
웹 브라우저에서
https://<route_from_previous_step>
을 엽니다.
TempoMonolithic 인스턴스의 Pod가 준비되면 클러스터 내부의
tempo-<metadata_name_of_tempomonolithic_cr>:4317
(OTLP/gRPC) 및tempo-<metadata_name_of_tempomonolithic_cr>:4318
(OTLP/HTTP) 끝점에 추적을 보낼 수 있습니다.Tempo API는 클러스터 내부의
tempo-<metadata_name_of_tempomonolithic_cr>:3200
끝점에서 사용할 수 있습니다.
3.1.4. 오브젝트 스토리지 설정
지원되는 오브젝트 스토리지를 설정할 때 다음 구성 매개변수를 사용할 수 있습니다.
스토리지 공급자 |
---|
시크릿 매개변수 |
|
MinIO |
MinIO Operator 를 참조하십시오.
|
Amazon S3 |
|
Amazon S3 with Security Token Service (STS) |
|
Microsoft Azure Blob Storage |
|
GCP(Google Cloud Platform)의 Google Cloud Storage |
|
3.1.4.1. 보안 토큰 서비스를 사용하여 Amazon S3 스토리지 설정
AWS CLI(명령줄 인터페이스)를 사용하여 STS(Security Token Service)를 사용하여 Amazon S3 스토리지를 설정할 수 있습니다.
보안 토큰 서비스를 사용하는 Amazon S3 스토리지는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- 최신 버전의 AWS CLI가 설치되어 있습니다.
프로세스
- AWS S3 버킷을 생성합니다.
TempoStack 인스턴스의 서비스 계정으로 다음 단계에서 생성된 AWS IAM 역할에 대한 신뢰 관계를 설정할 AWS IAM 정책에 대해 다음
trust.json
파일을 생성합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::${<aws_account_id>}:oidc-provider/${<oidc_provider>}" 1 }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "${OIDC_PROVIDER}:sub": [ "system:serviceaccount:${<openshift_project_for_tempostack>}:tempo-${<tempostack_cr_name>}" 2 "system:serviceaccount:${<openshift_project_for_tempostack>}:tempo-${<tempostack_cr_name>}-query-frontend" ] } } } ] }
생성한
trust.json
정책 파일을 연결하여 AWS IAM 역할을 생성합니다.$ aws iam create-role \ --role-name "tempo-s3-access" \ --assume-role-policy-document "file:///tmp/trust.json" \ --query Role.Arn \ --output text
AWS IAM 정책을 생성된 역할에 연결합니다.
$ aws iam attach-role-policy \ --role-name "tempo-s3-access" \ --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"
OpenShift Container Platform에서 다음과 같이 키를 사용하여 오브젝트 스토리지 보안을 생성합니다.
apiVersion: v1 kind: Secret metadata: name: minio-test stringData: bucket: <s3_bucket_name> region: <s3_region> role_arn: <s3_role_arn> type: Opaque