2.5. Kafka MirrorMaker 2.0 클러스터 구성
이 섹션에서는 AMQ Streams 클러스터에서 Kafka MirrorMaker 2.0 배포를 구성하는 방법을 설명합니다.
MirrorMaker 2.0은 데이터 센터 내부 또는 여러 개의 활성 Kafka 클러스터 간에 데이터를 복제하는 데 사용됩니다.
클러스터 전체에서 데이터 복제는 다음과 같은 시나리오를 지원합니다.
- 시스템 장애 발생 시 데이터 복구
- 분석을 위한 데이터 집계
- 특정 클러스터에 대한 데이터 액세스 제한
- 대기 시간을 개선하기 위해 특정 위치에서 데이터 제공
MirrorMaker 2.0을 사용하는 경우 KafkaMirrorMaker2 리소스를 구성합니다. KafkaMirrorMaker2 리소스의 전체 스키마는 KafkaMirrorMaker2 스키마 참조에 설명되어 있습니다.
MirrorMaker 2.0은 클러스터 간에 데이터를 복제하는 완전히 새로운 방법을 도입했습니다.
결과적으로 리소스 구성이 이전 버전의 MirrorMaker와 다릅니다. MirrorMaker 2.0을 사용하도록 선택하는 경우 현재 레거시 지원이 없으므로 모든 리소스를 수동으로 새 형식으로 변환해야 합니다.
2.5.1. MirrorMaker 2.0 데이터 복제 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0은 소스 Kafka 클러스터의 메시지를 사용하여 대상 Kafka 클러스터에 씁니다.
MirrorMaker 2.0은 다음을 사용합니다.
- 소스 클러스터의 데이터를 사용하는 소스 클러스터 구성
- 데이터를 대상 클러스터로 출력하기 위한 대상 클러스터 구성
MirrorMaker 2.0은 Kafka Connect 프레임워크를 기반으로 하며 클러스터 간 데이터 전송을 관리하는 커넥터 를 기반으로 합니다.
MirrorMaker 2.0은 다음 커넥터를 사용합니다.
MirrorSourceConnector- 소스 커넥터는 소스 클러스터에서 대상 클러스터로 주제를 복제합니다.
MirrorCheckpointConnector- 체크포인트 커넥터는 주기적으로 오프셋을 추적합니다. 활성화하면 소스 클러스터와 대상 클러스터 간에 소비자 그룹 오프셋도 동기화합니다.
MirrorHeartbeatConnector- 하트비트 커넥터는 소스 클러스터와 대상 클러스터 간의 연결을 주기적으로 확인합니다.
한 클러스터에서 다른 클러스터로 데이터를 미러링 하는 프로세스는 비동기적입니다. 권장되는 패턴은 메시지가 소스 Kafka 클러스터와 함께 로컬로 생성된 다음 대상 Kafka 클러스터에 원격으로 사용하는 것입니다.
MirrorMaker 2.0은 두 개 이상의 소스 클러스터에서 사용할 수 있습니다.
그림 2.1. 두 클러스터에서 복제
기본적으로 소스 클러스터의 새로운 주제는 10분마다 생성됩니다. 소스 커넥터 구성에 refresh.topics.interval.seconds 를 추가하여 빈도를 변경할 수 있습니다. 그러나 작업 빈도를 늘리면 전체 성능에 영향을 미칠 수 있습니다.
2.5.2. 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0을 활성/패시브 또는 활성 / 활성 클러스터 구성에서 사용할 수 있습니다.
- 활성/활성 구성에서 두 클러스터 모두 활성 상태이며 동일한 데이터를 동시에 제공하므로 다른 지리적 위치에서 로컬로 동일한 데이터를 사용할 수 있도록 하려는 경우 유용합니다.
- 활성/수동 구성에서 활성 클러스터의 데이터는 시스템 장애 시 데이터 복구와 같이 대기 상태로 유지되는 패시브 클러스터에 복제됩니다.
생산자와 소비자는 활성 클러스터에만 연결할 것으로 예상됩니다.
각 대상 대상에 MirrorMaker 2.0 클러스터가 필요합니다.
2.5.2.1. 양방향 복제(활성/활성) 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0 아키텍처는 활성/활성 클러스터 구성에서 양방향 복제를 지원합니다.
각 클러스터는 소스 및 원격 주제의 개념을 사용하여 다른 클러스터의 데이터를 복제합니다. 각 클러스터에 동일한 항목이 저장되므로 원격 주제는 MirrorMaker 2.0으로 이름이 자동으로 변경되어 소스 클러스터를 나타냅니다. 원래 클러스터의 이름 앞에 주제 이름 앞에 추가됩니다.
그림 2.2. 주제 이름 변경
원래 클러스터에 플래그를 지정하면 주제가 해당 클러스터로 다시 복제되지 않습니다.
원격 주제를 통한 복제 개념은 데이터 집계가 필요한 아키텍처를 구성할 때 유용합니다. 소비자는 별도의 집계 클러스터 없이도 동일한 클러스터 내의 소스 및 원격 주제를 구독할 수 있습니다.
2.5.2.2. Unidirectional replication (active/passive) 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0 아키텍처는 활성/수동 클러스터 구성에서 비방향 복제를 지원합니다.
활성/수동 클러스터 구성을 사용하여 백업을 수행하거나 데이터를 다른 클러스터로 마이그레이션할 수 있습니다. 이 경우 원격 주제의 자동 이름 변경을 원하지 않을 수 있습니다.
소스 커넥터 구성에 IdentityReplicationPolicy 를 추가하여 자동 이름 변경을 덮어쓸 수 있습니다. 이 구성을 적용하면 주제는 원래 이름을 유지합니다.
2.5.2.3. 주제 구성 동기화 링크 복사링크가 클립보드에 복사되었습니다!
주제 구성은 소스 클러스터와 대상 클러스터 간에 자동으로 동기화됩니다. 구성 속성을 동기화하면 재조정 필요성이 줄어듭니다.
2.5.2.4. 데이터 무결성 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0은 소스 주제를 모니터링하고 구성 변경 사항을 원격 주제로 전파하여 누락된 파티션을 확인 및 생성합니다. MirrorMaker 2.0만 원격 항목에 쓸 수 있습니다.
2.5.2.5. 오프셋 추적 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0은 내부 주제를 사용하여 소비자 그룹의 오프셋을 추적합니다.
-
offset-syncs주제는 레코드 메타데이터에서 복제된 주제 파티션의 소스 및 대상 오프셋을 매핑합니다. -
Checkpoints주제는 각 소비자 그룹의 복제된 주제 파티션에 대해 소스 및 대상 클러스터에 마지막으로 커밋된 오프셋을 매핑합니다.
MirrorCheckpointConnector 는 오프셋 추적을 위한 체크포인트 를 내보냅니다. 체크포인트 항목에 대한 오프셋은 구성을 통해 미리 정해진 간격으로 추적됩니다. 두 항목 모두 장애 조치의 올바른 오프셋 위치에서 복제를 완전히 복원할 수 있습니다.
offset-syncs 주제의 위치는 기본적으로 소스 클러스터입니다. offset-syncs.topic.location 커넥터 구성을 사용하여 이를 대상 클러스터로 변경할 수 있습니다. 주제가 포함된 클러스터에 대한 읽기/쓰기 액세스 권한이 필요합니다. 대상 클러스터를 offset-syncs 주제의 위치로 사용하면 소스 클러스터에 대한 읽기 권한만 있는 경우에도 MirrorMaker 2.0을 사용할 수 있습니다.
2.5.2.6. 소비자 그룹 오프셋 동기화 링크 복사링크가 클립보드에 복사되었습니다!
__consumer_offsets 주제는 각 소비자 그룹에 대해 커밋된 오프셋에 대한 정보를 저장합니다. 오프셋 동기화는 소스 클러스터의 소비자 그룹에 대한 소비자 오프셋을 대상 클러스터의 소비자 오프셋 주제로 주기적으로 전송합니다.
오프셋 동기화는 특히 활성/수동 구성에서 유용합니다. 활성 클러스터가 다운되면 소비자 애플리케이션은 패시브(standby) 클러스터로 전환하고 마지막으로 전송된 오프셋 위치에서 선택할 수 있습니다.
주제 오프셋 동기화를 사용하려면 체크포인트 커넥터 구성에 sync.group.offsets.enabled 를 추가하고 속성을 true 로 설정하여 동기화를 활성화합니다. 동기화는 기본적으로 비활성화되어 있습니다.
소스 커넥터에서 IdentityReplicationPolicy 를 사용하는 경우 Checkpoint 커넥터 구성에서도 구성해야 합니다. 이렇게 하면 미러링된 소비자 오프셋이 올바른 항목에 적용됩니다.
소비자 오프셋은 대상 클러스터에서 활성 상태가 아닌 소비자 그룹에 대해서만 동기화됩니다. 소비자 그룹이 대상 클러스터에 있는 경우 동기화를 수행할 수 없으며 UNKNOWN_MEMBER_ID 오류가 반환됩니다.
활성화하면 소스 클러스터의 오프셋 동기화가 주기적으로 수행됩니다. checkpoint 커넥터 구성에 sync.group.offsets.interval.seconds 및 emit.checkpoints.interval.seconds 를 추가하여 빈도를 변경할 수 있습니다. 속성은 소비자 그룹 오프셋이 동기화되는 빈도(초)와 오프셋 추적을 위해 내보낸 체크포인트의 빈도를 지정합니다. 두 속성의 기본값은 60초입니다. 기본적으로 10분마다 수행되는 refresh.groups.interval.seconds 속성을 사용하여 새 소비자 그룹의 점검 빈도를 변경할 수도 있습니다.
동기화는 시간 기반이므로 소비자가 수동 클러스터로 전환하면 메시지가 중복될 수 있습니다.
2.5.2.7. 연결 검사 링크 복사링크가 클립보드에 복사되었습니다!
MirrorHeartbeatConnector 는 클러스터 간 연결을 확인하기 위해 하트비트 를 내보냅니다.
내부 하트비트 주제는 소스 클러스터에서 복제됩니다. 대상 클러스터는 하트비트 주제를 사용하여 다음을 확인합니다.
- 클러스터 간 연결을 관리하는 커넥터가 실행 중입니다.
- 소스 클러스터를 사용할 수 있음
2.5.3. 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터 간 데이터 동기화를 오케스트레이션하는 내부 커넥터에 대해 Mirrormaker 2.0 커넥터 구성을 사용합니다.
다음 표에서는 커넥터 속성과 이를 사용하도록 구성된 커넥터에 대해 설명합니다.
| 속성 | sourceConnector | checkpointConnector | heartbeatConnector |
|---|---|---|---|
| ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ |
| ✓ | ✓ | |
| ✓ | ✓ | |
| ✓ | ✓ | |
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ |
2.5.4. 커넥터 생산자 및 소비자 구성 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2.0 커넥터는 내부 생산자 및 소비자를 사용합니다. 필요한 경우 이러한 생산자 및 소비자를 구성하여 기본 설정을 덮어쓸 수 있습니다.
예를 들어 많은 양의 메시지를 더 잘 수용하도록 대상 Kafka 클러스터에 주제를 보내는 소스 생산자의 batch.size 를 늘릴 수 있습니다.
생산자 및 소비자 구성 옵션은 MirrorMaker 2.0 구현에 따라 다르며 변경될 수 있습니다.
다음 표에서는 각 커넥터의 생산자 및 소비자와 구성을 추가할 수 있는 위치를 설명합니다.
| 유형 | 설명 | 설정 |
|---|---|---|
| 생산자 | 대상 Kafka 클러스터로 주제 메시지를 보냅니다. 대량의 데이터를 처리할 때 이 생산자의 구성을 조정하는 것이 좋습니다. |
|
| 생산자 |
복제된 주제 파티션에 대한 소스 및 대상 오프셋을 매핑하는 |
|
| 소비자 | 소스 Kafka 클러스터에서 주제 메시지를 검색합니다. |
|
| 유형 | 설명 | 설정 |
|---|---|---|
| 생산자 | 소비자 오프셋 체크포인트를 내보냅니다. |
|
| 소비자 |
|
|
target Kafka 클러스터를 offset-syncs 주제의 위치로 사용하도록 offset-syncs.topic.location 을 설정할 수 있습니다.
| 유형 | 설명 | 설정 |
|---|---|---|
| 생산자 | 하트비트를 내보냅니다. |
|
다음 예제에서는 생산자와 소비자를 구성하는 방법을 보여줍니다.
커넥터 생산자 및 소비자를 위한 구성 예
2.5.5. 최대 작업 수 지정 링크 복사링크가 클립보드에 복사되었습니다!
Connectors는 Kafka 내외로 데이터를 이동하는 작업을 생성합니다. 각 커넥터는 작업을 실행하는 작업자 Pod 그룹에 분산된 하나 이상의 작업으로 구성됩니다. 많은 수의 파티션을 복제하거나 많은 수의 소비자 그룹의 오프셋을 동기화할 때 작업 수를 늘리는 데 도움이 될 수 있습니다.
작업은 병렬로 실행됩니다. 작업자에는 하나 이상의 작업이 할당됩니다. 단일 작업은 하나의 작업자 Pod에서 처리하므로 작업보다 더 많은 작업자 Pod가 필요하지 않습니다. 작업자보다 많은 작업이 있는 경우 작업자는 여러 작업을 처리합니다.
tasksMax 속성을 사용하여 MirrorMaker 구성에서 최대 커넥터 작업 수를 지정할 수 있습니다. 최대 작업 수를 지정하지 않으면 기본 설정은 단일 작업입니다.
하트비트 커넥터는 항상 단일 작업을 사용합니다.
소스 및 체크포인트 커넥터에 대해 시작된 작업 수는 가능한 최대 작업 수와 tasksMax 값 사이의 낮은 값입니다. 소스 커넥터의 경우 가능한 최대 작업 수가 소스 클러스터에서 복제되는 각 파티션에 대해 1개입니다. 체크포인트 커넥터의 경우 가능한 최대 작업 수는 소스 클러스터에서 복제되는 각 소비자 그룹에 대해 하나씩입니다. 최대 작업 수를 설정할 때 프로세스를 지원하는 파티션 수와 하드웨어 리소스를 고려하십시오.
인프라가 처리 오버헤드를 지원하는 경우 작업 수를 늘리면 처리량과 대기 시간이 개선될 수 있습니다. 예를 들어 작업을 더 추가하면 많은 수의 파티션 또는 소비자 그룹이 있는 경우 소스 클러스터를 폴링하는 데 걸리는 시간이 줄어듭니다.
체크포인트 커넥터에 대한 작업 수를 늘리면 파티션 수가 많은 경우에 유용합니다.
소스 커넥터의 작업 수 증가
체크포인트 커넥터에 대한 작업 수를 늘리면 많은 수의 소비자 그룹이 있을 때 유용합니다.
체크포인트 커넥터의 작업 수 증가
기본적으로 MirrorMaker 2.0은 10분마다 새 소비자 그룹을 확인합니다. refresh.groups.interval.seconds 구성을 조정하여 빈도를 변경할 수 있습니다. 더 낮게 조정할 때 주의하십시오. 더 자주 검사하면 성능에 부정적인 영향을 미칠 수 있습니다.
2.5.5.1. 커넥터 작업 확인 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus 및 Grafana를 사용하여 배포를 모니터링하는 경우 MirrorMaker 2.0 성능을 확인할 수 있습니다. AMQ Streams와 함께 제공되는 MirrorMaker 2.0 Grafana 대시보드 예제에서는 작업 및 대기 시간과 관련된 다음 메트릭을 보여줍니다.
- 작업 수
- 복제 대기 시간
- 오프셋 동기화 대기 시간
2.5.6. ACL 규칙 동기화 링크 복사링크가 클립보드에 복사되었습니다!
User Operator를 사용하지 않는 경우 원격 항목에 대한 ACL 액세스가 가능합니다.
User Operator 없이 AclAuthorizer 를 사용하는 경우 브로커에 대한 액세스를 관리하는 ACL 규칙은 원격 주제에도 적용됩니다. 소스 주제를 읽을 수 있는 사용자는 이와 동등한 원격 항목을 읽을 수 있습니다.
OAuth 2.0 인증에서는 이러한 방식으로 원격 항목에 대한 액세스를 지원하지 않습니다.
2.5.7. Kafka MirrorMaker 2.0 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMaker2 리소스의 속성을 사용하여 Kafka MirrorMaker 2.0 배포를 구성합니다. MirrorMaker 2.0을 사용하여 Kafka 클러스터 간에 데이터를 동기화
구성은 다음을 지정해야 합니다.
- 각 Kafka 클러스터
- TLS 인증을 포함하여 각 클러스터에 대한 연결 정보
복제 흐름 및 방향
- 클러스터 간 클러스터
- 주제 주제
이전 버전의 MirrorMaker는 계속 지원됩니다. 이전 버전에 대해 구성된 리소스를 사용하려면 MirrorMaker 2.0에서 지원하는 형식으로 업데이트해야 합니다.
MirrorMaker 2.0은 복제 요인과 같은 속성의 기본 구성 값을 제공합니다. 기본값이 변경되지 않은 최소 구성은 다음과 같습니다.
MirrorMaker 2.0의 최소 구성
TLS 또는 SASL 인증을 사용하여 소스 및 대상 클러스터에 대한 액세스 제어를 구성할 수 있습니다. 다음 절차에서는 소스 및 대상 클러스터에 TLS 암호화 및 인증을 사용하는 구성을 보여줍니다.
KafkaMirrorMaker2 리소스의 소스 클러스터에서 복제하려는 주제 및 소비자 그룹을 지정할 수 있습니다. 이 작업을 수행하려면 topicsPattern 및 groupsPattern 속성을 사용합니다. 이름 목록을 제공하거나 정규식을 사용할 수 있습니다. 기본적으로 topicsPattern 및 groupsPattern 속성을 설정하지 않으면 모든 주제와 소비자 그룹이 복제됩니다. 정규식으로 ".*" 를 사용하여 모든 주제 및 소비자 그룹을 복제할 수도 있습니다. 그러나 클러스터에 불필요한 추가 로드를 유발하지 않도록 하는 데 필요한 주제 및 소비자 그룹만 지정합니다.
대량의 메시지 처리
많은 양의 메시지를 처리하도록 구성을 조정할 수 있습니다. 자세한 내용은 2.7절. “대량의 메시지 처리”의 내용을 참조하십시오.
사전 요구 사항
- AMQ Streams가 실행 중
- 소스 및 대상 Kafka 클러스터를 사용할 수 있습니다.
절차
KafkaMirrorMaker2리소스의사양속성을 편집합니다.구성할 수 있는 속성은 이 예제 구성에 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kafka Connect 및 Mirror Maker 2.0 버전은 항상 동일합니다.
- 2
- 작업을 실행하는 작업자 의 복제본 노드 수입니다.
- 3
- Kafka Connect의 Kafka 클러스터 별칭 은 대상 Kafka 클러스터를 지정해야 합니다. Kafka 클러스터는 내부 주제로 Kafka Connect에서 사용합니다.
- 4
- 동기화되는 Kafka 클러스터에 대한 사양 입니다.
- 5
- 소스 Kafka 클러스터의 클러스터 별칭 입니다.
- 6
- 여기에 표시된 대로 TLS 메커니즘 을 사용하는 소스 클러스터에 대한 인증 또는 SASL 기반 SCRAM-SHA-256/SCRAM-SHA-512 또는 PLAIN 메커니즘을 사용합니다. ???
- 7
- 소스 Kafka 클러스터에 연결하기 위한 부트스트랩 서버 입니다.
- 8
- TLS 인증서가 소스 Kafka 클러스터의 X.509 형식으로 저장되는 키 이름이 있는 TLS 암호화 입니다. 인증서가 동일한 시크릿에 저장된 경우 여러 번 나열할 수 있습니다.
- 9
- 대상 Kafka 클러스터의 클러스터 별칭 입니다.
- 10
- 대상 Kafka 클러스터에 대한 인증은 소스 Kafka 클러스터와 동일한 방식으로 구성됩니다.
- 11
- 대상 Kafka 클러스터에 연결하기 위한 부트스트랩 서버 입니다.
- 12
- Kafka Connect 구성. 표준 Apache Kafka 구성은 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
- 13
- 외부 리스너가 TLS 버전에 대한 특정 암호화 제품군 과 함께 실행되도록 SSL 속성입니다.
- 14
- 호스트 이름 확인은
HTTPS로 설정하여 활성화됩니다. 빈 문자열은 확인을 비활성화합니다. - 15
- 대상 Kafka 클러스터의 TLS 암호화는 소스 Kafka 클러스터와 동일한 방식으로 구성됩니다.
- 16
- 17
- MirrorMaker 2.0 커넥터에서 사용하는 소스 클러스터의 클러스터 별칭 입니다.
- 18
- MirrorMaker 2.0 커넥터에서 사용하는 대상 클러스터의 클러스터 별칭 입니다.
- 19
- 원격 주제 를 생성하는
MirrorSourceConnector에 대한 구성입니다. 구성이 기본 구성 옵션을 덮어씁니다. - 20
- 커넥터가 생성할 수 있는 최대 작업 수입니다. 작업은 데이터 복제를 처리하고 병렬로 실행됩니다. 인프라가 처리 오버헤드를 지원하는 경우 이 값을 늘리면 처리량이 향상될 수 있습니다. Kafka Connect는 클러스터 구성원 간에 작업을 배포합니다. 작업자보다 많은 작업이 있는 경우 작업자에 여러 작업이 할당됩니다. 싱크 커넥터의 경우 소비되는 각 주제 파티션에 대해 하나의 작업을 수행하는 것을 목표로 합니다. 소스 커넥터의 경우 병렬로 실행할 수 있는 작업 수도 외부 시스템에 따라 달라질 수 있습니다. 커넥터는 병렬 처리를 수행할 수 없는 경우 최대 작업 수보다 적은 수를 생성합니다.
- 21
- 대상 클러스터에서 생성된 미러링된 항목의 복제 인수입니다.
- 22
- 소스 및 대상 클러스터의 오프셋을 매핑하는
MirrorSourceConnectoroffset-syncs내부 주제의 복제 인수입니다. - 23
- ACL 규칙 동기화 가 활성화되면 ACL이 동기화된 항목에 적용됩니다. 기본값은
true입니다. 이 기능은 User Operator와 호환되지 않습니다. User Operator를 사용하는 경우 이 속성을false로 설정합니다. - 24
- 새 주제의 검사 빈도를 변경하는 선택적 설정입니다. 기본값은 10분마다 확인용입니다.
- 25
- 원격 주제의 이름 변경에 사용되는 구분자를 정의합니다.
- 26
- 원격 주제의 자동 이름을 재정의하는 정책을 추가합니다. 소스 클러스터 이름이 있는 이름을 보류하는 대신 주제는 원래 이름을 유지합니다. 이 선택적 설정은 활성/수동 백업 및 데이터 마이그레이션에 유용합니다. 주제 오프셋 동기화를 구성하려면 이 속성을
checkpointConnector.config에도 설정해야 합니다. - 27
- 연결 검사를 수행하는
MirrorHeartbeatConnector에 대한 구성입니다. 구성이 기본 구성 옵션을 덮어씁니다. - 28
- 대상 클러스터에서 생성된 하트비트 주제의 복제 요인입니다.
- 29
- 오프셋 을 추적하는
MirrorCheckpointConnector에 대한 구성입니다. 구성이 기본 구성 옵션을 덮어씁니다. - 30
- 대상 클러스터에서 생성된 체크포인트 주제의 복제 요인입니다.
- 31
- 새 소비자 그룹의 점검 빈도를 변경하는 선택적 설정입니다. 기본값은 10분마다 확인용입니다.
- 32
- 활성/수동 구성의 복구에 유용한 소비자 그룹 오프셋을 동기화하는 선택적 설정입니다. 동기화는 기본적으로 활성화되어 있지 않습니다.
- 33
- 소비자 그룹 오프셋의 동기화가 활성화된 경우 동기화 빈도를 조정할 수 있습니다.
- 34
- 오프셋 추적의 검사 빈도를 조정합니다. 오프셋 동기화의 빈도를 변경하는 경우 이러한 검사의 빈도를 조정해야 할 수도 있습니다.
- 35
- 쉼표로 구분된 목록 또는 정규식 패턴으로 정의된 소스 클러스터의 복제를 주제로 지정합니다. 소스 커넥터는 지정된 항목을 복제합니다. 체크포인트 커넥터는 지정된 항목에 대한 오프셋을 추적합니다. 여기에서는 이름으로 세 가지 주제를 요청합니다.
- 36
- 쉼표로 구분된 목록 또는 정규식 패턴으로 정의된 소스 클러스터의 소비자 그룹 복제. 체크포인트 커넥터는 지정된 소비자 그룹을 복제합니다. 여기에서는 이름으로 세 개의 소비자 그룹을 요청합니다.
- 37
- 38
- 지정된 Kafka Connect 로거 및 로그 수준이 직접(
인라인) 또는 ConfigMap을 통해 간접적으로(외부)됩니다. 사용자 정의 ConfigMap은log4j.properties또는log4j2.properties키 아래에 배치해야 합니다. Kafka Connectlog4j.rootLogger로거의 경우 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 39
- 컨테이너를 다시 시작할 시기(라이브)와 컨테이너가 트래픽을 허용할 시기(준비)를 확인할 상태 점검 입니다.
- 40
- Kafka Mirror Maker를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
- 41
- ADVANCED OPTION : 특수한 상황에서만 권장되는 컨테이너 이미지 구성입니다.
- 42
- SPECIALIZED OPTION: 배포에 대한 Rack 인식 구성입니다. 이는 지역이 아닌 동일한 위치 내의 배포를 위한 특수 옵션입니다. 리더 복제본 대신 커넥터가 가장 가까운 복제본에서 사용할 수 있도록 하려면 이 옵션을 사용합니다. 경우에 따라 가장 가까운 복제본에서 소비하면 네트워크 사용률을 개선하거나 비용을 절감할 수 있습니다.
topologyKey는 랙 ID가 포함된 노드 레이블과 일치해야 합니다. 이 구성에 사용된 예제에서는 표준topology.kubernetes.io/zone레이블을 사용하는 영역을 지정합니다. 가장 가까운 복제본에서 사용하려면 Kafka 브로커 구성에서RackAwareReplicaSelector를 활성화합니다. - 43
- 템플릿 사용자 지정. 여기에서 Pod는 유사성 방지를 사용하여 예약되므로 이름이 동일한 노드에 Pod가 예약되지 않습니다.
- 44
- 환경 변수는 Jaeger를 사용하여 분산 추적에도 설정됩니다.
- 45
- 46
- Kafka MirrorMaker에 환경 변수로 마운트된 OpenShift Secret의 외부 구성입니다. 구성 공급자 플러그인 을 사용하여 외부 소스에서 구성 값을 로드할 수도 있습니다.
리소스를 생성하거나 업데이트합니다.
oc apply -f MIRRORMAKER-CONFIGURATION-FILE
oc apply -f MIRRORMAKER-CONFIGURATION-FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.8. Kafka MirrorMaker 2.0 배포 보안 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 MirrorMaker 2.0 배포를 보호하는 데 필요한 구성을 간략하게 설명합니다.
소스 Kafka 클러스터 및 대상 Kafka 클러스터에 대한 별도의 구성이 필요합니다. 또한 소스 및 대상 Kafka 클러스터에 연결하기 위해 MirrorMaker에 필요한 인증 정보를 제공하려면 별도의 사용자 구성이 필요합니다.
Kafka 클러스터의 경우 OpenShift 클러스터 내에서 보안 연결을 위해 내부 리스너를 지정하고 OpenShift 클러스터 외부의 연결에 대한 외부 리스너를 지정합니다.
인증 및 권한 부여 메커니즘을 구성할 수 있습니다. 소스 및 대상 Kafka 클러스터에 대해 구현된 보안 옵션은 MirrorMaker 2.0용으로 구현된 보안 옵션과 호환되어야 합니다.
클러스터 및 사용자 인증 인증 정보를 생성한 후 보안 연결을 위해 MirrorMaker 구성에 지정합니다.
이 절차에서는 Cluster Operator가 생성한 인증서를 사용하지만 자체 인증서를 설치하여 교체할 수 있습니다. 외부 인증 기관에서 관리하는 Kafka 리스너 인증서를 사용하도록 리스너를 구성할 수도 있습니다.
시작하기 전
이 절차를 시작하기 전에 AMQ Streams에서 제공하는 구성 파일 예제 를 살펴보십시오. 여기에는 TLS 또는 SCRAM-SHA-512 인증을 사용하여 MirrorMaker 2.0의 배포를 보호하는 예제가 포함됩니다. 예제에서는 OpenShift 클러스터 내에서 연결하기 위한 내부 리스너를 지정합니다.
이 예제에서는 소스 및 대상 Kafka 클러스터에서 작업을 허용하는 데 MirrorMaker 2.0에 필요한 ACL도 표시합니다.
사전 요구 사항
- AMQ Streams가 실행 중
- 소스 및 대상 클러스터의 별도의 네임스페이스
이 절차에서는 Topic Operator를 사용하려면 소스 및 대상 Kafka 클러스터가 별도의 네임스페이스에 설치되어 있다고 가정합니다. Topic Operator는 지정된 네임스페이스의 단일 클러스터만 감시합니다.
클러스터를 네임스페이스로 분리하면 네임스페이스 외부에서 액세스할 수 있도록 클러스터 시크릿을 복사해야 합니다. MirrorMaker 구성에서 시크릿을 참조해야 합니다.
절차
대상
Kafka클러스터를 보호하는 두 개의 Kafka 리소스와 소스 Kafka 클러스터를 보호하도록 구성합니다.인증에 대한 리스너 구성을 추가하고 권한을 활성화할 수 있습니다.
이 예에서 내부 리스너는 TLS 암호화 및 인증을 사용하여 Kafka 클러스터에 대해 구성됩니다. Kafka
간단한승인이 활성화되어 있습니다.TLS 인증을 사용한 소스 Kafka 클러스터 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 인증을 사용한 대상 Kafka 클러스터 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 별도의 네임스페이스에서
Kafka리소스를 생성하거나 업데이트합니다.oc apply -f <kafka_configuration_file> -n <namespace>
oc apply -f <kafka_configuration_file> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator는 리스너를 생성하고 Kafka 클러스터 내에서 인증을 활성화하기 위해 클러스터 및 클라이언트 CA(인증 기관) 인증서를 설정합니다.
인증서는 시크릿 <
cluster_name> -cluster-ca-cert에 생성됩니다.두 개의
Kafka리소스를 구성합니다. 하나는 소스 Kafka 클러스터의 사용자용이고 하나는 대상 Kafka 클러스터 사용자용입니다.-
해당 소스 및 대상 Kafka 클러스터와 동일한 인증 및 권한 부여 유형을 구성합니다. 예를 들어 소스 Kafka 클러스터의
Kafka구성에서tls인증 및간단한인증 유형을 사용한 경우KafkaUser구성에서 동일하게 사용합니다. 소스 및 대상 Kafka 클러스터에서 작업을 허용하도록 MirrorMaker 2.0에 필요한 ACL을 구성합니다.
ACL은 내부 MirrorMaker 커넥터와 기본 Kafka Connect 프레임워크에서 사용합니다.
TLS 클라이언트 인증을 위한 소스 사용자 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 클라이언트 인증을 위한 대상 사용자 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고type을tls-external로 설정하여 User Operator 외부에서 발급된 인증서를 사용할 수 있습니다. 자세한 내용은 사용자 인증을 참조하십시오.-
해당 소스 및 대상 Kafka 클러스터와 동일한 인증 및 권한 부여 유형을 구성합니다. 예를 들어 소스 Kafka 클러스터의
소스 및 대상 Kafka 클러스터에 대해 생성한 각 네임스페이스에서
KafkaUser리소스를 생성하거나 업데이트합니다.oc apply -f <kafka_user_configuration_file> -n <namespace>
oc apply -f <kafka_user_configuration_file> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow User Operator는 선택한 인증 유형에 따라 클라이언트(MirrorMaker)를 나타내는 사용자와 클라이언트 인증에 사용되는 보안 인증 정보를 생성합니다.
User Operator는
KafkaUser리소스와 동일한 이름으로 새 시크릿을 생성합니다. 보안에는 TLS 클라이언트 인증을 위한 개인 및 공개 키가 포함되어 있습니다. 공개 키는 클라이언트 CA(인증 기관)에서 서명한 사용자 인증서에 포함됩니다.소스 및 대상 Kafka 클러스터에 연결하기 위해 인증 세부 정보를 사용하여
KafkaMirrorMaker2리소스를 구성합니다.TLS 인증을 사용한 MirrorMaker 2.0 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 대상 Kafka 클러스터와 동일한 네임스페이스에서
KafkaMirrorMaker2리소스를 생성하거나 업데이트합니다.oc apply -f <mirrormaker2_configuration_file> -n <namespace_of_target_cluster>
oc apply -f <mirrormaker2_configuration_file> -n <namespace_of_target_cluster>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.9. Kafka MirrorMaker 2.0 커넥터를 다시 시작 수행 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 Kafka MirrorMaker 2.0 커넥터를 수동으로 다시 시작하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
재시작하려는 Kafka MirrorMaker 2.0 커넥터를 제어하는
KafkaMirrorMaker2사용자 정의 리소스의 이름을 찾습니다.oc get KafkaMirrorMaker2
oc get KafkaMirrorMaker2Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaMirrorMaker2사용자 정의 리소스에서 다시 시작할 Kafka MirrorMaker 2.0 커넥터의 이름을 찾습니다.oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME
oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터를 다시 시작하려면 OpenShift의
KafkaMirrorMaker2리소스에 주석을 답니다. 이 예에서oc annotate는my-source->my-target.MirrorSourceConnector :라는 커넥터를 다시 시작합니다.oc annotate KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME "strimzi.io/restart-connector=my-source->my-target.MirrorSourceConnector"
oc annotate KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME "strimzi.io/restart-connector=my-source->my-target.MirrorSourceConnector"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 조정이 발생할 때까지 기다립니다(기본적으로 2분마다).
조정 프로세스에서 주석을 감지한 경우 Kafka MirrorMaker 2.0 커넥터가 다시 시작됩니다. 재시작 요청이 수락되면
KafkaMirrorMaker2사용자 정의 리소스에서 주석이 제거됩니다.
2.5.10. Kafka MirrorMaker 2.0 커넥터 작업 재시작 수행 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 Kafka MirrorMaker 2.0 커넥터 작업 재시작을 수동으로 트리거하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
재시작하려는 Kafka MirrorMaker 2.0 커넥터를 제어하는
KafkaMirrorMaker2사용자 정의 리소스의 이름을 찾습니다.oc get KafkaMirrorMaker2
oc get KafkaMirrorMaker2Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka MirrorMaker 2.0 커넥터의 이름과
KafkaMirrorMaker2사용자 정의 리소스에서 다시 시작할 작업의 ID를 찾습니다. 작업 ID는 0부터 시작하여 음수가 아닌 정수입니다.oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME
oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 작업을 다시 시작하려면 OpenShift의
KafkaMirrorMaker2리소스에 주석을 답니다. 이 예제에서oc annotatestart task 0 of a connector namedmy-source->my-target.MirrorSourceConnector:oc annotate KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME "strimzi.io/restart-connector-task=my-source->my-target.MirrorSourceConnector:0"
oc annotate KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME "strimzi.io/restart-connector-task=my-source->my-target.MirrorSourceConnector:0"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 조정이 발생할 때까지 기다립니다(기본적으로 2분마다).
조정 프로세스에서 주석을 감지한 경우 Kafka MirrorMaker 2.0 커넥터 작업이 다시 시작됩니다. 재시작 작업 요청이 수락되면
KafkaMirrorMaker2사용자 정의 리소스에서 주석이 제거됩니다.