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

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

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

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

표 1.32. 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 ).

문자열

spec

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

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

status

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

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

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

표 1.33. 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. type Istiod,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,remotetype. type Istiod,Mixer 또는 None 으로 설정할 수 있습니다.

tracing

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

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

버전

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

문자열

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

표 1.34. ServiceMeshControlPlane 리소스 ControlPlaneStatus

이름설명유형

annotations

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

구성 불가능

conditions

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

문자열

components

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

문자열

appliedSpec

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

ControlPlaneSpec

appliedValues

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

ControlPlaneSpec

chartVersion

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

문자열

observedGeneration

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

integer

operatorVersion

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

문자열

readiness

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

문자열

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

ServiceMeshControlPlane 리소스 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.2
  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: {}