1.24. 서비스 메시 컨트롤 플레인 구성 참조

기본 Service MeshControlPlane(SMCP) 리소스를 수정하거나 완전히 사용자 지정 SMCP 리소스를 생성하여 Red Hat OpenShift Service Mesh를 사용자 지정할 수 있습니다. 이 참조 섹션에서는 SMCP 리소스에 사용할 수 있는 구성 옵션에 대해 설명합니다.

1.24.1. 서비스 메시 컨트롤 플레인 매개변수

다음 표에는 ServiceMeshControlPlane 리소스의 최상위 매개변수가 나열되어 있습니다.

표 1.31. ServiceMeshControlPlane 리소스 매개변수

이름설명유형

apiVersion

APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. ServiceMeshControlPlane 버전 2.0의 값은 maistra.io/v2입니다.

ServiceMeshControlPlane 버전 2.0의 값은 maistra.io/v2입니다.

kind

kind는 이 오브젝트가 나타내는 REST 리소스를 나타내는 문자열 값입니다.

ServiceMeshControlPlane은 ServiceMeshControlPlane의 유일한 유효한 값입니다.

metadata

ServiceMeshControlPlane 인스턴스에 대한 메타데이터입니다. Service Mesh Control Plane 설치의 이름을 지정하여 작업을 추적할 수 있습니다(예: basic ).

string

spec

ServiceMeshControlPlane의 원하는 상태 사양입니다. 여기에는 Service Mesh Control Plane을 구성하는 모든 구성 요소에 대한 구성 옵션이 포함됩니다.

자세한 내용은 표 2를 참조하십시오.

status

ServiceMeshControlPlane 의 현재 상태 및 Service Mesh 컨트롤 플레인을 구성하는 구성 요소입니다.

자세한 내용은 표 3을 참조하십시오.

다음 표에는 ServiceMeshControlPlane 리소스의 사양이 나열되어 있습니다. 이러한 매개변수를 변경하면 Red Hat OpenShift Service Mesh 구성 요소가 구성됩니다.

표 1.32. ServiceMeshControlPlane 리소스 사양

이름설명구성 가능한 매개변수

addons

addons 매개변수는 시각화 또는 메트릭 스토리지와 같은 핵심 Service Mesh Control Plane 구성 요소 이외의 추가 기능을 구성합니다.

3scale, grafana, jaeger, kiali, prometheus.

cluster

cluster 매개변수는 클러스터의 일반 구성(예: 클러스터 이름, 네트워크 이름, 다중 클러스터, 메시 확장 등)을 설정합니다.

meshExpansion, multiCluster, name, network

gateways

gateways 매개변수를 사용하여 메시에 대한 수신 및 송신 게이트웨이를 구성합니다.

enabled, additionalEgress, additionalIngress, egress, ingress, openshiftRoute

general

general 매개변수는 다른 곳에 맞지 않는 일반 Service Mesh Control Plane 구성을 나타냅니다.

logging, validationMessages

policy

policy 매개변수를 사용하여 Service Mesh Control Plane에 대한 정책 검사를 구성합니다. spec.policy.enabledtrue로 설정하여 정책 검사를 활성화할 수 있습니다.

mixer remote 또는 type. typeIstiod, Mixer 또는 None으로 설정할 수 있습니다.

profiles

profiles 매개변수를 사용하여 기본값에 적용할 ServiceMeshControlPlane 프로필을 선택합니다.

default

proxy

proxy 매개변수를 사용하여 사이드카의 기본 동작을 설정합니다.

accessLogging, adminPort, concurrency, envoyMetricsService

runtime

runtime 매개변수를 사용하여 Service Mesh Control Plane 구성 요소를 구성합니다.

components, defaults

보안

security 매개변수를 사용하면 Service Mesh Control Plane에 대한 보안 측면을 구성할 수 있습니다.

certificateAuthority, controlPlane, identity, dataPlane, trust

techPreview

techPreview 매개변수를 사용하면 기술 프리뷰에 있는 기능에 조기 액세스할 수 있습니다.

해당 없음

telemetry

spec.mixer.telemetry.enabledtrue로 설정되면 Telemetry가 활성화됩니다.

mixer, remote, type. typeIstiod, Mixer 또는 None으로 설정할 수 있습니다.

tracing

tracing 매개변수를 사용하여 메시의 분산 추적을 활성화합니다.

sampling, type. typeJaeger 또는 None으로 설정할 수 있습니다.

version

version 매개변수를 사용하여 설치할 Service Mesh Control Plane의 Maistra 버전을 지정합니다. 비어 있는 버전으로 ServiceMeshControlPlane을 생성할 때 승인 Webhook는 버전을 현재 버전으로 설정합니다. 빈 버전이 있는 새로운 ServiceMeshControlPlanesv2.0으로 설정됩니다. 빈 버전이 있는 기존 ServiceMeshControlPlanes는 설정을 유지합니다.

string

ControlPlaneStatus는 서비스 메시의 현재 상태를 나타냅니다.

표 1.33. ServiceMeshControlPlane 리소스 ControlPlaneStatus

이름설명유형

annotations

annotations 매개변수는 ServiceMeshControlPlane에서 배포한 구성 요소 수와 같이 일반적으로 중복되는 상태 정보를 저장합니다. 이러한 상태는 아직 JSONPath 표현식에서 오브젝트를 셀 수 없는 oc 명령줄 도구에서 사용됩니다.

구성 불가능

conditions

오브젝트의 현재 상태에 대해 사용 가능한 최신 관찰을 나타냅니다. Reconciled는 Operator가 ServiceMeshControlPlane 리소스의 구성을 사용하여 배포된 구성 요소의 실제 상태를 조정했는지 여부를 나타냅니다. Installed 는 Service Mesh Control Plane이 설치되었는지를 나타냅니다. Ready 는 모든 Service Mesh Control Plane 구성 요소가 준비되었는지를 나타냅니다.

string

components

배포된 각 Service Mesh Control Plane 구성 요소의 상태를 표시합니다.

string

appliedSpec

모든 프로필이 적용된 후 구성 옵션의 결과 사양입니다.

ControlPlaneSpec

appliedValues

차트를 생성하는 데 사용되는 결과 values.yaml입니다.

ControlPlaneSpec

chartVersion

이 리소스를 위해 마지막으로 처리된 차트의 버전입니다.

string

observedGeneration

가장 최근 조정 중에 컨트롤러가 관찰한 생성입니다. 상태의 정보는 이 특정 오브젝트 생성과 관련이 있습니다. status.conditionsstatus.observedGeneration 필드가 metadata.generation과 일치하지 않는 경우 최신 상태가 아닙니다.

정수

operatorVersion

이 리소스를 마지막으로 처리하는 Operator의 버전입니다.

string

readiness

구성 요소 및 소유 리소스의 준비 상태입니다.

string

이 예제 ServiceMeshControlPlane 정의에는 지원되는 모든 매개변수가 포함되어 있습니다.

ServiceMeshControlPlane 리소스 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.3
  proxy:
    runtime:
      container:
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 500m
            memory: 128Mi
  tracing:
    type: Jaeger
  gateways:
    ingress: # istio-ingressgateway
      service:
        type: ClusterIP
        ports:
        - name: status-port
          port: 15020
        - name: http2
          port: 80
          targetPort: 8080
        - name: https
          port: 443
          targetPort: 8443
      meshExpansionPorts: []
    egress: # istio-egressgateway
      service:
        type: ClusterIP
        ports:
        - name: status-port
          port: 15020
        - name: http2
          port: 80
          targetPort: 8080
        - name: https
          port: 443
          targetPort: 8443
    additionalIngress:
      some-other-ingress-gateway: {}
    additionalEgress:
      some-other-egress-gateway: {}

  policy:
    type: Mixer
    mixer: # only applies if policy.type: Mixer
      enableChecks: true
      failOpen: false

  telemetry:
    type: Istiod # or Mixer
    mixer: # only applies if telemetry.type: Mixer, for v1 telemetry
      sessionAffinity: false
      batching:
        maxEntries: 100
        maxTime: 1s
      adapters:
        kubernetesenv: true
        stdio:
          enabled: true
          outputAsJSON: true
  addons:
    grafana:
      enabled: true
      install:
        config:
          env: {}
          envSecrets: {}
        persistence:
          enabled: true
          storageClassName: ""
          accessMode: ReadWriteOnce
          capacity:
            requests:
              storage: 5Gi
        service:
          ingress:
            contextPath: /grafana
            tls:
              termination: reencrypt
    kiali:
      name: kiali
      enabled: true
      install: # install kiali CR if not present
        dashboard:
          viewOnly: false
          enableGrafana: true
          enableTracing: true
          enablePrometheus: true
      service:
        ingress:
          contextPath: /kiali
    jaeger:
      name: jaeger
      install:
        storage:
          type: Elasticsearch # or Memory
          memory:
            maxTraces: 100000
          elasticsearch:
            nodeCount: 3
            storage: {}
            redundancyPolicy: SingleRedundancy
            indexCleaner: {}
        ingress: {} # jaeger ingress configuration
  runtime:
    components:
      pilot:
        deployment:
          replicas: 2
        pod:
          affinity: {}
        container:
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 128Mi
      grafana:
        deployment: {}
        pod: {}
      kiali:
        deployment: {}
        pod: {}

1.24.2. spec 매개변수

1.24.2.1. 일반 매개변수

다음 예제는 ServiceMeshControlPlane 오브젝트의 spec.general 매개변수와 적절한 값과 함께 사용 가능한 매개변수에 대한 설명을 보여줍니다.

일반 매개변수 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  general:
    logging:
      componentLevels: {}
          # misc: error
      logAsJSON: false
    validationMessages: true

표 1.34. Istio 일반 매개변수

매개변수설명기본값
logging:

을 사용하여 Service Mesh Control Plane 구성 요소에 대한 로깅을 구성합니다.

 

해당 없음

logging:
 componentLevels:

를 사용하여 구성 요소 로깅 수준을 지정합니다.

가능한 값: trace, debug, info, warning, error, fatal, panic.

해당 없음

logging:
 logLevels:

가능한 값: trace, debug, info, warning, error, fatal, panic.

 

해당 없음

logging:
 logAsJSON:

를 사용하여 JSON 로깅을 활성화 또는 비활성화합니다.

true/false

해당 없음

validationMessages:

을 사용하여 istio.io 리소스의 상태 필드에 대한 유효성 검사 메시지를 활성화하거나 비활성화합니다. 이는 리소스의 구성 오류를 감지하는 데 유용할 수 있습니다.

true/false

해당 없음

1.24.2.2. 프로필 매개변수

ServiceMeshControlPlane 오브젝트 프로필을 사용하여 재사용 가능한 구성을 생성할 수 있습니다. 프로필 설정을 구성하지 않으면 Red Hat OpenShift Service Mesh는 기본 프로필을 사용합니다.

다음은 ServiceMeshControlPlane 오브젝트의 spec.profiles 매개변수를 설명하는 예입니다.

profile 매개변수 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  profiles:
  - YourProfileName

프로필 생성에 대한 자세한 내용은 컨트롤 플레인 프로필 생성을 참조하십시오.

보안 구성에 대한 자세한 예는 mTLS (mutual Transport Layer Security)를 참조하십시오.

1.24.2.3. techPreview 매개변수

spec.techPreview 매개변수를 사용하면 기술 프리뷰에 있는 기능에 조기 액세스할 수 있습니다.

중요

기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

1.24.2.4. 추적 매개변수

다음 예제에서는 ServiceMeshControlPlane 오브젝트의 spec.tracing 매개변수와 적절한 값과 함께 사용 가능한 매개변수에 대한 설명을 보여줍니다.

추적 매개변수 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.3
  tracing:
    sampling: 100
    type: Jaeger

표 1.35. Istio 추적 매개변수

매개변수설명기본값
tracing:
 sampling:

샘플링 비율은 Envoy 프록시가 추적을 생성하는 빈도를 결정합니다. 샘플링 비율을 사용하여 추적 시스템에 보고되는 요청의 백분율을 제어합니다.

0.1% (0에서 100%)의 증가를 나타내는 0에서 10000 사이의 정수 값. 예를 들어 값을 10 으로 설정하면 요청의 0.1%를 샘플링하고, 값을 100 으로 설정하면 요청의 백분율을 샘플링합니다. 요청의 백분율은 요청의 샘플 5%, 10000 으로 설정하면 요청의 100%를 샘플링합니다.

10000 (추적의 100%)

tracing:
 type:

현재 지원되는 유일한 추적 유형은 Jaeger입니다. Jaeger는 기본적으로 활성화되어 있습니다. 추적을 비활성화하려면 type 매개 변수를 None 으로 설정합니다.

none,Jaeger

Jaeger

1.24.2.5. 버전 매개변수

Red Hat OpenShift Service Mesh Operator는 ServiceMeshControlPlane 의 다양한 버전의 설치를 지원합니다. version 매개변수를 사용하여 설치할 Service Mesh Control Plane의 버전을 지정합니다. SMCP를 생성할 때 version 매개변수를 지정하지 않으면 Operator에서 해당 값을 최신 버전 (2.3)으로 설정합니다. 기존 ServiceMeshControlPlane 오브젝트는 Operator 업그레이드 중에 버전 설정을 유지합니다.

1.24.2.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

표 1.36. 3scale 매개변수

매개변수설명기본값

enabled

3scale 어댑터 사용 여부

true/false

false

PARAM_THREESCALE_LISTEN_ADDR

gRPC 서버의 수신 주소를 설정

유효한 포트 번호

3333

PARAM_THREESCALE_LOG_LEVEL

최소 로그 출력 수준을 설정합니다.

debug, info, warn, error 또는 none

info

PARAM_THREESCALE_LOG_JSON

로그 형식이 JSON인지 여부를 제어

true/false

true

PARAM_THREESCALE_LOG_GRPC

로그에 gRPC 정보가 포함되었는지 여부를 제어

true/false

true

PARAM_THREESCALE_REPORT_METRICS

3scale 시스템 및 백엔드 지표가 수집되어 Prometheus에 보고되는지 제어

true/false

true

PARAM_THREESCALE_METRICS_PORT

3scale /metrics 끝점을 스크랩할 수 있는 포트를 설정

유효한 포트 번호

8080

PARAM_THREESCALE_CACHE_TTL_SECONDS

캐시에서 만료된 항목을 제거하기 전에 대기하는 시간(초)

시간(초)

300

PARAM_THREESCALE_CACHE_REFRESH_SECONDS

캐시 요소를 새로 고침하려고 할 때 만료되기 전 시간

시간(초)

180

PARAM_THREESCALE_CACHE_ENTRIES_MAX

언제든지 캐시에 저장할 수 있는 항목의 최대 수. 캐싱을 비활성화하려면 0으로 설정합니다.

유효한 번호

1000

PARAM_THREESCALE_CACHE_REFRESH_RETRIES

캐시 업데이트 루프 중에 연결할 수 없는 호스트가 재시도되는 횟수

유효한 번호

1

PARAM_THREESCALE_ALLOW_INSECURE_CONN

3scale API를 호출할 때 인증서 확인을 건너뛸 수 있습니다. 이 설정 사용은 권장되지 않습니다.

true/false

false

PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS

3scale System 및 백엔드에 대한 요청을 종료하기 전 대기하는 시간(초)을 설정합니다.

시간(초)

10

PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS

연결이 닫히기 전에 연결할 수 있는 최대 시간(초)(+/-10% jitter)을 설정합니다.

시간(초)

60

PARAM_USE_CACHE_BACKEND

true인 경우, 권한 부여 요청에 대해 메모리 내 apisonator 캐시를 생성합니다.

true/false

false

PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS

백엔드 캐시가 활성화된 경우 3scale에 대해 캐시를 플러싱하는 간격(초)을 설정합니다.

시간(초)

15

PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED

백엔드 캐시가 권한 부여 데이터를 검색할 수 없을 때마다 요청을 거부(닫기)할지, 허용할지(열기) 여부

true/false

true

1.24.3. 상태 매개변수

status 매개변수는 서비스 메시의 현재 상태를 설명합니다. 이 정보는 Operator에서 생성하며 읽기 전용입니다.

표 1.37. Istio 상태 매개변수

이름설명유형

observedGeneration

가장 최근 조정 중에 컨트롤러가 관찰한 생성입니다. 상태의 정보는 이 특정 오브젝트 생성과 관련이 있습니다. status.conditionsstatus.observedGeneration 필드가 metadata.generation과 일치하지 않는 경우 최신 상태가 아닙니다.

정수

annotations

annotations 매개변수는 ServiceMeshControlPlane 오브젝트에서 배포한 구성 요소 수와 같은 일반적으로 중복되는 상태 정보를 저장합니다. 이러한 상태는 아직 JSONPath 표현식에서 오브젝트를 셀 수 없는 oc 명령줄 도구에서 사용됩니다.

구성 불가능

readiness

구성 요소 및 소유 리소스의 준비 상태입니다.

string

operatorVersion

이 리소스를 마지막으로 처리한 Operator의 버전입니다.

string

components

배포된 각 Service Mesh Control Plane 구성 요소의 상태를 표시합니다.

string

appliedSpec

모든 프로필이 적용된 후 구성 옵션의 결과 사양입니다.

ControlPlaneSpec

conditions

오브젝트의 현재 상태에 대해 사용 가능한 최신 관찰을 나타냅니다. Reconciled 는 Operator가 ServiceMeshControlPlane 리소스의 구성을 사용하여 배포된 구성 요소의 실제 상태를 조정했음을 나타냅니다. Installed 는 Service Mesh Control Plane이 설치되었음을 나타냅니다. Ready 는 모든 Service Mesh Control Plane 구성 요소가 준비되었음을 나타냅니다.

string

chartVersion

이 리소스를 위해 마지막으로 처리된 차트의 버전입니다.

string

appliedValues

차트를 생성하는 데 사용된 결과 values.yaml 파일입니다.

ControlPlaneSpec

1.24.4. 추가 리소스