2.5. Kafka MirrorMaker 클러스터 구성


KafkaMirrorMaker 리소스를 사용하여 Kafka MirrorMaker 배포를 구성합니다. KafkaMirrorMaker는 Kafka 클러스터 간에 데이터를 복제합니다.

4.2.112절. “KafkaMirrorMaker 스키마 참조” KafkaMirrorMaker 리소스의 전체 스키마를 설명합니다.

AMQ Streams를 MirrorMaker 또는 MirrorMaker 2 와 함께 사용할 수 있습니다. MirrorMaker 2는 최신 버전이며 Kafka 클러스터 간 데이터를 더 효율적으로 미러링할 수 있는 방법을 제공합니다.

중요

Kafka MirrorMaker 1(문서의 MirrorMaker 라고도 함)은 Apache Kafka 3.0.0에서 더 이상 사용되지 않으며 Apache Kafka 4.0.0에서 제거됩니다. 결과적으로 Kafka MirrorMaker 1을 배포하는 데 사용되는 KafkaMirrorMaker 사용자 정의 리소스도 AMQ Streams에서 더 이상 사용되지 않습니다. Apache Kafka 4.0.0을 채택하면 KafkaMirrorMaker 리소스가 AMQ Streams에서 제거됩니다. 대체 방법으로 KafkaMirrorMaker2 사용자 정의 리소스를 IdentityReplicationPolicy 와 함께 사용합니다.

2.5.1. Kafka MirrorMaker 구성

KafkaMirrorMaker 리소스의 속성을 사용하여 Kafka MirrorMaker 배포를 구성합니다.

TLS 또는 SASL 인증을 사용하여 생산자 및 소비자에 대한 액세스 제어를 구성할 수 있습니다. 다음 절차에서는 소비자 및 생산자 측에서 TLS 암호화 및 mTLS 인증을 사용하는 구성을 보여줍니다.

사전 요구 사항

  • 다음을 실행하는 방법에 대한 자세한 내용은 OpenShift에 AMQ Streams 배포 및 업그레이드 가이드를 참조하십시오.

  • 소스 및 대상 Kafka 클러스터 사용 가능

절차

  1. KafkaMirrorMaker 리소스의 spec 속성을 편집합니다.

    구성할 수 있는 속성은 다음 예제 구성에 표시되어 있습니다.

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaMirrorMaker
    metadata:
      name: my-mirror-maker
    spec:
      replicas: 3 
    1
    
      consumer:
        bootstrapServers: my-source-cluster-kafka-bootstrap:9092 
    2
    
        groupId: "my-group" 
    3
    
        numStreams: 2 
    4
    
        offsetCommitInterval: 120000 
    5
    
        tls: 
    6
    
          trustedCertificates:
          - secretName: my-source-cluster-ca-cert
            certificate: ca.crt
        authentication: 
    7
    
          type: tls
          certificateAndKey:
            secretName: my-source-secret
            certificate: public.crt
            key: private.key
        config: 
    8
    
          max.poll.records: 100
          receive.buffer.bytes: 32768
      producer:
        bootstrapServers: my-target-cluster-kafka-bootstrap:9092
        abortOnSendFailure: false 
    9
    
        tls:
          trustedCertificates:
          - secretName: my-target-cluster-ca-cert
            certificate: ca.crt
        authentication:
          type: tls
          certificateAndKey:
            secretName: my-target-secret
            certificate: public.crt
            key: private.key
        config:
          compression.type: gzip
          batch.size: 8192
      include: "my-topic|other-topic" 
    10
    
      resources: 
    11
    
        requests:
          cpu: "1"
          memory: 2Gi
        limits:
          cpu: "2"
          memory: 2Gi
      logging: 
    12
    
        type: inline
        loggers:
          mirrormaker.root.logger: INFO
      readinessProbe: 
    13
    
        initialDelaySeconds: 15
        timeoutSeconds: 5
      livenessProbe:
        initialDelaySeconds: 15
        timeoutSeconds: 5
      metricsConfig: 
    14
    
       type: jmxPrometheusExporter
       valueFrom:
         configMapKeyRef:
           name: my-config-map
           key: my-key
      jvmOptions: 
    15
    
        "-Xmx": "1g"
        "-Xms": "1g"
      image: my-org/my-image:latest 
    16
    
      template: 
    17
    
        pod:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                - labelSelector:
                    matchExpressions:
                      - key: application
                        operator: In
                        values:
                          - postgresql
                          - mongodb
                  topologyKey: "kubernetes.io/hostname"
        mirrorMakerContainer: 
    18
    
          env:
            - name: OTEL_SERVICE_NAME
              value: my-otel-service
            - name: OTEL_EXPORTER_OTLP_ENDPOINT
              value: "http://otlp-host:4317"
      tracing: 
    19
    
        type: opentelemetry
    1
    2
    소비자 및 생산자용 부트스트랩 서버 입니다.
    3
    4
    5
    6
    소비자 또는 생산자의 X.509 형식으로 저장되는 TLS 인증서의 키 이름이 포함된 TLS 암호화 입니다. 인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.
    7
    mTLS,토큰 기반 OAuth, SASL 기반 SCRAM -256/SCRAM-SHA -512, 또는 PLAIN 으로 지정된 소비자 또는 생산자에 대한 인증입니다.
    8
    소비자생산자 에 대한 Kafka 구성 옵션.
    9
    abortOnSendFailure 속성이 true 로 설정되면 Kafka MirrorMaker가 종료되고 메시지에 대한 전송 실패 후에 컨테이너가 다시 시작됩니다.
    10
    소스에서 대상 Kafka 클러스터로 미러링된 포함된 주제 목록입니다.
    11
    지원되는 리소스 예약, 현재 cpumemory 및 사용할 수 있는 최대 리소스를 지정하는 제한입니다.
    12
    지정된 로거 및 로그 수준이 직접 (인라인) 추가되거나 ConfigMap을 통해 간접적으로(외부)합니다. 사용자 지정 ConfigMap은 log4j.properties 또는 log4j2.properties 키에 배치해야 합니다. MirrorMaker에는 mirrormaker.root.logger 라는 단일 로거가 있습니다. 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다.
    13
    컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
    14
    Prometheus 지표: 이 예제에서 Prometheus exporter에 대한 구성이 포함된 ConfigMap을 참조하여 활성화합니다. metricsConfig.valueFrom.configMapKeyRef.key 아래에 빈 파일이 포함된 ConfigMap에 대한 참조를 사용하여 추가 구성 없이 메트릭을 활성화할 수 있습니다.
    15
    16
    ADVANCED OPTION : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
    17
    템플릿 사용자 지정. 여기에서 Pod는 유사성 방지로 예약되므로 Pod는 동일한 호스트 이름이 있는 노드에 예약되지 않습니다.
    18
    환경 변수는 분산 추적을 위해 설정됩니다.
    19
    OpenTelemetry를 사용하여 분산 추적을 활성화합니다.
    주의

    abortOnSendFailure 속성을 false 로 설정하면 생산자가 주제의 다음 메시지를 보냅니다. 실패 메시지를 다시 전송하려는 시도가 없기 때문에 원본 메시지가 손실될 수 있습니다.

  2. 리소스를 생성하거나 업데이트합니다.

    oc apply -f <your-file>

2.5.2. Kafka MirrorMaker 클러스터 리소스 목록

다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.

<mirror-maker-name>-mirror-maker
Kafka MirrorMaker 포드 생성을 담당하는 배포입니다.
<mirror-maker-name>-config
Kafka MirrorMaker에 대한 보조 구성을 포함하고 Kafka 브로커 Pod에서 볼륨으로 마운트되는 ConfigMap입니다.
<mirror-maker-name>-mirror-maker
Kafka MirrorMaker 작업자 노드에 대해 구성된 Pod 중단 예산입니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동