2.10. 사용자 정의 리소스
기본 서비스 메시 사용자 정의 리소스를 수정하거나 새 사용자 정의 리소스를 생성하여 Red Hat OpenShift Service Mesh를 사용자 지정할 수 있습니다.
2.10.1. 사전 요구 사항
-
cluster-admin
역할이 있는 계정. - Operator 설치.
2.10.2. Red Hat OpenShift Service Mesh 사용자 정의 리소스
istio-system
프로젝트는 서비스 메시 문서 전체에서 예제로 사용되지만, 필요에 따라 다른 프로젝트를 사용할 수 있습니다.
사용자 지정 리소스를 사용하여 Red Hat OpenShift Service Mesh 프로젝트 또는 클러스터에서 API를 확장할 수 있습니다. 서비스 메시를 배포할 때 프로젝트 매개변수를 변경하기 위해 수정할 수 있는 기본 ServiceMeshControlPlane
을 생성합니다.
Service Mesh Operator는 ServiceMeshControlPlane
리소스 유형을 추가하여 API를 확장하며, 이를 통해 프로젝트 내에서 ServiceMeshControlPlane
오브젝트를 생성할 수 있습니다. ServiceMeshControlPlane
오브젝트를 생성하여 Operator에 ServiceMeshControlPlane
오브젝트에 설정한 매개변수로 구성된 Service Mesh Control Plane을 프로젝트에 설치하도록 지시합니다.
3scale Istio Adapter는 사용자 정의 리소스 파일에 배포 및 구성됩니다. 또한 작동 중인 3scale 계정(SaaS 또는 On-Premises)이 필요합니다.
예: istio-installation.yaml
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: basic-install spec: istio: global: proxy: resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 128Mi gateways: istio-egressgateway: autoscaleEnabled: false istio-ingressgateway: autoscaleEnabled: false ior_enabled: false mixer: policy: autoscaleEnabled: false telemetry: autoscaleEnabled: false resources: requests: cpu: 100m memory: 1G limits: cpu: 500m memory: 4G pilot: autoscaleEnabled: false traceSampling: 100 kiali: enabled: true grafana: enabled: true tracing: enabled: true jaeger: template: all-in-one
2.10.3. ServiceMeshControlPlane 매개변수
다음 예제에서는 ServiceMeshControlPlane
매개변수의 사용을 보여주고, 표에서는 지원되는 매개변수에 대한 추가 정보를 제공합니다.
현재 클러스터 구성의 사용 가능한 리소스에 따라 이러한 매개변수를 구성합니다.
2.10.3.1. Istio 글로벌 예
다음 예제는 ServiceMeshControlPlane
의 Istio 전역 매개변수와 적절한 값과 함께 사용 가능한 매개변수에 대한 설명을 보여줍니다.
3scale Istio Adapter가 작동하려면 disablePolicyChecks
가 false
여야 합니다.
전역 매개변수 예
istio: global: tag: 1.1.0 hub: registry.redhat.io/openshift-service-mesh/ proxy: resources: requests: cpu: 10m memory: 128Mi limits: mtls: enabled: false disablePolicyChecks: true policyCheckFailOpen: false imagePullSecrets: - MyPullSecret
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
| 이 매개변수는 정책 검사를 활성화/비활성화합니다. |
|
|
| 이 매개변수는 Mixer 정책 서비스에 도달할 수 없는 경우 트래픽이 Envoy 사이드카를 통과할 수 있는지 여부를 나타냅니다. |
|
|
| Operator가 Istio 이미지를 가져오는 데 사용하는 태그입니다. | 유효한 컨테이너 이미지 태그. |
|
| Operator가 Istio 이미지를 가져오는 데 사용하는 허브입니다. | 유효한 이미지 리포지토리 |
|
| 이 매개변수는 기본적으로 서비스 간에 mTLS(mutual Transport Layer Security)를 활성화/비활성화할지 여부를 제어합니다. |
|
|
| Istio 이미지를 제공하는 레지스트리에 대한 액세스가 안전한 경우, 여기에 imagePullSecret을 나열하십시오. | redhat-registry-pullsecret 또는 quay-pullsecret | 없음 |
이러한 매개 변수는 전역 매개변수의 프록시 하위 집합에 따라 다릅니다.
유형 | 매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|---|
|
| Envoy 프록시에 대해 요청된 CPU 리소스의 양입니다. | 사용자 환경 구성에 따라 코어 또는 밀리코어(예: 200m, 0.5, 1)로 지정된 CPU 리소스입니다. |
|
| Envoy 프록시에 대해 요청된 메모리 양입니다. | 사용자 환경 구성에 따라 사용 가능한 바이트 단위 메모리(예: 200Ki, 50Mi, 5Gi)입니다. |
| |
|
| Envoy 프록시에 대해 요청된 최대 CPU 리소스 양입니다. | 사용자 환경 구성에 따라 코어 또는 밀리코어(예: 200m, 0.5, 1)로 지정된 CPU 리소스입니다. |
|
| Envoy 프록시가 사용할 수 있는 최대 메모리 양입니다. | 사용자 환경 구성에 따라 사용 가능한 바이트 단위 메모리(예: 200Ki, 50Mi, 5Gi)입니다. |
|
2.10.3.2. Istio 게이트웨이 구성
다음 예제는 ServiceMeshControlPlane
의 Istio 게이트웨이 매개변수와 적절한 값과 함께 사용 가능한 매개변수에 대한 설명을 보여줍니다.
게이트웨이 매개변수 예
gateways: egress: enabled: true runtime: deployment: autoScaling: enabled: true maxReplicas: 5 minReplicas: 1 enabled: true ingress: enabled: true runtime: deployment: autoScaling: enabled: true maxReplicas: 5 minReplicas: 1
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
| 이 매개변수는 자동 스케일링을 활성화/비활성화합니다. |
|
|
|
| 사용자 환경 구성에 따라 할당 가능한 유효한 Pod 수입니다. |
|
|
| 사용자 환경 구성에 따라 할당 가능한 유효한 Pod 수입니다. |
|
| 이 매개변수는 자동 스케일링을 활성화/비활성화합니다. |
|
|
|
| 사용자 환경 구성에 따라 할당 가능한 유효한 Pod 수입니다. |
|
|
| 사용자 환경 구성에 따라 할당 가능한 유효한 Pod 수입니다. |
|
2.10.3.3. Istio Mixer 구성
다음 예제는 ServiceMeshControlPlane
의 Mixer 매개변수와 적절한 값과 함께 사용 가능한 매개변수에 대한 설명을 보여줍니다.
Mixer 매개변수 예
mixer: enabled: true policy: autoscaleEnabled: false telemetry: autoscaleEnabled: false resources: requests: cpu: 10m memory: 128Mi limits:
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
| 이 매개변수는 Mixer를 활성화/비활성화합니다. |
|
|
| 이 매개변수는 자동 스케일링을 활성화/비활성화합니다. 작은 환경에서는 이 값을 비활성화합니다. |
|
|
|
| 사용자 환경 구성에 따라 할당 가능한 유효한 Pod 수입니다. |
|
|
| 사용자 환경 구성에 따라 할당 가능한 유효한 Pod 수입니다. |
|
유형 | 매개변수 | 설명 | 값 | Default |
---|---|---|---|---|
|
| Mixer Telemetry에 요청된 CPU 리소스의 백분율입니다. | 사용자 환경 구성을 기반으로 하는 밀리코어 단위의 CPU 리소스입니다. |
|
| Mixer Telemetry에 요청된 메모리 양입니다. | 사용자 환경 구성에 따라 사용 가능한 바이트 단위 메모리(예: 200Ki, 50Mi, 5Gi)입니다. |
| |
|
| Mixer telemetry가 사용할 수 있는 CPU 리소스의 최대 백분율입니다. | 사용자 환경 구성을 기반으로 하는 밀리코어 단위의 CPU 리소스입니다. |
|
| Mixer telemetry가 사용할 수 있는 메모리 최대 크기입니다. | 사용자 환경 구성에 따라 사용 가능한 바이트 단위 메모리(예: 200Ki, 50Mi, 5Gi)입니다. |
|
2.10.3.4. Istio Pilot 구성
리소스 할당에 대한 일정 또는 제한을 설정하도록 Pilot을 구성할 수 있습니다. 다음 예제는 ServiceMeshControlPlane
의 Pilot 매개변수와 적절한 값과 함께 사용 가능한 매개변수에 대한 설명을 보여줍니다.
pilot 매개변수 예
spec: runtime: components: pilot: deployment: autoScaling: enabled: true minReplicas: 1 maxReplicas: 5 targetCPUUtilizationPercentage: 85 pod: tolerations: - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 60 affinity: podAntiAffinity: requiredDuringScheduling: - key: istio topologyKey: kubernetes.io/hostname operator: In values: - pilot container: resources: limits: cpu: 100m memory: 128M
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
| Pilot에 요청된 CPU 리소스의 백분율입니다. | 사용자 환경 구성을 기반으로 하는 밀리코어 단위의 CPU 리소스입니다. |
|
| Pilot에 대해 요청된 메모리 양입니다. | 사용자 환경 구성에 따라 사용 가능한 바이트 단위 메모리(예: 200Ki, 50Mi, 5Gi)입니다. |
|
| 이 매개변수는 자동 스케일링을 활성화/비활성화합니다. 작은 환경에서는 이 값을 비활성화합니다. |
|
|
| 이 값은 임의의 샘플링이 발생하는 빈도를 제어합니다. 참고: 개발 또는 테스트를 할 때는 늘리십시오. | 유효한 백분율입니다. |
|
2.10.4. Kiali 구성
Service Mesh Operator에서 ServiceMeshControlPlane
을 생성할 때 Kiali 리소스도 처리합니다. 그런 다음 Kiali Operator는 Kiali 인스턴스를 생성할 때 이 오브젝트를 사용합니다.
ServiceMeshControlPlane
에 지정된 기본 Kiali 매개변수는 다음과 같습니다.
Kiali 매개변수 예
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: kiali: enabled: true dashboard: viewOnlyMode: false ingress: enabled: true
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
enabled | 이 매개변수는 Kiali를 활성화/비활성화합니다. Kiali는 기본적으로 활성화되어 있습니다. |
|
|
dashboard viewOnlyMode | 이 매개변수는 Kiali 콘솔에 대해 보기 전용 모드를 활성화/비활성화합니다. 보기 전용 모드가 활성화되면 콘솔을 사용하여 서비스 메시를 변경할 수 없습니다. |
|
|
ingress enabled | 이 매개변수는 Kiali에 대해 수신을 활성화/비활성화합니다. |
|
|
2.10.4.1. Grafana에 대한 Kiali 설정
Kiali 및 Grafana를 Red Hat OpenShift Service Mesh의 일부로 설치할 때 Operator는 기본적으로 다음을 구성합니다.
- Grafana가 Kiali의 외부 서비스로 활성화됨
- Kiali 콘솔에 대한 Grafana 인증
- Kiali 콘솔의 Grafana URL
Kiali는 Grafana URL을 자동으로 감지할 수 있습니다. 그러나 Kiali에서 쉽게 자동 감지할 수 없는 사용자 지정 Grafana 설치가 있는 경우 ServiceMeshControlPlane
리소스에서 URL 값을 업데이트해야 합니다.
추가 Grafana 매개변수
spec: kiali: enabled: true dashboard: viewOnlyMode: false grafanaURL: "https://grafana-istio-system.127.0.0.1.nip.io" ingress: enabled: true
2.10.4.2. Jaeger에 대한 Kiali 설정
Kiali 및 Jaeger를 Red Hat OpenShift Service Mesh의 일부로 설치할 때 Operator는 기본적으로 다음을 구성합니다.
- Jaeger가 Kiali의 외부 서비스로 활성화됨
- Kiali 콘솔에 대한 Jaeger 인증
- Kiali 콘솔의 Jaeger URL
Kiali는 Jaeger URL을 자동으로 감지할 수 있습니다. 그러나 Kiali에서 쉽게 자동 감지할 수 없는 사용자 지정 Jaeger 설치가 있는 경우 ServiceMeshControlPlane
리소스에서 URL 값을 업데이트해야 합니다.
추가 Jaeger 매개변수
spec: kiali: enabled: true dashboard: viewOnlyMode: false jaegerURL: "http://jaeger-query-istio-system.127.0.0.1.nip.io" ingress: enabled: true
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는 메모리를 많이 사용하는 애플리케이션입니다. 유효한 CPU 및 메모리값으로 리소스 블록을 수정하여 각 구성 요소의 CPU 및 메모리 제한을 모두 조정할 수 있습니다. 권장 메모리 양, 또는 그 이상으로 실행하려는 경우 클러스터에 추가 노드를 추가해야 합니다.
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까지 할당할 수도 있습니다. |
절차
-
Operators
설치된 Operator로 이동합니다. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh Control Plane 탭을 클릭합니다.
-
컨트롤 플레인 파일의 이름을 클릭합니다(예:
basic-install)
. - YAML 탭을 클릭합니다.
-
Jaeger 매개변수를 편집하여, 기본
all-in-one
템플릿을 사용 사례에 맞게 수정한production-elasticsearch
템플릿의 매개변수로 바꿉니다. 들여쓰기가 올바른지 확인합니다. - 저장을 클릭합니다.
- 새로 고침을 클릭합니다.
2.10.5.2. 기존 Jaeger 인스턴스에 연결
SMCP가 기존 Jaeger 인스턴스에 연결하려면 다음이 true여야 합니다.
-
Jaeger 인스턴스는 컨트롤 플레인과 동일한 네임스페이스에 배포됩니다(예:
istio-system
네임스페이스). - 서비스 간에 보안 통신을 활성화하려면, Jaeger 인스턴스에 대한 통신을 보호하는 oauth-proxy를 활성화하고 Kiali와 통신할 수 있도록 시크릿이 Jaeger 인스턴스에 마운트되었는지 확인해야 합니다.
-
사용자 지정 또는 이미 존재하는 Jaeger 인스턴스를 사용하려면
spec.istio.tracing.enabled
를 “false”로 설정하여 Jaeger 인스턴스 배포를 비활성화합니다. -
spec.istio.global.tracer.zipkin.address
를 jaeger-collector 서비스의 호스트 이름 및 포트로 설정하여 정확한 jaeger-collector 끝점을 Mixer에 제공합니다. 서비스의 호스트 이름은 일반적으로<jaeger-instance-name>-collector.<namespace>.svc.cluster.local
입니다. -
spec.istio.kiali.jaegerInClusterURL
을 jaeger-query 서비스의 호스트 이름으로 설정하여 추적 수집에 올바른 Jaeger-query 끝점을 Kiali에 제공합니다. 기본적으로 포트는 443을 사용하므로 일반적으로 필요하지 않습니다. 서비스의 호스트 이름은 일반적으로<jaeger-instance-name>-query.<namespace>.svc.cluster.local
입니다. Kiali 콘솔을 통해 Jaeger에 액세스할 수 있도록 Kiali에 Jaeger 인스턴스의 대시보드 URL을 제공하십시오. Jaeger Operator가 생성한 OpenShift 경로에서 URL을 검색할 수 있습니다. Jaeger 리소스를
external-jaeger
라고 하고istio-system
프로젝트에 있는 경우, 다음 명령을 사용하여 경로를 검색할 수 있습니다.$ oc get route -n istio-system external-jaeger
출력 예
NAME HOST/PORT PATH SERVICES [...] external-jaeger external-jaeger-istio-system.apps.test external-jaeger-query [...]
HOST/PORT
아래의 값은 Jaeger 대시보드의 외부 액세스 URL입니다.
Jaeger 리소스 예
apiVersion: jaegertracing.io/v1 kind: "Jaeger" metadata: name: "external-jaeger" # Deploy to the Control Plane Namespace namespace: istio-system spec: # Set Up Authentication ingress: enabled: true security: oauth-proxy openshift: # This limits user access to the Jaeger instance to users who have access # to the control plane namespace. Make sure to set the correct namespace here sar: '{"namespace": "istio-system", "resource": "pods", "verb": "get"}' htpasswdFile: /etc/proxy/htpasswd/auth volumeMounts: - name: secret-htpasswd mountPath: /etc/proxy/htpasswd volumes: - name: secret-htpasswd secret: secretName: htpasswd
다음 ServiceMeshControlPlane
예는 Jaeger Operator 및 Jaeger 리소스 예제를 사용하여 Jaeger를 배포했다고 가정합니다.
외부 Jaeger가 있는 ServiceMeshControlPlane
예
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: external-jaeger namespace: istio-system spec: version: v1.1 istio: tracing: # Disable Jaeger deployment by service mesh operator enabled: false global: tracer: zipkin: # Set Endpoint for Trace Collection address: external-jaeger-collector.istio-system.svc.cluster.local:9411 kiali: # Set Jaeger dashboard URL dashboard: jaegerURL: https://external-jaeger-istio-system.apps.test # Set Endpoint for Trace Querying jaegerInClusterURL: external-jaeger-query.istio-system.svc.cluster.local
2.10.5.3. Elasticsearch 구성
기본 Jaeger 배포 전략에서는 최소한의 리소스를 사용하여 설치를 완료할 수 있도록 all-in-one
템플릿을 사용합니다. 하지만 all-in-one
템플릿은 메모리 내 스토리지를 사용하므로 개발, 데모 또는 테스트 목적으로만 권장되며 프로덕션 환경에 사용해서는 안 됩니다.
프로덕션 환경에서 서비스 메시와 Jaeger를 배포하는 경우, 템플릿을 Jaeger의 스토리지 요건에 Elasticsearch를 사용하는 production-elasticsearch
템플릿으로 변경해야 합니다.
Elasticsearch는 메모리를 많이 사용하는 애플리케이션입니다. 유효한 CPU 및 메모리값으로 리소스 블록을 수정하여 각 구성 요소의 CPU 및 메모리 제한을 모두 조정할 수 있습니다. 권장 메모리 양, 또는 그 이상으로 실행하려는 경우 클러스터에 추가 노드를 추가해야 합니다.
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까지 할당할 수도 있습니다. |
절차
-
Operators
설치된 Operator로 이동합니다. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh Control Plane 탭을 클릭합니다.
-
컨트롤 플레인 파일의 이름을 클릭합니다(예:
basic-install)
. - YAML 탭을 클릭합니다.
-
Jaeger 매개변수를 편집하여, 기본
all-in-one
템플릿을 사용 사례에 맞게 수정한production-elasticsearch
템플릿의 매개변수로 바꿉니다. 들여쓰기가 올바른지 확인합니다. - 저장을 클릭합니다.
- 새로 고침을 클릭합니다.
2.10.5.4. Elasticsearch 인덱스 정리 작업 구성
Service Mesh Operator가 ServiceMeshControlPlane
을 생성할 때 Jaeger에 대한 사용자 정의 리소스(CR)도 생성합니다.
Elasticsearch 스토리지를 사용하는 경우 기본적으로 오래된 추적을 정리하는 작업이 생성됩니다. 이 작업에 대한 옵션을 설정하려면 Jaeger 사용자 정의 리소스(CR)를 편집하여 사용 사례에 맞게 사용자 지정할 수 있습니다. 관련 옵션은 아래에 나열되어 있습니다.
apiVersion: jaegertracing.io/v1 kind: Jaeger spec: strategy: production storage: type: elasticsearch esIndexCleaner: enabled: false numberOfDays: 7 schedule: "55 23 * * *"
매개변수 | 값 | 설명 |
---|---|---|
활성화됨: | true/ false | 인덱스 정리 작업을 활성화하거나 비활성화합니다. |
numberOfDays: | 정수 값 | 인덱스를 삭제하기 전에 대기하는 날의 수입니다. |
schedule: | "55 23 * * *" | 실행할 작업의 Cron 표현식 |
2.10.6. 3scale 구성
다음 표는 ServiceMeshControlPlane
리소스의 3scale Istio 어댑터에 대한 매개변수를 설명합니다
3scale 매개변수 예
spec: addons: 3Scale: enabled: false PARAM_THREESCALE_LISTEN_ADDR: 3333 PARAM_THREESCALE_LOG_LEVEL: info PARAM_THREESCALE_LOG_JSON: true PARAM_THREESCALE_LOG_GRPC: false PARAM_THREESCALE_REPORT_METRICS: true PARAM_THREESCALE_METRICS_PORT: 8080 PARAM_THREESCALE_CACHE_TTL_SECONDS: 300 PARAM_THREESCALE_CACHE_REFRESH_SECONDS: 180 PARAM_THREESCALE_CACHE_ENTRIES_MAX: 1000 PARAM_THREESCALE_CACHE_REFRESH_RETRIES: 1 PARAM_THREESCALE_ALLOW_INSECURE_CONN: false PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS: 10 PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS: 60 PARAM_USE_CACHED_BACKEND: false PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS: 15 PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED: true
매개변수 | 설명 | 값 | 기본값 |
---|---|---|---|
| 3scale 어댑터 사용 여부 |
|
|
| gRPC 서버의 수신 주소를 설정 | 유효한 포트 번호 |
|
| 최소 로그 출력 수준을 설정합니다. |
|
|
| 로그 형식이 JSON인지 여부를 제어 |
|
|
| 로그에 gRPC 정보가 포함되었는지 여부를 제어 |
|
|
| 3scale 시스템 및 백엔드 지표가 수집되어 Prometheus에 보고되는지 제어 |
|
|
|
3scale | 유효한 포트 번호 |
|
| 캐시에서 만료된 항목을 제거하기 전에 대기하는 시간(초) | 시간(초) |
|
| 캐시 요소를 새로 고침하려고 할 때 만료되기 전 시간 | 시간(초) |
|
|
언제든지 캐시에 저장할 수 있는 항목의 최대 수. 캐싱을 비활성화하려면 | 유효한 번호 |
|
| 캐시 업데이트 루프 중에 연결할 수 없는 호스트가 재시도되는 횟수 | 유효한 번호 |
|
|
|
|
|
| 3scale System 및 백엔드에 대한 요청을 종료하기 전 대기하는 시간(초)을 설정합니다. | 시간(초) |
|
| 연결이 닫히기 전에 연결할 수 있는 최대 시간(초)(+/-10% jitter)을 설정합니다. | 시간(초) | 60 |
| true인 경우, 권한 부여 요청에 대해 메모리 내 apisonator 캐시를 생성합니다. |
|
|
| 백엔드 캐시가 활성화된 경우 3scale에 대해 캐시를 플러싱하는 간격(초)을 설정합니다. | 시간(초) | 15 |
| 백엔드 캐시가 권한 부여 데이터를 검색할 수 없을 때마다 요청을 거부(닫기)할지, 허용할지(열기) 여부 |
|
|