2.10.5. Jaeger 구성
Service Mesh Operator가 ServiceMeshControlPlane
리소스를 생성할 때 분산 추적을 위한 리소스도 생성할 수 있습니다. 서비스 메시는 분산 추적을 위해 Jaeger를 사용합니다.
다음 두 가지 방법 중 하나로 Jaeger 설정을 지정할 수 있습니다.
-
ServiceMeshControlPlane
리소스에서 Jaeger를 구성합니다. 이 방법에는 몇 가지 제한 사항이 있습니다. -
사용자 지정
Jaeger
리소스에서 Jaeger를 구성한 다음ServiceMeshControlPlane
리소스에서 Jaeger 인스턴스를 참조합니다.name
값과 일치하는 Jaeger 리소스가 있으면 컨트롤 플레인에서 기존 설치를 사용합니다. 이 방법을 사용하면 Jaeger 설정을 완전히 사용자 지정할 수 있습니다.
ServiceMeshControlPlane
에 지정된 기본 Jaeger 매개변수는 다음과 같습니다.
기본 all-in-one
Jaeger 매개변수
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: version: v1.1 istio: tracing: enabled: true jaeger: template: all-in-one
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
tracing: enabled: |
이 매개변수는 Service Mesh Operator에 의한 설치 및 추적을 활성화/비활성화합니다. Jaeger 설치는 기본적으로 활성화되어 있습니다. 기존 Jaeger 배포를 사용하려면 이 값을 |
|
|
jaeger: template: | 이 매개변수는 사용할 Jaeger 배포 전략을 지정합니다. |
|
|
ServiceMeshControlPlane
리소스의 기본 템플릿은 메모리 내 스토리지를 사용하는 all-in-one
배포 전략입니다. 프로덕션의 경우 지원되는 유일한 스토리지 옵션은 Elasticsearch이므로, 프로덕션 환경에서 서비스 메시를 배포할 때 production-elasticsearch
템플릿을 요청하도록 ServiceMeshControlPlane
을 구성해야 합니다.
2.10.5.1. Elasticsearch 구성
기본 Jaeger 배포 전략에서는 최소한의 리소스를 사용하여 설치를 완료할 수 있도록 all-in-one
템플릿을 사용합니다. 하지만 all-in-one
템플릿은 메모리 내 스토리지를 사용하므로 개발, 데모 또는 테스트 목적으로만 권장되며 프로덕션 환경에 사용해서는 안 됩니다.
프로덕션 환경에서 서비스 메시와 Jaeger를 배포하는 경우, 템플릿을 Jaeger의 스토리지 요건에 Elasticsearch를 사용하는 production-elasticsearch
템플릿으로 변경해야 합니다.
Elasticsearch는 메모리를 많이 사용하는 애플리케이션입니다. 기본 OpenShift Container Platform 설치에 지정된 초기 노드 세트는 Elasticsearch 클러스터를 지원하기에 충분히 크지 않을 수 있습니다. 사용 사례와 OpenShift Container Platform 설치에 요청한 리소스가 일치하도록 기본 Elasticsearch 구성을 수정해야 합니다. 유효한 CPU 및 메모리값으로 리소스 블록을 수정하여 각 구성 요소의 CPU 및 메모리 제한을 모두 조정할 수 있습니다. 권장 메모리 양, 또는 그 이상으로 실행하려는 경우 클러스터에 추가 노드를 추가해야 합니다. OpenShift Container Platform 설치에 요청된 리소스를 초과하지 않는지 확인합니다.
Elasticsearch를 사용하는 기본 "production" Jaeger 매개변수
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: istio: tracing: enabled: true ingress: enabled: true jaeger: template: production-elasticsearch elasticsearch: nodeCount: 3 redundancyPolicy: resources: requests: cpu: "1" memory: "16Gi" limits: cpu: "1" memory: "16Gi"
매개변수 | 설명 | 값 | 기본값 | 예 |
---|---|---|---|---|
tracing: enabled: | 이 매개변수는 서비스 메시에서 추적을 활성화/비활성화합니다. Jaeger는 기본적으로 설치되어 있습니다. |
|
| |
ingress: enabled: | 이 매개변수는 Jaeger에 대해 수신을 활성화/비활성화합니다. |
|
| |
jaeger: template: | 이 매개변수는 사용할 Jaeger 배포 전략을 지정합니다. |
|
| |
elasticsearch: nodeCount: | 생성할 Elasticsearch 노드 수입니다. | 정수 값입니다. | 1 | 개념 증명 = 1, 최소 배포 = 3 |
requests: cpu: | 사용자 환경 구성에 따른 요청에 대한 중앙 처리 단위 수입니다. | 코어 또는 밀리코어(예: 200m, 0.5, 1)에 지정되어 있습니다. | 1Gi | 개념 증명 = 500m, 최소 배포 = 1 |
requests: memory: | 환경 구성에 따른 요청에 사용 가능한 메모리입니다. | 바이트로 지정됩니다(예: 200Ki, 50Mi, 5Gi). | 500m | 개념 증명 = 1Gi, 최소 배포 = 16Gi* |
limits: cpu: | 사용자 환경 구성에 따른 중앙 처리 장치 수에 대한 제한입니다. | 코어 또는 밀리코어(예: 200m, 0.5, 1)에 지정되어 있습니다. | 개념 증명 = 500m, 최소 배포 = 1 | |
limits: memory: | 사용자 환경 구성에 따라 사용 가능한 메모리 제한입니다. | 바이트로 지정됩니다(예: 200Ki, 50Mi, 5Gi). | 개념 증명 = 1Gi, 최소 배포 = 16Gi* | |
각 Elasticsearch 노드는 더 낮은 메모리 설정으로 작동할 수 있지만 프로덕션 배포에는 권장되지 않습니다. 프로덕션 용도의 경우 기본적으로 각 Pod에 할당된 16Gi 미만이 있어야 하지만 Pod당 최대 64Gi까지 할당할 수도 있습니다. |
프로세스
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 웹 콘솔에 로그인합니다. -
Operators
설치된 Operator로 이동합니다. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh Control Plane 탭을 클릭합니다.
-
컨트롤 플레인 파일의 이름을 클릭합니다(예:
basic-install)
. - YAML 탭을 클릭합니다.
-
Jaeger 매개변수를 편집하여, 기본
all-in-one
템플릿을 사용 사례에 맞게 수정한production-elasticsearch
템플릿의 매개변수로 바꿉니다. 들여쓰기가 올바른지 확인합니다. - 저장을 클릭합니다.
- 새로 고침을 클릭합니다. OpenShift Container Platform은 Jaeger를 재배포하고 지정된 매개변수를 기반으로 Elasticsearch 리소스를 생성합니다.