8.8. Kafka MirrorMaker 구성 (더 이상 사용되지 않음)


KafkaMirrorMaker 사용자 정의 리소스의 사양 속성을 업데이트하여 Kafka MirrorMaker 배포를 구성합니다.

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

Kafka MirrorMaker 클러스터 구성 옵션을 자세히 이해하려면 AMQ Streams 사용자 정의 리소스 API 참조를 참조하십시오.

중요

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 와 함께 사용합니다.

KafkaMirrorMaker 사용자 정의 리소스 구성 예

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
소비자의 그룹 ID입니다.
4
소비자 스트림 수입니다.
5
오프셋 자동 커밋 간격(밀리초)입니다.
6
TLS 인증서가 소비자 또는 생산자를 위해 X.509 형식으로 저장되는 키 이름이 있는 TLS 암호화입니다. 인증서가 동일한 시크릿에 저장된 경우 여러 번 나열할 수 있습니다.
7
mTLS, 토큰 기반 OAuth, SASL 기반 SCRAM-SHA-256/SCRAM-SHA-512 또는 PLAIN으로 지정된 소비자 또는 생산자에 대한 인증입니다.
8
소비자 및 생산자에 대한 Kafka 구성 옵션입니다.
9
abortOnSendFailure 속성이 true 로 설정된 경우 Kafka MirrorMaker가 종료되고 메시지 전송 실패 후 컨테이너가 다시 시작됩니다.
10
소스에서 대상 Kafka 클러스터로 미러링된 포함된 주제 목록입니다.
11
지원되는 리소스 예약, 현재 cpumemory 요청, 사용할 수 있는 최대 리소스를 지정하기 위한 제한입니다.
12
지정된 로거 및 로그 수준이 직접(인라인) 또는 ConfigMap을 통해 간접적으로(외부) 추가됩니다. 사용자 정의 Log4j 구성은 ConfigMap의 log4j.properties 또는 log4j2.properties 키 아래에 배치해야 합니다. mirrorMaker에는 mirrormaker.root.logger 라는 단일 로거가 있습니다. 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다.
13
컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검입니다.
14
Prometheus 지표: 이 예제에서 Prometheus Cryostat 내보내기에 대한 구성이 포함된 ConfigMap을 참조하여 활성화됩니다. metricsConfig.valueFrom.configMapKeyRef.key 아래에 빈 파일이 포함된 ConfigMap에 대한 참조를 사용하여 추가 구성 없이 메트릭을 활성화할 수 있습니다.
15
Kafka MirrorMaker를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
16
ADVANCED OPTION: 컨테이너 이미지 구성 - 특별한 경우에만 권장됩니다.
17
템플릿 사용자 지정. 여기에서 Pod는 유사성 방지를 사용하여 예약되므로 이름이 동일한 노드에 Pod가 예약되지 않습니다.
18
환경 변수는 분산 추적에 대해 설정됩니다.
19
OpenTelemetry를 사용하여 분산 추적을 활성화합니다.
주의

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

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동