OpenShift에서 AMQ Streams 구성
OpenShift Container Platform에서 AMQ Streams 2.4 배포를 구성하고 관리합니다.
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. 구성 개요 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams는 OpenShift 클러스터에서 Apache Kafka 를 실행하는 프로세스를 간소화합니다.
이 가이드에서는 AMQ Streams 배포를 구성하고 관리하는 방법을 설명합니다.
1.1. 사용자 정의 리소스 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 리소스를 사용하여 AMQ Streams 배포를 구성합니다.
사용자 정의 리소스를 사용하여 다음 구성 요소의 인스턴스를 구성하고 생성할 수 있습니다.
- Kafka 클러스터
- Kafka Connect 클러스터
- Kafka MirrorMaker
- Kafka 브리지
- 크루즈 컨트롤
사용자 정의 리소스 구성을 사용하여 인스턴스를 관리하거나 배포를 수정하여 추가 기능을 도입할 수도 있습니다. 여기에는 다음을 지원하는 구성이 포함될 수 있습니다.
- Kafka 브로커에 대한 클라이언트 액세스 보안
- 클러스터 외부에서 Kafka 브로커 액세스
- 주제 생성
- 사용자 생성(클라이언트)
- 기능 게이트 제어
- 로깅 빈도 변경
- 리소스 제한 및 요청 할당
- AMQ Streams Drain cleaner, Cruise Control 또는 distributed tracing과 같은 기능 소개
사용자 정의 리소스 API 참조 는 구성에 사용할 수 있는 속성을 설명합니다.
1.2. ConfigMap을 사용하여 구성 추가 링크 복사링크가 클립보드에 복사되었습니다!
ConfigMap
리소스를 사용하여 AMQ Streams 배포에 특정 구성을 추가합니다. ConfigMap은 키-값 쌍을 사용하여 기밀이 아닌 데이터를 저장합니다. ConfigMaps에 추가된 구성 데이터는 한 곳에서 유지 관리되며 구성 요소 간에 재사용할 수 있습니다.
ConfigMap은 다음과 관련된 구성 데이터만 저장할 수 있습니다.
- 로깅 구성
- 메트릭 구성
- Kafka Connect 커넥터의 외부 구성
다른 구성 영역에는 ConfigMap을 사용할 수 없습니다.
구성 요소를 구성할 때 configMapKeyRef
속성을 사용하여 ConfigMap에 대한 참조를 추가할 수 있습니다.
예를 들어 configMapKeyRef
를 사용하여 로깅에 대한 구성을 제공하는 ConfigMap을 참조할 수 있습니다. ConfigMap을 사용하여 Log4j 구성 파일을 전달할 수 있습니다. 로깅
구성에 대한 참조를 추가합니다.
로깅을 위한 ConfigMap 예
메트릭 구성에 ConfigMap을 사용하려면 구성 요소의 metricsConfig
구성에 대한 참조를 동일한 방식으로 추가합니다.
ExternalConfiguration
속성은 pod에 마운트된 ConfigMap(또는 Secret)의 데이터를 환경 변수 또는 볼륨으로 사용할 수 있도록 합니다. Kafka Connect에서 사용하는 커넥터에 대한 외부 구성 데이터를 사용할 수 있습니다. 데이터는 외부 데이터 소스와 관련이 있어 커넥터가 해당 데이터 소스와 통신하는 데 필요한 값을 제공할 수 있습니다.
예를 들어 configMapKeyRef
속성을 사용하여 ConfigMap의 구성 데이터를 환경 변수로 전달할 수 있습니다.
환경 변수 값을 제공하는 ConfigMap의 예
외부에서 관리되는 ConfigMap을 사용하는 경우 구성 공급자를 사용하여 ConfigMaps에서 데이터를 로드합니다. 구성 공급자 사용에 대한 자세한 내용은 3장. 외부 소스에서 구성 값 로드 을 참조하십시오.
1.2.1. 사용자 정의 ConfigMap 이름 지정 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams 는 OpenShift에 배포할 때 자체 ConfigMap 및 기타 리소스를 생성합니다. ConfigMaps에는 구성 요소를 실행하는 데 필요한 데이터가 포함되어 있습니다. AMQ Streams에서 생성한 ConfigMap은 편집할 수 없습니다.
생성하는 모든 사용자 정의 ConfigMap에 이러한 기본 ConfigMap과 동일한 이름이 없는지 확인합니다. 동일한 이름이 있는 경우 덮어씁니다. 예를 들어 ConfigMap의 이름이 Kafka 클러스터의 ConfigMap과 동일한 경우 Kafka 클러스터에 대한 업데이트가 있는 경우 덮어씁니다.
1.3. 문서 관련 링크 복사링크가 클립보드에 복사되었습니다!
사용자 대체 값
대체 가능 값이라고도 하는 사용자 대체 값은 이진수에 빙각 대괄호(< >)로 표시됩니다. 밑줄( _ )은 여러 단어 값에 사용됩니다. 값이 코드 또는 명령을 참조하는 경우 monospace
도 사용됩니다.
예를 들어 다음 코드에서 < my_namespace>를
네임스페이스 이름으로 교체하려고 합니다.
sed -i 's/namespace: .*/namespace: <my_namespace>/' install/cluster-operator/*RoleBinding*.yaml
sed -i 's/namespace: .*/namespace: <my_namespace>/' install/cluster-operator/*RoleBinding*.yaml
2장. OpenShift 배포에서 AMQ Streams 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 리소스를 사용하여 AMQ Streams 배포를 구성합니다. AMQ Streams는 배포를 위해 자체 Kafka 구성 요소 구성을 빌드할 때 시작점으로 사용될 수 있는 설정 파일 예제 를 제공합니다.
사용자 정의 리소스에 적용되는 레이블은 클러스터를 구성하는 OpenShift 리소스에도 적용됩니다. 이를 통해 필요에 따라 리소스의 레이블을 지정할 수 있는 편리한 메커니즘이 제공됩니다.
AMQ Streams 배포 모니터링
Prometheus 및 Grafana를 사용하여 AMQ Streams 배포를 모니터링할 수 있습니다. 자세한 내용은 Kafka에 메트릭 소개를 참조하십시오.
2.1. 표준 Kafka 구성 속성 사용 링크 복사링크가 클립보드에 복사되었습니다!
표준 Kafka 구성 속성을 사용하여 Kafka 구성 요소를 구성합니다.
속성은 다음 Kafka 구성 요소의 구성을 제어하고 조정하는 옵션을 제공합니다.
- 브로커
- 주제
- 클라이언트(생산자 및 소비자)
- 관리자 클라이언트
- Kafka Connect
- Kafka Streams
broker 및 client 매개 변수에는 권한 부여, 인증 및 암호화를 구성하는 옵션이 포함되어 있습니다.
OpenShift의 AMQ Streams의 경우 일부 구성 속성은 AMQ Streams에 의해 완전히 관리되며 변경할 수 없습니다.
Kafka 구성 속성 및 속성을 사용하여 배포를 조정하는 방법에 대한 자세한 내용은 다음 가이드를 참조하십시오.
2.2. Kafka 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 리소스를 사용하여 Kafka
배포를 구성합니다. Kafka 클러스터는 ZooKeeper 클러스터와 함께 배포되므로 Kafka
리소스 내의 ZooKeeper에서도 구성 옵션을 사용할 수 있습니다. Entity Operator는 Topic Operator 및 User Operator로 구성됩니다. 배포에 Topic Operator 및 User Operator를 포함하도록 Kafka
리소스에서 entityOperator
속성을 구성할 수도 있습니다.
6.2.1절. “Kafka
스키마 참조” Kafka
리소스의 전체 스키마를 설명합니다.
Apache Kafka에 대한 자세한 내용은 Apache Kafka 설명서 를 참조하십시오.
리스너 구성
클라이언트를 Kafka 브로커에 연결하기 위해 리스너를 구성합니다. 리스너 구성에 대한 자세한 내용은 6.2.4절. “GenericKafkaListener
스키마 참조” 을 참조하십시오.
TLS 인증서 관리
Kafka를 배포할 때 Cluster Operator는 TLS 인증서를 자동으로 설정하고 업데이트하여 클러스터 내에서 암호화 및 인증을 활성화합니다. 필요한 경우 갱신 기간이 시작되기 전에 클러스터 및 클라이언트 CA 인증서를 수동으로 갱신할 수 있습니다. 클러스터 및 클라이언트 CA 인증서에서 사용하는 키를 교체할 수도 있습니다. 자세한 내용은 CA 인증서 갱신 및 개인 키 교체 를 참조하십시오.
2.2.1. Kafka 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka
리소스의 속성을 사용하여 Kafka 배포를 구성합니다.
Kafka를 구성할 뿐만 아니라 ZooKeeper 및 AMQ Streams Operator에 대한 구성을 추가할 수 있습니다. 로깅 및 상태 점검과 같은 일반적인 구성 속성은 각 구성 요소에 대해 개별적으로 구성됩니다.
다음 절차에서는 가능한 구성 옵션 중 일부만 보여주지만 특히 중요한 옵션은 다음과 같습니다.
- 리소스 요청 (CPU / 메모리)
- 최대 및 최소 메모리 할당을 위한 JVM 옵션
- 리스너(및 클라이언트 인증)
- 인증
- 스토리지
- Rack 인식
- 메트릭
- cruise Control for cluster rebalancing
Kafka 버전
Kafka 구성에 대한 inter.broker.protocol.version
속성은 지정된 Kafka 버전 (spec.kafka.version
)에서 지원하는 버전이어야합니다. 속성은 Kafka 클러스터에서 사용되는 Kafka 프로토콜 버전을 나타냅니다.
Kafka 3.0.0에서 inter.broker.protocol.version
이 3.0
이상으로 설정되면 log.message.format.version
옵션이 무시되고 설정할 필요가 없습니다.
Kafka 버전을 업그레이드할 때 inter.broker.protocol.version
에 대한 업데이트가 필요합니다. 자세한 내용은 Kafka 업그레이드 에서 참조하십시오.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
배포 방법에 대한 자세한 내용은 OpenShift에 AMQ Streams 배포 및 업그레이드 가이드를 참조하십시오.
절차
Kafka
리소스의spec
속성을 편집합니다.구성할 수 있는 속성은 다음 예제 구성에 표시되어 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2
- 업그레이드 절차에 따라 지원되는 버전으로 변경할 수 있는 Kafka 버전.
- 3
- Kafka 로거 및 로그 수준은 ConfigMap을 통해 직접 (
인라인
) 추가되거나 간접적으로 (외부
)합니다. 사용자 지정 ConfigMap을log4j.properties
키에 배치해야 합니다. Kafkakafka.root.logger.level
로거의 경우 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 4
- 5
- 컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
- 6
- 7
- ADVANCED OPTION : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
- 8
- 리스너는 클라이언트가 부트스트랩 주소를 통해 Kafka 클러스터에 연결하는 방법을 구성합니다. 리스너는 OpenShift 클러스터 내부 또는 외부에서 연결하기 위해 내부 또는 외부 리스너로 구성됩니다.
- 9
- 리스너를 식별할 이름입니다. Kafka 클러스터 내에서 고유해야 합니다.
- 10
- Kafka 내부의 리스너에서 사용하는 포트 번호입니다. 포트 번호는 지정된 Kafka 클러스터 내에서 고유해야 합니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다. 리스너 유형에 따라 포트 번호가 Kafka 클라이언트를 연결하는 포트 번호와 동일하지 않을 수 있습니다.
- 11
내부
또는cluster-ip
로 지정된 리스너 유형(broker별ClusterIP
서비스를 사용하여 Kafka를 노출) 또는 외부 리스너의 경우경로
(OpenShift만), 로드 밸런서,노드 포트
또는수신
(Kubernetes만 해당)으로 지정됩니다.- 12
- 각 리스너에 대해 TLS 암호화를 활성화합니다. 기본값은
false
입니다.경로
리스너에는 TLS 암호화가 필요하지 않습니다. - 13
- 클러스터 서비스 접미사(일반적으로
.cluster.local
)를 포함한 정규화된 DNS 이름이 할당되는지 여부를 정의합니다. - 14
- mTLS, SCRAM-SHA-512 또는 토큰 기반 OAuth 2.0으로 지정된 리스너 인증 메커니즘.
- 15
- 외부 리스너 구성은
경로
,loadbalancer
또는nodeport
를 통해 Kafka 클러스터가 OpenShift 외부에 노출되는 방법을 지정합니다. - 16
- 외부 CA(인증 기관)에서 관리하는 Kafka 리스너 인증서에 대한 선택적 구성입니다.
brokerCertECDHEAndKey
는 서버 인증서와 개인 키가 포함된 보안을 지정합니다.활성화된 TLS 암호화를 사용하여 모든 리스너에서 Kafka 리스너 인증서를 구성할 수 있습니다.
- 17
- 권한 부여 를 사용하면 Kafka 브로커에서 간단한 OAUTH 2.0 또는 OPA 인증을 사용할 수 있습니다. 간단한 인증에서는
AclAuthorizer
Kafka 플러그인을 사용합니다. - 18
- 19
- 20
- 21
- 22
- 영구 스토리지에는 동적 볼륨 프로비저닝을 위한 스토리지 ID 및
클래스
- 23
- 다양한 랙, 데이터 센터 또는 가용 영역에 복제본을 분산하기 위한 Rack 인식 구성입니다.
topologyKey
는 rack ID가 포함된 노드 레이블과 일치해야 합니다. 이 구성에 사용된 예제에서는 표준topology.kubernetes.io/zone
레이블을 사용하여 영역을 지정합니다. - 24
- Prometheus 지표 가 활성화되었습니다. 이 예에서는 Prometheus ScanSetting Exporter(기본 지표 내보내기)에 대한 지표가 구성됩니다.
- 25
- Prometheus exporter에 대한 구성이 포함된 ConfigMap을 참조하여 활성화되는 Prometheus dashboard를 통해 Grafana 대시보드로 메트릭을 내보내는 규칙입니다.
metricsConfig.valueFrom.configMapKeyRef.key
아래에 빈 파일이 포함된 ConfigMap에 대한 참조를 사용하여 추가 구성 없이 메트릭을 활성화할 수 있습니다. - 26
- Kafka 구성과 유사한 속성을 포함하는 zookeeper-specific 구성입니다.
- 27
- ZooKeeper 노드 수입니다. zookeeper 클러스터 또는 ensembles는 일반적으로 홀수의 노드 (일반적으로 3, 5 또는 7)와 함께 실행됩니다. 효과적인 쿼럼을 유지하려면 대부분의 노드를 사용할 수 있어야 합니다. ZooKeeper 클러스터에서 쿼럼이 손실되면 클라이언트에 대한 응답이 중지되고 Kafka 브로커가 작동을 중지합니다. AMQ Streams에는 안정적이고 가용성이 높은 ZooKeeper 클러스터를 갖는 것이 중요합니다.
- 28
- 지정된 ZooKeeper 로거 및 로그 수준.
- 29
- 30
- 엔티티 Operator TLS 사이드카 구성. entity Operator는 TLS 사이드카를 사용하여 ZooKeeper와의 보안 통신을 지원합니다.
- 31
- 지정된 Topic Operator 로거 및 로그 수준. 이 예에서는
인라인
로깅을 사용합니다. - 32
- 33
- Kafka 내보내기 구성. Kafka 내보내기 는 Kafka 브로커, 특히 소비자 지연 데이터에서 메트릭 데이터를 추출하는 선택적 구성 요소입니다. Kafka 내보내기가 제대로 작동하려면 소비자 그룹을 사용 중이어야 합니다.
- 34
- Kafka 클러스터를 재조정하는 데 사용되는 Cruise Control에 대한 선택적 구성입니다.
리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. Entity Operator 구성 링크 복사링크가 클립보드에 복사되었습니다!
Entity Operator는 실행 중인 Kafka 클러스터에서 Kafka 관련 엔터티를 관리합니다.
Entity Operator는 다음을 포함합니다.
- Kafka 주제를 관리하기 위한 topic Operator
- Kafka 사용자를 관리하는 사용자 Operator
Kafka
리소스 구성을 통해 Cluster Operator는 Kafka 클러스터를 배포할 때 하나 또는 둘 다를 포함하여 Entity Operator를 배포할 수 있습니다.
Operator는 Kafka 클러스터의 주제와 사용자를 관리하도록 자동으로 구성됩니다. Topic Operator 및 User Operator는 단일 네임스페이스만 조사할 수 있습니다.
배포되면 Entity Operator Pod에는 배포 구성에 따라 Operator가 포함됩니다.
2.2.2.1. 엔터티 Operator 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka.spec
의 entityOperator
속성을 사용하여 Entity Operator를 구성합니다.
entityOperator
속성은 다음과 같은 여러 하위 속성을 지원합니다.
-
tlsSidecar
-
topicOperator
-
userOperator
-
template
tlsSidecar
속성에는 ZooKeeper와 통신하는 데 사용되는 TLS 사이드카 컨테이너 구성이 포함되어 있습니다.
template
속성에는 레이블, 주석, 유사성, 허용 오차와 같은 Entity Operator Pod의 구성이 포함되어 있습니다. 템플릿 구성에 대한 자세한 내용은 2.7절. “OpenShift 리소스 사용자 정의” 을 참조하십시오.
topicOperator
속성에는 Topic Operator의 구성이 포함되어 있습니다. 이 옵션이 없으면 Entity Operator가 Topic Operator 없이 배포됩니다.
userOperator
속성에는 User Operator의 구성이 포함됩니다. 이 옵션이 없으면 User Operator 없이 Entity Operator가 배포됩니다.
Entity Operator를 구성하는 데 사용되는 속성에 대한 자세한 내용은 EntityUserOperatorSpec
스키마 참조 를 참조하십시오.
두 Operator를 모두 활성화하는 기본 구성의 예
topicOperator
및 userOperator
에 빈 오브젝트({}
)를 사용하는 경우 모든 속성은 기본값을 사용합니다.
topicOperator
및 userOperator
속성이 모두 누락되면 Entity Operator가 배포되지 않습니다.
2.2.2.2. 주제 Operator 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
topic Operator 배포는 topicOperator
오브젝트 내의 추가 옵션을 사용하여 구성할 수 있습니다. 지원되는 속성은 다음과 같습니다.
watchedNamespace
-
주제 Operator가
KafkaTopic
리소스를 조사하는 OpenShift 네임스페이스입니다. default는 Kafka 클러스터가 배포된 네임스페이스입니다. reconciliationIntervalSeconds
-
정기적인 조정 간격(초)입니다. 기본값
120
. zookeeperSessionTimeoutSeconds
-
ZooKeeper 세션 시간 초과(초)입니다. 기본값
18
. topicMetadataMaxAttempts
-
Kafka에서 주제 메타데이터를 가져오는 시도 횟수입니다. 각 시도 사이의 시간은 지수 백오프로 정의됩니다. 파티션 또는 복제본 수로 인해 주제 생성에 시간이 더 걸릴 때 이 값을 늘리는 것이 좋습니다. 기본값
6
. image
-
image
속성을 사용하여 사용할 컨테이너 이미지를 구성할 수 있습니다. 사용자 지정 컨테이너 이미지 구성에 대한 자세한 내용은 6.1.6절. “image
” 을 참조하십시오. resources
-
resources
속성은 Topic Operator에 할당된 리소스 양을 구성합니다. 리소스 요청 및 제한 구성에 대한 자세한 내용은 6.1.5절. “resources
” 을 참조하십시오. logging
-
logging
속성은 Topic Operator의 로깅을 구성합니다. 자세한 내용은 6.2.45.1절. “logging
” 에서 참조하십시오.
주제 Operator 구성 예
2.2.2.3. 사용자 Operator 설정 속성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 Operator 배포는 userOperator
오브젝트 내의 추가 옵션을 사용하여 구성할 수 있습니다. 지원되는 속성은 다음과 같습니다.
watchedNamespace
-
User Operator가
KafkaUser
리소스를 조사하는 OpenShift 네임스페이스입니다. default는 Kafka 클러스터가 배포된 네임스페이스입니다. reconciliationIntervalSeconds
-
정기적인 조정 간격(초)입니다. 기본값
120
. image
-
image
속성을 사용하여 사용할 컨테이너 이미지를 구성할 수 있습니다. 사용자 지정 컨테이너 이미지 구성에 대한 자세한 내용은 6.1.6절. “image
” 을 참조하십시오. resources
-
resources
속성은 User Operator에 할당된 리소스 양을 구성합니다. 리소스 요청 및 제한 구성에 대한 자세한 내용은 6.1.5절. “resources
” 을 참조하십시오. logging
-
logging
속성은 User Operator의 로깅을 구성합니다. 자세한 내용은 6.2.45.1절. “logging
” 에서 참조하십시오. secretPrefix
-
secretPrefix
속성은 KafkaUser 리소스에서 생성한 모든 Secrets 이름에 접두사를 추가합니다. 예를 들어secretPrefix: kafka-
는 모든 Secret 이름을kafka-
로 접두사로 지정합니다. 따라서my-user
라는 KafkaUser는kafka-my-user
라는 시크릿을 생성합니다.
User Operator 구성 예
2.2.3. Kafka 및 ZooKeeper 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
스테이트풀 애플리케이션으로서 Kafka 및 ZooKeeper는 디스크에 데이터를 저장합니다. AMQ Streams는 이 데이터를 위한 세 가지 스토리지 유형을 지원합니다.
- 임시 (개발 전용 권장)
- 영구
- JBOD(축소가 아닌 Kafka )
Kafka
리소스를 구성할 때 Kafka 브로커와 해당 ZooKeeper 노드에서 사용하는 스토리지 유형을 지정할 수 있습니다. 다음 리소스의 storage
속성을 사용하여 스토리지 유형을 구성합니다.
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
스토리지 유형은 type
필드에 구성됩니다.
스토리지 구성 속성에 대한 자세한 내용은 스키마 참조를 참조하십시오.
Kafka 클러스터를 배포한 후에는 스토리지 유형을 변경할 수 없습니다.
2.2.3.1. 데이터 스토리지 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams가 제대로 작동하려면 효율적인 데이터 스토리지 인프라가 필요합니다. 블록 스토리지를 사용하는 것이 좋습니다. AMQ Streams는 블록 스토리지와의 사용만 테스트합니다. NFS와 같은 파일 스토리지는 테스트되지 않았으며 작동할 것이라는 보장이 없습니다.
블록 스토리지에 대해 다음 옵션 중 하나를 선택합니다.
- Amazon EBS(Elastic Block Store)와 같은 클라우드 기반 블록 스토리지 솔루션
- 로컬 영구 볼륨을 사용하는 영구스토리지
- 파이버 채널 또는 iSCSI와 같은 프로토콜에서 액세스하는 SAN(Storage Area Network) 볼륨
AMQ Streams에는 OpenShift 원시 블록 볼륨이 필요하지 않습니다.
2.2.3.1.1. 파일 시스템 링크 복사링크가 클립보드에 복사되었습니다!
Kafka는 메시지를 저장하는 데 파일 시스템을 사용합니다. AMQ Streams는 Kafka와 일반적으로 사용되는 XFS 및 ext4 파일 시스템과 호환됩니다. 파일 시스템을 선택하고 설정할 때 배포의 기본 아키텍처 및 요구 사항을 고려하십시오.
자세한 내용은 Kafka 문서의 파일 시스템 선택 항목을 참조하십시오.
2.2.3.1.2. 디스크 사용량 링크 복사링크가 클립보드에 복사되었습니다!
Apache Kafka 및 ZooKeeper에 대해 별도의 디스크를 사용합니다.
SSD(Solid-State Drive)는 필수는 아니지만 데이터가 비동기적으로 전송되고 수신되는 대규모 클러스터에서 Kafka의 성능을 향상시킬 수 있습니다. SSD는 짧은 대기 시간 데이터 액세스가 필요한 ZooKeeper에서 특히 유용합니다.
Kafka와 ZooKeeper 둘 다 데이터 복제가 내장되어 있기 때문에 복제된 스토리지를 프로비저닝할 필요가 없습니다.
2.2.3.2. 임시 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
임시 데이터 스토리지는 일시적입니다. 노드의 모든 포드는 로컬 임시 스토리지 공간을 공유합니다. 이를 사용하는 Pod가 실행되는 동안 데이터는 유지됩니다. Pod가 삭제되면 데이터가 손실됩니다. Pod는 고가용성 환경에서 데이터를 복구할 수 있습니다.
일시적인 특성으로 인해 임시 스토리지는 개발 및 테스트에만 권장됩니다.
임시 스토리지는 emptyDir
볼륨을 사용하여 데이터를 저장합니다. emptyDir
볼륨은 Pod가 노드에 할당되면 생성됩니다. sizeLimit
속성을 사용하여 emptyDir
의 총 스토리지 양을 설정할 수 있습니다.
임시 스토리지는 복제 요소가 1인 단일 노드 ZooKeeper 클러스터 또는 Kafka 항목에 적합하지 않습니다.
임시 스토리지를 사용하려면 Kafka
또는 ZooKeeper
리소스의 스토리지 유형 구성을 임시
로 설정합니다.
임시 스토리지 구성 예
2.2.3.2.1. Kafka 로그 디렉터리의 마운트 경로 링크 복사링크가 클립보드에 복사되었습니다!
임시 볼륨은 Kafka 브로커가 다음 경로에 마운트된 로그 디렉터리로 사용합니다.
/var/lib/kafka/data/kafka-logIDX
/var/lib/kafka/data/kafka-logIDX
여기서 IDX
는 Kafka 브로커 Pod 인덱스입니다. 예: /var/lib/kafka/data/kafka-log0
.
2.2.3.3. 영구 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
영구 데이터 스토리지는 시스템 중단 시 데이터를 유지합니다. 영구 데이터 스토리지를 사용하는 Pod의 경우 Pod 실패 및 재시작 시 데이터가 유지됩니다.
동적 프로비저닝 프레임워크를 사용하면 영구 스토리지를 사용하여 클러스터를 생성할 수 있습니다. Pod 구성에서는 PVC( 영구 볼륨 클레임 )를 사용하여 PV(영구 볼륨)에서 스토리지 요청을 수행합니다. PV는 스토리지 볼륨을 나타내는 스토리지 리소스입니다. PV는 이를 사용하는 Pod와 독립적입니다. PVC는 Pod를 생성할 때 필요한 스토리지 양을 요청합니다. PV의 기본 스토리지 인프라를 인식할 필요가 없습니다. PV가 스토리지 기준과 일치하면 PVC가 PV에 바인딩됩니다.
영구 특성으로 인해 프로덕션에는 영구 스토리지를 사용하는 것이 좋습니다.
PVC는 StorageClass 를 지정하여 다른 유형의 영구 스토리지를 요청할 수 있습니다. 스토리지 클래스는 스토리지 프로필을 정의하고 PV를 동적으로 프로비저닝합니다. 스토리지 클래스를 지정하지 않으면 기본 스토리지 클래스가 사용됩니다. 영구 스토리지 옵션에는 SAN 스토리지 유형 또는 로컬 영구 볼륨이 포함될 수 있습니다.
영구 스토리지를 사용하려면 Kafka
또는 ZooKeeper
리소스의 스토리지 유형 구성을 persistent-claim
으로 설정합니다.
프로덕션 환경에서는 다음 구성을 사용하는 것이 좋습니다.
-
Kafka의 경우
type: persistent-claim
볼륨으로 하나 이상의 유형으로 jbod -
ZooKeeper의 경우
type: persistent-claim
을 구성합니다.
영구 스토리지에는 다음과 같은 구성 옵션도 있습니다.
ID
(선택 사항)-
스토리지 식별 번호입니다. 이 옵션은 JBOD 스토리지 선언에 정의된 스토리지 볼륨에 필요합니다. 기본값은
0
입니다. 크기
(필수)- 영구 볼륨 클레임의 크기(예: "1000Gi").
클래스
(선택 사항)-
동적 볼륨 프로비저닝에 사용할 OpenShift StorageClass 입니다. 스토리지
클래스
구성에는 볼륨 프로필을 자세히 설명하는 매개변수가 포함되어 있습니다. 선택기
(선택 사항)- 특정 PV를 지정하는 구성입니다. 선택한 볼륨의 레이블을 나타내는 key:value 쌍을 제공합니다.
DeleteClaim
(선택 사항)-
클러스터가 제거될 때 PVC가 삭제되었는지 여부를 지정하는 부울 값입니다. 기본값은
false
입니다.
기존 AMQ Streams 클러스터에서 영구 볼륨의 크기를 늘리는 것은 영구 볼륨 크기 조정을 지원하는 OpenShift 버전에서만 지원됩니다. 크기를 조정할 영구 볼륨에서는 볼륨 확장을 지원하는 스토리지 클래스를 사용해야 합니다. 볼륨 확장을 지원하지 않는 다른 OpenShift 및 스토리지 클래스 버전의 경우 클러스터를 배포하기 전에 필요한 스토리지 크기를 결정해야 합니다. 기존 영구 볼륨의 크기를 줄이는 것은 불가능합니다.
Kafka 및 ZooKeeper의 영구 스토리지 구성 예
스토리지 클래스를 지정하지 않으면 기본값이 사용됩니다. 다음 예제에서는 스토리지 클래스를 지정합니다.
특정 스토리지 클래스를 사용한 영구 스토리지 구성 예
선택기
를 사용하여 SSD와 같은 특정 기능을 제공하는 레이블이 지정된 영구 볼륨을 지정합니다.
선택기가 있는 영구 스토리지 구성의 예
2.2.3.3.1. 스토리지 클래스 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
기본 스토리지 클래스를 사용하는 대신 하나 이상의 Kafka 브로커 또는 ZooKeeper 노드에 대해 다른 스토리지 클래스를 지정할 수 있습니다. 예를 들어 스토리지 클래스가 다른 가용 영역 또는 데이터 센터로 제한되는 경우 유용합니다. 이를 위해 overrides
필드를 사용할 수 있습니다.
이 예제에서 기본 스토리지 클래스의 이름은 my-storage-class
입니다.
스토리지 클래스 덮어쓰기를 사용하는 AMQ Streams 클러스터의 예
구성된 덮어쓰기
속성을 통해 볼륨은 다음 스토리지 클래스를 사용합니다.
-
ZooKeeper 노드의 영구 볼륨 0은
my-storage-class-zone-1a
를 사용합니다. -
ZooKeeper 노드 1의 영구 볼륨은
my-storage-class-zone-1b
를 사용합니다. -
ZooKeeepr 노드 2의 영구 볼륨에서는
my-storage-class-zone-1c
를 사용합니다. -
Kafka 브로커의 영구 볼륨 0은
my-storage-class-zone-1a
를 사용합니다. -
Kafka 브로커 1의 영구 볼륨에서는
my-storage-class-zone-1b
를 사용합니다. -
Kafka 브로커 2의 영구 볼륨에서는
my-storage-class-zone-1c
를 사용합니다.
overrides
속성은 현재 스토리지 클래스 구성을 재정의하는 데만 사용됩니다. 다른 스토리지 구성 속성에 대한 덮어쓰기는 현재 지원되지 않습니다. 다른 스토리지 구성 속성은 현재 지원되지 않습니다.
2.2.3.3.2. 영구 스토리지를 위한 PVC 리소스 링크 복사링크가 클립보드에 복사되었습니다!
영구 스토리지를 사용하면 다음 이름으로 PVC를 생성합니다.
data-cluster-name-kafka-idx
-
Kafka 브로커 Pod
idx
에 대한 데이터를 저장하는 데 사용되는 볼륨의 PVC입니다. data-cluster-name-zookeeper-idx
-
ZooKeeper 노드 Pod
idx
에 대한 데이터를 저장하는 데 사용되는 볼륨의 PVC입니다.
2.2.3.3.3. Kafka 로그 디렉터리의 마운트 경로 링크 복사링크가 클립보드에 복사되었습니다!
영구 볼륨은 Kafka 브로커가 다음 경로에 마운트된 로그 디렉터리로 사용합니다.
/var/lib/kafka/data/kafka-logIDX
/var/lib/kafka/data/kafka-logIDX
여기서 IDX
는 Kafka 브로커 Pod 인덱스입니다. 예: /var/lib/kafka/data/kafka-log0
.
2.2.3.4. 영구 볼륨 크기 조정 링크 복사링크가 클립보드에 복사되었습니다!
기존 AMQ Streams 클러스터에서 사용하는 영구 볼륨의 크기를 늘려 증가하는 스토리지 용량을 프로비저닝할 수 있습니다. JBOD 스토리지 구성에서 단일 영구 볼륨 또는 여러 영구 볼륨을 사용하는 클러스터에서 영구 볼륨 크기 조정이 지원됩니다.
영구 볼륨의 크기를 늘리지만 줄일 수는 없습니다. 영구 볼륨의 크기를 줄이는 것은 현재 OpenShift에서 지원되지 않습니다.
사전 요구 사항
- 볼륨 크기 조정을 지원하는 OpenShift 클러스터입니다.
- Cluster Operator가 실행 중입니다.
- 볼륨 확장을 지원하는 스토리지 클래스를 사용하여 생성된 영구 볼륨을 사용하는 Kafka 클러스터입니다.
절차
클러스터의
Kafka
리소스를 편집합니다.Kafka 클러스터, ZooKeeper 클러스터 또는 둘 다에 할당된 영구 볼륨의 크기를 늘리도록
size
속성을 변경합니다.-
Kafka 클러스터의 경우
spec.kafka.storage
에서크기
속성을 업데이트합니다. -
ZooKeeper 클러스터의 경우
spec.zookeeper.storage
아래의크기
속성을 업데이트합니다.
볼륨 크기를
2000Gi
로 늘리기 위한 Kafka 구성Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Kafka 클러스터의 경우
리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift는 Cluster Operator의 요청에 대한 응답으로 선택한 영구 볼륨의 용량을 늘립니다. 크기 조정이 완료되면 Cluster Operator는 크기가 조정된 영구 볼륨을 사용하는 모든 Pod를 다시 시작합니다. 이 작업은 자동으로 수행됩니다.
클러스터의 관련 Pod에 대해 스토리지 용량이 증가했는지 확인합니다.
oc get pv
oc get pv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 증가가 있는 Kafka 브로커 Pod
NAME CAPACITY CLAIM pvc-0ca459ce-... 2000Gi my-project/data-my-cluster-kafka-2 pvc-6e1810be-... 2000Gi my-project/data-my-cluster-kafka-0 pvc-82dc78c9-... 2000Gi my-project/data-my-cluster-kafka-1
NAME CAPACITY CLAIM pvc-0ca459ce-... 2000Gi my-project/data-my-cluster-kafka-2 pvc-6e1810be-... 2000Gi my-project/data-my-cluster-kafka-0 pvc-82dc78c9-... 2000Gi my-project/data-my-cluster-kafka-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에는 브로커 Pod와 연결된 각 PVC의 이름이 표시됩니다.
2.2.3.5. JBOD 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
여러 디스크 또는 볼륨의 데이터 스토리지 구성인 JBOD를 사용하도록 AMQ Streams를 구성할 수 있습니다. JBOD는 Kafka 브로커를 위해 증가하는 데이터 스토리지를 제공하는 한 가지 방법입니다. 성능이 향상될 수도 있습니다.
JBOD 스토리지는 ZooKeeper가 아닌 Kafka에 대해서만 지원됩니다.
JBOD 구성은 하나 이상의 볼륨으로 설명되며 각 볼륨은 임시 또는 영구 볼륨이 될 수 있습니다. JBOD 볼륨 선언에 대한 규칙 및 제약 조건은 임시 및 영구 스토리지와 동일합니다. 예를 들어, 영구 스토리지 볼륨 크기를 프로비저닝한 후에는 줄일 수 없으며 유형이 임시
인 경우 sizeLimit
값을 변경할 수 없습니다.
JBOD 스토리지를 사용하려면 Kafka
리소스의 스토리지 유형 구성을 jbod
로 설정합니다. volumes
속성을 사용하면 JBOD 스토리지 어레이 또는 구성을 구성하는 디스크를 설명할 수 있습니다.
JBOD 스토리지 구성 예
JBOD 볼륨이 생성되면 ID를 변경할 수 없습니다. JBOD 구성에서 볼륨을 추가하거나 제거할 수 있습니다.
2.2.3.5.1. JBOD 스토리지용 PVC 리소스 링크 복사링크가 클립보드에 복사되었습니다!
영구 스토리지를 사용하여 JBOD 볼륨을 선언하면 다음 이름으로 PVC를 생성합니다.
data-id-cluster-name-kafka-idx
-
Kafka 브로커 Pod
idx
에 대한 데이터를 저장하는 데 사용되는 볼륨의 PVC입니다.id
는 Kafka 브로커 Pod에 대한 데이터를 저장하는 데 사용되는 볼륨의 ID입니다.
2.2.3.5.2. Kafka 로그 디렉터리의 마운트 경로 링크 복사링크가 클립보드에 복사되었습니다!
JBOD 볼륨은 Kafka 브로커가 다음 경로에 마운트된 로그 디렉터리로 사용합니다.
/var/lib/kafka/data-id/kafka-logidx
/var/lib/kafka/data-id/kafka-logidx
여기서 id
는 Kafka 브로커 Pod idx
에 대한 데이터를 저장하는 데 사용되는 볼륨의 ID입니다. 예: /var/lib/kafka/data-0/kafka-log0
.
2.2.3.6. JBOD 스토리지에 볼륨 추가 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 JBOD 스토리지를 사용하도록 구성된 Kafka 클러스터에 볼륨을 추가하는 방법을 설명합니다. 다른 스토리지 유형을 사용하도록 구성된 Kafka 클러스터에 적용할 수 없습니다.
과거 및 제거된 ID 아래에 새 볼륨을 추가할 때 이전에 사용한 PersistentVolumeClaims
가 삭제되었는지 확인해야 합니다.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
- JBOD 스토리지가 있는 Kafka 클러스터
절차
Kafka
리소스에서spec.kafka.storage.volumes
속성을 편집합니다. volumes 배열에 새볼륨을
추가합니다. 예를 들어 ID2
가 포함된 새 볼륨을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 주제를 만들거나 기존 파티션을 새 디스크에 다시 할당합니다.
작은 정보Cruise Control은 파티션을 다시 할당하는 효과적인 도구입니다. Intra-broker 디스크 균형을 수행하려면
KafkaRebalance.spec
에서rebalanceDisk
를true
로 설정합니다.
2.2.3.7. JBOD 스토리지에서 볼륨 제거 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 JBOD 스토리지를 사용하도록 구성된 Kafka 클러스터에서 볼륨을 제거하는 방법을 설명합니다. 다른 스토리지 유형을 사용하도록 구성된 Kafka 클러스터에 적용할 수 없습니다. JBOD 스토리지는 항상 하나 이상의 볼륨을 포함해야 합니다.
데이터 손실을 방지하려면 볼륨을 제거하기 전에 모든 파티션을 이동해야합니다.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
- 두 개 이상의 볼륨이 있는 JBOD 스토리지가 있는 Kafka 클러스터
절차
제거할 디스크에서 모든 파티션을 다시 할당합니다. 제거하려는 디스크에 계속 할당된 파티션의 데이터는 손실될 수 있습니다.
작은 정보kafka-reassign-partitions.sh
도구를 사용하여 파티션을 다시 할당할 수 있습니다.Kafka
리소스에서spec.kafka.storage.volumes
속성을 편집합니다. volumes 배열에서 하나 이상의볼륨을
제거합니다. 예를 들어 ID1
과2
가 있는 볼륨을 제거합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.4. 터미널에서 ZooKeeper에 연결 링크 복사링크가 클립보드에 복사되었습니다!
대부분의 Kafka CLI 툴은 Kafka에 직접 연결할 수 있으므로 일반적인 상황에서는 ZooKeeper에 연결할 필요가 없습니다. zookeeper 서비스는 암호화 및 인증으로 보호되며 AMQ Streams에 포함되지 않은 외부 애플리케이션에서 사용할 수 없습니다.
그러나 ZooKeeper에 연결해야하는 Kafka CLI 도구를 사용하려면 ZooKeeper 컨테이너 내에서 터미널을 사용하고 ZooKeeper 주소로 localhost:12181
에 연결할 수 있습니다.
사전 요구 사항
- OpenShift 클러스터를 사용할 수 있습니다.
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
절차
OpenShift 콘솔을 사용하여 터미널을 열거나 CLI에서
exec
명령을 실행합니다.예를 들면 다음과 같습니다.
oc exec -ti my-cluster-zookeeper-0 -- bin/kafka-topics.sh --list --zookeeper localhost:12181
oc exec -ti my-cluster-zookeeper-0 -- bin/kafka-topics.sh --list --zookeeper localhost:12181
Copy to Clipboard Copied! Toggle word wrap Toggle overflow localhost:12181
을 사용해야 합니다.이제 ZooKeeper에 Kafka 명령을 실행할 수 있습니다.
2.2.5. 수동으로 Kafka 노드 삭제 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 기존 Kafka 노드를 삭제하는 방법을 설명합니다. Kafka 노드를 삭제하면 Kafka 브로커가 실행 중인 Pod
와 관련 PersistentVolumeClaim
(클러스터가 영구 스토리지와 함께 배포된 경우)을 모두 삭제해야 합니다. 삭제 후 Pod
및 관련 PersistentVolumeClaim
이 자동으로 다시 생성됩니다.
PersistentVolumeClaim
을 삭제하면 영구 데이터가 손실될 수 있습니다. 다음 절차는 스토리지 문제가 발생한 경우에만 수행해야 합니다.
사전 요구 사항
다음을 실행하는 방법에 대한 자세한 내용은 OpenShift에 AMQ Streams 배포 및 업그레이드 가이드를 참조하십시오.
절차
삭제할
Pod
의 이름을 찾습니다.Kafka 브로커 Pod의 이름은 < cluster-name> -kafka- <index >입니다. 여기서 < index >는 0에서 시작하여 총 복제본 수에서 1을 뺀 값입니다. 예:
my-cluster-kafka-0
.OpenShift에서
포드
리소스에 주석을 답니다.oc annotate
:oc annotate pod cluster-name-kafka-index strimzi.io/delete-pod-and-pvc=true
oc annotate pod cluster-name-kafka-index strimzi.io/delete-pod-and-pvc=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 다음 조정이 있을 때까지 기다린 후 기본 영구 볼륨 클레임을 사용하여 주석이 달린 Pod가 삭제되고 다시 생성됩니다.
2.2.6. ZooKeeper 노드 수동 삭제 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 기존 ZooKeeper 노드를 삭제하는 방법을 설명합니다. ZooKeeper 노드를 삭제하는 것은 ZooKeeper가 실행 중인 Pod
와 관련 PersistentVolumeClaim
(영구 스토리지와 함께 배포된 경우)을 모두 삭제하는 것으로 구성됩니다. 삭제 후 Pod
및 관련 PersistentVolumeClaim
이 자동으로 다시 생성됩니다.
PersistentVolumeClaim
을 삭제하면 영구 데이터가 손실될 수 있습니다. 다음 절차는 스토리지 문제가 발생한 경우에만 수행해야 합니다.
사전 요구 사항
다음을 실행하는 방법에 대한 자세한 내용은 OpenShift에 AMQ Streams 배포 및 업그레이드 가이드를 참조하십시오.
절차
삭제할
Pod
의 이름을 찾습니다.zookeeper Pod의 이름은 < cluster-name> -zookeeper- <index >입니다. 여기서 < index >는 0에서 시작하여 총 복제본 수에서 1을 뺀 값입니다. 예:
my-cluster-zookeeper-0
.OpenShift에서
포드
리소스에 주석을 답니다.oc annotate
:oc annotate pod cluster-name-zookeeper-index strimzi.io/delete-pod-and-pvc=true
oc annotate pod cluster-name-zookeeper-index strimzi.io/delete-pod-and-pvc=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 다음 조정이 있을 때까지 기다린 후 기본 영구 볼륨 클레임을 사용하여 주석이 달린 Pod가 삭제되고 다시 생성됩니다.
2.2.7. Kafka 클러스터 리소스 목록 링크 복사링크가 클립보드에 복사되었습니다!
다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.
공유 리소스
cluster-name-cluster-ca
- 클러스터 통신을 암호화하는 데 사용되는 Cluster CA 개인 키가 있는 시크릿입니다.
cluster-name-cluster-ca-cert
- 클러스터 CA 공용 키가 있는 시크릿입니다. 이 키를 사용하여 Kafka 브로커의 ID를 확인할 수 있습니다.
cluster-name-clients-ca
- 사용자 인증서에 서명하는 데 사용되는 클라이언트 CA 개인 키가 있는 시크릿
cluster-name-clients-ca-cert
- 클라이언트 CA 공개 키가 있는 시크릿입니다. 이 키를 사용하여 Kafka 사용자의 ID를 확인할 수 있습니다.
cluster-name-cluster-operator-certs
- Kafka 및 ZooKeeper와의 통신을 위한 클러스터 운영자 키가 있는 시크릿
zookeeper 노드
cluster-name-zookeeper
다음 ZooKeeper 리소스에 지정된 이름입니다.
-
StrimziPodSet 또는 StatefulSet (
UseStrimziPodSets
기능 게이트가 비활성화된 경우) ZooKeeper 노드 Pod를 관리합니다. - ZooKeeper 노드에서 사용하는 서비스 계정입니다.
- ZooKeeper 노드에 대해 구성된 PodDisruptionBudget입니다.
-
StrimziPodSet 또는 StatefulSet (
cluster-name-zookeeper-idx
- ZooKeeper StatefulSet 또는 StrimziPodSet에서 생성한 Pod
cluster-name-zookeeper-nodes
- Headless Service는 ZooKeeper Pod IP 주소를 직접 확인할 수 있어야 했습니다.
cluster-name-zookeeper-client
- Kafka 브로커가 클라이언트로 ZooKeeper 노드에 연결하는 데 사용하는 서비스입니다.
cluster-name-zookeeper-config
- ZooKeeper 보조 구성이 포함되어 있으며 ZooKeeper 노드 Pod에서 볼륨으로 마운트되는 ConfigMap입니다.
cluster-name-zookeeper-nodes
- ZooKeeper 노드 키가 있는 시크릿입니다.
cluster-name-network-policy-zookeeper
- ZooKeeper 서비스에 대한 액세스를 관리하는 네트워크 정책입니다.
data-cluster-name-zookeeper-idx
-
ZooKeeper 노드 Pod
idx
에 대한 데이터를 저장하는 데 사용되는 볼륨에 대한 영구 볼륨 클레임입니다. 이 리소스는 데이터를 저장할 영구 볼륨을 프로비저닝하기 위해 영구 스토리지가 선택된 경우에만 생성됩니다.
Kafka 브로커
cluster-name-kafka
다음 Kafka 리소스에 지정된 이름입니다.
-
Kafka 브로커 Pod를 관리하기 위한 StrimziPodSet 또는 StatefulSet (
UseStrimziPodSets
기능 게이트가 비활성화된 경우) - Kafka Pod에서 사용하는 서비스 계정입니다.
- Kafka 브로커에 대해 구성된 PodDisruptionBudget입니다.
-
Kafka 브로커 Pod를 관리하기 위한 StrimziPodSet 또는 StatefulSet (
cluster-name-kafka-idx
다음 Kafka 리소스에 지정된 이름입니다.
- Kafka StatefulSet 또는 StrimziPodSet에서 생성한 Pod
-
Kafka 브로커 구성이 있는 ConfigMap (
UseStrimziPodSets
기능 게이트가 활성화된 경우).
cluster-name-kafka-brokers
- 서비스는 Kafka 브로커 Pod IP 주소를 직접 확인하도록 DNS가 필요합니다.
cluster-name-kafka-bootstrap
- 서비스는 OpenShift 클러스터 내에서 연결하는 Kafka 클라이언트의 부트스트랩 서버로 사용할 수 있습니다.
cluster-name-kafka-external-bootstrap
-
OpenShift 클러스터 외부에서 연결하는 클라이언트를 위한 부트스트랩 서비스입니다. 이 리소스는 외부 리스너가 활성화된 경우에만 생성됩니다. 리스너 이름이
외부
이고 포트가9094
인 경우 이전 서비스 이름이 이전 버전과의 호환성에 사용됩니다. cluster-name-kafka-pod-id
-
OpenShift 클러스터 외부에서 개별 포드로 트래픽을 라우팅하는 데 사용되는 서비스입니다. 이 리소스는 외부 리스너가 활성화된 경우에만 생성됩니다. 리스너 이름이
외부
이고 포트가9094
인 경우 이전 서비스 이름이 이전 버전과의 호환성에 사용됩니다. cluster-name-kafka-external-bootstrap
-
OpenShift 클러스터 외부에서 연결하는 클라이언트용 부트스트랩 경로입니다. 이 리소스는 외부 리스너가 활성화되고 유형
route
로 설정된 경우에만 생성됩니다. 리스너 이름이외부
이고 포트가9094
인 경우 이전 경로 이름이 이전 버전과의 호환성에 사용됩니다. cluster-name-kafka-pod-id
-
OpenShift 클러스터 외부에서 개별 포드로의 트래픽 경로입니다. 이 리소스는 외부 리스너가 활성화되고 유형
route
로 설정된 경우에만 생성됩니다. 리스너 이름이외부
이고 포트가9094
인 경우 이전 경로 이름이 이전 버전과의 호환성에 사용됩니다. cluster-name-kafka-listener-name-bootstrap
- OpenShift 클러스터 외부에서 연결하는 클라이언트를 위한 부트스트랩 서비스입니다. 이 리소스는 외부 리스너가 활성화된 경우에만 생성됩니다. 새 서비스 이름은 다른 모든 외부 리스너에 사용됩니다.
cluster-name-kafka-listener-name-pod-id
- OpenShift 클러스터 외부에서 개별 포드로 트래픽을 라우팅하는 데 사용되는 서비스입니다. 이 리소스는 외부 리스너가 활성화된 경우에만 생성됩니다. 새 서비스 이름은 다른 모든 외부 리스너에 사용됩니다.
cluster-name-kafka-listener-name-bootstrap
-
OpenShift 클러스터 외부에서 연결하는 클라이언트용 부트스트랩 경로입니다. 이 리소스는 외부 리스너가 활성화되고 유형
route
로 설정된 경우에만 생성됩니다. 새 경로 이름은 다른 모든 외부 리스너에 사용됩니다. cluster-name-kafka-listener-name-pod-id
-
OpenShift 클러스터 외부에서 개별 포드로의 트래픽 경로입니다. 이 리소스는 외부 리스너가 활성화되고 유형
route
로 설정된 경우에만 생성됩니다. 새 경로 이름은 다른 모든 외부 리스너에 사용됩니다. cluster-name-kafka-config
-
UseStrimziPodSets
기능 게이트가 비활성화될 때 브로커 Pod에 의해 볼륨으로 마운트되는 Kafka 보조 구성이 포함된 ConfigMap cluster-name-kafka-brokers
- Kafka 브로커 키가 있는 시크릿입니다.
cluster-name-network-policy-kafka
- Kafka 서비스에 대한 액세스를 관리하는 네트워크 정책입니다.
strimzi-namespace-name-cluster-name-kafka-init
- Kafka 브로커가 사용하는 클러스터 역할 바인딩입니다.
cluster-name-jmx
- Kafka 브로커 포트를 보호하는 데 사용되는 사용자 이름 및 암호가 있는 시크릿입니다. 이 리소스는 Kafka에서 ScanSetting이 활성화된 경우에만 생성됩니다.
data-cluster-name-kafka-idx
-
Kafka 브로커 Pod에 대한 데이터를 저장하는 데 사용되는 볼륨에 대한 영구 볼륨 클레임입니다.
이 리소스는 데이터를 저장하기 위해 영구 볼륨을 프로비저닝하기 위해 영구 스토리지가 선택된 경우에만 생성됩니다.
data-id-cluster-name-kafka-idx
-
Kafka 브로커 Pod
id
x
엔터티 Operator
이러한 리소스는 Cluster Operator를 사용하여 Entity Operator를 배포하는 경우에만 생성됩니다.
cluster-name-entity-operator
다음 Entity Operator 리소스에 지정된 이름입니다.
- 주제 및 사용자 Operator를 사용한 배포.
- Entity Operator에서 사용하는 서비스 계정입니다.
cluster-name-entity-operator-random-string
- Entity Operator 배포에서 생성한 Pod입니다.
cluster-name-entity-topic-operator-config
- 주제 Operator에 대한 보조 구성이 있는 ConfigMap입니다.
cluster-name-entity-user-operator-config
- 사용자 Operator에 대한 보조 구성이 있는 ConfigMap입니다.
cluster-name-entity-topic-operator-certs
- Kafka 및 ZooKeeper와의 통신을 위한 Topic Operator 키가 있는 시크릿입니다.
cluster-name-entity-user-operator-certs
- Kafka 및 ZooKeeper와의 통신을 위한 User Operator 키가 있는 시크릿
strimzi-cluster-name-entity-topic-operator
- Entity Topic Operator에서 사용하는 역할 바인딩입니다.
strimzi-cluster-name-entity-user-operator
- Entity User Operator에서 사용하는 역할 바인딩입니다.
Kafka Exporter
이러한 리소스는 Cluster Operator를 사용하여 Kafka 내보내기를 배포하는 경우에만 생성됩니다.
cluster-name-kafka-exporter
다음 Kafka Exporter 리소스에 지정된 이름입니다.
- Kafka 내보내기를 통한 배포.
- 소비자 지연 메트릭을 수집하는 데 사용되는 서비스입니다.
- Kafka 내보내기에서 사용하는 서비스 계정입니다.
cluster-name-kafka-exporter-random-string
- Kafka 내보내기 배포에서 생성한 Pod입니다.
크루즈 컨트롤
이러한 리소스는 Cluster Operator를 사용하여 Cruise Control을 배포한 경우에만 생성됩니다.
cluster-name-cruise-control
다음 Cruise Control 리소스에 지정된 이름입니다.
- Cruise Control을 사용한 배포.
- Cruise Control과 통신하는 데 사용되는 서비스입니다.
- Cruise Control에서 사용하는 서비스 계정입니다.
cluster-name-cruise-control-random-string
- Cruise Control Deployment에서 생성한 Pod
cluster-name-cruise-control-config
- Cruise Control ancillary 구성이 포함되어 있으며 Cruise Control Pod에서 볼륨으로 마운트되는 ConfigMap입니다.
cluster-name-cruise-control-certs
- Kafka 및 ZooKeeper와의 통신을 위한 Cruise Control 키가 있는 시크릿입니다.
cluster-name-network-policy-cruise-control
- Cruise Control Service에 대한 액세스를 관리하는 네트워크 정책입니다.
2.3. Kafka Connect 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaConnect 리소스를 사용하여 Kafka Connect
배포를 구성합니다. Kafka Connect는 커넥터 플러그인을 사용하여 Kafka 브로커와 기타 시스템 간에 데이터를 스트리밍하기 위한 통합 툴킷입니다. Kafka Connect는 커넥터를 사용하여 데이터를 가져오거나 내보내기 위해 데이터베이스 등의 외부 데이터 소스 또는 대상과 Kafka를 통합하기 위한 프레임워크를 제공합니다. 커넥터는 필요한 연결 구성을 제공하는 플러그인입니다.
6.2.61절. “KafkaConnect
스키마 참조” KafkaConnect
리소스의 전체 스키마를 설명합니다.
커넥터 플러그인 배포에 대한 자세한 내용은 커넥터 플러그인 을 사용하여 Kafka Connect 확장을 참조하십시오.
2.3.1. Kafka Connect 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Connect를 사용하여 Kafka 클러스터에 대한 외부 데이터 연결을 설정합니다. KafkaConnect
리소스의 속성을 사용하여 Kafka Connect 배포를 구성합니다.
KafkaConnector 구성
KafkaConnector
리소스를 사용하면 OpenShift 네이티브 방식으로 Kafka Connect에 대한 커넥터 인스턴스를 생성하고 관리할 수 있습니다.
Kafka Connect 구성에서 strimzi.io/use-connector-resources
주석을 추가하여 Kafka Connect 클러스터에 KafkaConnectors를 활성화합니다. AMQ Streams가 데이터 연결에 필요한 커넥터 플러그인으로 컨테이너 이미지를 자동으로 빌드하도록 빌드 구성을 추가할 수도 있습니다. Kafka Connect 커넥터의 외부 구성은
externalConfiguration
속성을 통해 지정됩니다.
커넥터를 관리하려면 KafkaConnector
사용자 지정 리소스 또는 Kafka Connect REST API를 사용할 수 있습니다. KafkaConnector
리소스를 연결하는 Kafka Connect 클러스터와 동일한 네임스페이스에 배포해야 합니다. 이러한 방법을 사용하여 커넥터를 생성, 재구성 또는 삭제하는 방법에 대한 자세한 내용은 커넥터 추가 를 참조하십시오.
커넥터 구성은 HTTP 요청의 일부로 Kafka Connect에 전달되고 Kafka 자체 내에 저장됩니다. ConfigMaps 및 Secrets는 구성 및 기밀 데이터를 저장하는 데 사용되는 표준 OpenShift 리소스입니다. ConfigMaps 및 Secrets를 사용하여 커넥터의 특정 요소를 구성할 수 있습니다. 그런 다음 필요한 경우 구성을 별도로 보다 안전하게 유지하는 HTTP REST 명령에서 구성 값을 참조할 수 있습니다. 이 방법은 사용자 이름, 암호 또는 인증서와 같은 기밀 데이터에 특히 적용됩니다.
대량의 메시지 처리
대량의 메시지를 처리하도록 구성을 조정할 수 있습니다. 자세한 내용은 대량 의 메시지 처리를 참조하십시오.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
다음을 실행하는 방법에 대한 자세한 내용은 OpenShift에 AMQ Streams 배포 및 업그레이드 가이드를 참조하십시오.
절차
KafkaConnect
리소스의spec
속성을 편집합니다.구성할 수 있는 속성은 다음 예제 구성에 표시되어 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
KafkaConnect
를 사용합니다.- 2
- Kafka Connect 클러스터의 KafkaConnectors를 활성화합니다.
- 3
- 작업을 실행하는 작업자 의 복제본 노드 수입니다.
- 4
- Kafka Connect 클러스터에 대한 인증: mTLS,토큰 기반 OAuth, SASL 기반 SCRAM 기반 SCRAM-256/SCRAM-SHA -512, 또는 PLAIN 으로 지정됩니다. 기본적으로 Kafka Connect는 일반 텍스트 연결을 사용하여 Kafka 브로커에 연결합니다.
- 5
- Kafka Connect 클러스터에 연결하기 위한 부트스트랩 서버 입니다.
- 6
- TLS 인증서가 클러스터의 X.509 형식으로 저장되는 키 이름을 사용한 TLS 암호화 입니다. 인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.
- 7
- Kafka Connect 작업자 구성 (연결이 아님). 표준 Apache Kafka 구성을 제공하여 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
- 8
- 커넥터 플러그인이 자동으로 컨테이너 이미지를 빌드하기 위한 구성 속성을 빌드 합니다.
- 9
- (필수) 새 이미지가 푸시되는 컨테이너 레지스트리의 설정(필수)입니다.
- 10
- (필수) 새 컨테이너 이미지에 추가할 커넥터 플러그인 및 아티팩트 목록. 각 플러그인은 하나 이상의
아티팩트
로 구성해야 합니다. - 11
- 12
- 13
- 지정된 Kafka Connect 로거 및 로그 수준은 ConfigMap을 통해 직접 (
인라인
) 또는 간접적으로(외부
)합니다. 사용자 지정 ConfigMap은log4j.properties
또는log4j2.properties
키에 배치해야 합니다. Kafka Connectlog4j.rootLogger
로거의 경우 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 14
- 컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
- 15
- Prometheus 지표: 이 예제에서 Prometheus exporter에 대한 구성이 포함된 ConfigMap을 참조하여 활성화합니다.
metricsConfig.valueFrom.configMapKeyRef.key
아래에 빈 파일이 포함된 ConfigMap에 대한 참조를 사용하여 추가 구성 없이 메트릭을 활성화할 수 있습니다. - 16
- Kafka Connect 를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
- 17
- ADVANCED OPTION : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
- 18
- SPECIALIZED OPTION: 배포에 대한 인식 인식 구성입니다. 이는 리전이 아닌 동일한 위치 내의 배포를 위한 특수 옵션입니다. 리더 복제본이 아닌 가장 가까운 복제본에서 커넥터를 소비하려면 이 옵션을 사용합니다. 경우에 따라 가장 가까운 복제본에서 소비하면 네트워크 사용률을 향상시키거나 비용을 줄일 수 있습니다.
topologyKey
는 rack ID가 포함된 노드 레이블과 일치해야 합니다. 이 구성에 사용된 예제에서는 표준topology.kubernetes.io/zone
레이블을 사용하여 영역을 지정합니다. 가장 가까운 복제본에서 사용하려면 Kafka 브로커 구성에서RackAwareReplicaSelector
를 활성화합니다. - 19
- 템플릿 사용자 지정. 여기에서 Pod는 유사성 방지로 예약되므로 Pod는 동일한 호스트 이름이 있는 노드에 예약되지 않습니다.
- 20
- 환경 변수는 분산 추적을 위해 설정됩니다.
리소스를 생성하거나 업데이트합니다.
oc apply -f KAFKA-CONNECT-CONFIG-FILE
oc apply -f KAFKA-CONNECT-CONFIG-FILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Kafka Connect에 대한 인증이 활성화된 경우 Kafka Connect 소비자 그룹 및 항목에 대한 액세스를 활성화하도록 Kafka Connect 사용자를 구성합니다.
2.3.2. 여러 인스턴스에 대한 Kafka Connect 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Connect의 여러 인스턴스를 실행하는 경우 다음 구성
속성의 기본 구성을 변경해야 합니다.
세 항목의 값은 동일한 group.id
가 있는 모든 Kafka Connect 인스턴스에 대해 동일해야 합니다.
기본 설정을 변경하지 않으면 동일한 Kafka 클러스터에 연결하는 각 Kafka Connect 인스턴스가 동일한 값으로 배포됩니다. 실제로 모든 인스턴스가 클러스터에서 실행되고 동일한 주제를 사용하도록 연결된 것입니다.
여러 Kafka Connect 클러스터가 동일한 주제를 사용하려고 하면 Kafka Connect가 예상대로 작동하지 않고 오류를 생성합니다.
여러 Kafka Connect 인스턴스를 실행하려면 각 인스턴스에 대해 이러한 속성의 값을 변경합니다.
2.3.3. Kafka Connect 사용자 권한 부여 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Kafka Connect에 대한 사용자 액세스 권한을 부여하는 방법을 설명합니다.
Kafka에서 권한 부여 유형을 사용하는 경우 Kafka Connect 사용자는 소비자 그룹 및 Kafka Connect의 내부 항목에 대한 읽기/쓰기 액세스 권한이 필요합니다.
소비자 그룹 및 내부 주제의 속성은 AMQ Streams에 의해 자동으로 구성되거나 KafkaConnect
리소스의 사양에
명시적으로 지정할 수 있습니다.
KafkaConnect
리소스의 설정 속성 예
다음 절차에서는 간단한
권한 부여를 사용할 때 액세스를 제공하는 방법을 설명합니다.
간단한 권한 부여에서는 Kafka AclAuthorizer
플러그인에서 처리하는 ACL 규칙을 사용하여 적절한 액세스 수준을 제공합니다. 간단한 권한을 사용하도록 KafkaUser
리소스를 구성하는 방법에 대한 자세한 내용은 AclRule
스키마 참조 를 참조하십시오.
소비자 그룹 및 주제의 기본값은 여러 인스턴스를 실행할 때 다릅니다.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
절차
KafkaUser
리소스에서authorization
속성을 편집하여 사용자에게 액세스 권한을 제공합니다.다음 예제에서는
리터럴
이름 값을 사용하여 Kafka Connect 주제 및 소비자 그룹에 대한 액세스 권한이 구성됩니다.Expand 속성 이름 offset.storage.topic
connect-cluster-offsets
status.storage.topic
connect-cluster-status
config.storage.topic
connect-cluster-configs
group
connect-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
oc apply -f KAFKA-USER-CONFIG-FILE
oc apply -f KAFKA-USER-CONFIG-FILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.4. Kafka Connect 클러스터 리소스 목록 링크 복사링크가 클립보드에 복사되었습니다!
다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.
- connect-cluster-name-connect
다음 Kafka Connect 리소스에 지정된 이름입니다.
-
Kafka Connect 작업자 노드 Pod를 생성하는 배포(
StableConnectIdentities
기능 게이트가 비활성화된 경우). -
Kafka Connect 작업자 노드 Pod를 생성하는 StrimziPodSet(
StableConnectIdentities
기능 게이트가 활성화된 경우). -
Connect Pod에 안정적인 DNS 이름을 제공하는 헤드리스 서비스(
StableConnectIdentities
기능 게이트가 활성화된 경우) - Kafka Connect 작업자 노드에 대해 구성된 Pod 중단 예산입니다.
-
Kafka Connect 작업자 노드 Pod를 생성하는 배포(
- connect-cluster-name-connect-idx
-
Kafka Connect StrimziPodSet에서 생성한 Pod(
StableConnectIdentities
기능 게이트가 활성화된 경우) - connect-cluster-name-connect-api
- Kafka Connect 클러스터를 관리하기 위한 REST 인터페이스를 노출하는 서비스입니다.
- connect-cluster-name-config
- Kafka Connect 보조 구성이 포함되어 있고 Kafka 브로커 Pod에서 볼륨으로 마운트되는 ConfigMap입니다.
2.3.5. 변경 데이터 캡처를 위해 Red Hat build of Debezium과 통합 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat build of Debezium은 분산 변경 데이터 캡처 플랫폼입니다. 데이터베이스의 행 수준 변경 사항을 캡처하고, 변경 이벤트 레코드를 생성하며, 해당 레코드를 Kafka 주제로 스트리밍합니다. Debezium은 Apache Kafka를 기반으로 합니다. Debezium의 Red Hat 빌드를 배포하고 AMQ Streams와 통합할 수 있습니다. AMQ Streams를 배포한 후 Kafka Connect를 통해 Debezium을 커넥터 구성으로 배포합니다. Debezium은 변경 이벤트 레코드를 OpenShift의 AMQ Streams에 전달합니다. 애플리케이션은 이러한 변경 이벤트 스트림을 읽고 발생한 순서대로 변경 이벤트에 액세스할 수 있습니다.
Debezium에는 다음과 같은 여러 용도가 있습니다.
- 데이터 복제
- 캐시 및 검색 인덱스 업데이트
- 모놀리식 애플리케이션 간소화
- 데이터 통합
- 스트리밍 쿼리 활성화
데이터베이스 변경 사항을 캡처하려면 Debezium 데이터베이스 커넥터를 사용하여 Kafka Connect를 배포합니다. 커넥터 인스턴스를 정의하도록 KafkaConnector
리소스를 구성합니다.
AMQ Streams를 사용하여 Debezium의 Red Hat 빌드 배포에 대한 자세한 내용은 제품 설명서 를 참조하십시오. 이 문서에는 데이터베이스 업데이트에 대한 변경 이벤트 레코드를 보는 데 필요한 서비스 및 커넥터 설정 프로세스를 안내하는 Debezium 시작하기 가이드가 포함되어 있습니다.
2.4. Kafka MirrorMaker 2 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMaker2 리소스를 사용하여 Kafka MirrorMaker 2
배포를 구성합니다. MirrorMaker 2는 데이터 센터 내 또는 여러 Kafka 클러스터 간에 데이터를 복제합니다.
6.2.128절. “KafkaMirrorMaker2
스키마 참조” KafkaMirrorMaker2
리소스의 전체 스키마를 설명합니다.
MirrorMaker 2 리소스 구성은 이전 버전의 MirrorMaker와 다릅니다. MirrorMaker 2를 사용하도록 선택한 경우 현재 레거시 지원이 없으므로 모든 리소스를 새 형식으로 수동으로 변환해야 합니다.
2.4.1. MirrorMaker 2 데이터 복제 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 전체의 데이터 복제에서는 다음이 필요한 시나리오를 지원합니다.
- 시스템 장애가 발생할 경우 데이터 복구
- 분석을 위한 데이터 집계
- 특정 클러스터에 대한 데이터 액세스 제한
- 대기 시간을 개선하기 위해 특정 위치에서 데이터 제공
2.4.1.1. MirrorMaker 2 구성 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2는 소스 Kafka 클러스터의 메시지를 사용하여 대상 Kafka 클러스터에 씁니다.
MirrorMaker 2 사용:
- 소스 클러스터의 데이터를 사용하기 위한 소스 클러스터 구성
- 대상 클러스터로 데이터를 출력하는 대상 클러스터 구성
MirrorMaker 2는 Kafka Connect 프레임워크를 기반으로 하며 클러스터 간 데이터 전송을 관리하는 커넥터 입니다.
소스 및 대상 클러스터의 연결 세부 정보를 포함하여 Kafka Connect 배포를 정의하도록 MirrorMaker 2를 구성한 다음 일련의 MirrorMaker 2 커넥터를 실행하여 연결을 수행합니다.
MirrorMaker 2는 다음 커넥터로 구성됩니다.
MirrorSourceConnector
-
소스 커넥터는 소스 클러스터에서 대상 클러스터로 항목을 복제합니다. 또한 ACL을 복제하며
MirrorCheckpointConnector
를 실행하는 데 필요합니다. MirrorCheckpointConnector
- 체크포인트 커넥터는 오프셋을 주기적으로 추적합니다. 활성화된 경우 소스 클러스터와 대상 클러스터 간의 소비자 그룹 오프셋도 동기화합니다.
MirrorHeartbeatConnector
- 하트비트 커넥터는 소스 클러스터와 대상 클러스터 간의 연결을 주기적으로 확인합니다.
User Operator를 사용하여 ACL을 관리하는 경우 커넥터를 통해 ACL을 복제할 수 없습니다.
소스 클러스터에서 대상 클러스터로 데이터를 미러링 하는 프로세스는 비동기식입니다. 각 MirrorMaker 2 인스턴스는 하나의 소스 클러스터에서 하나의 대상 클러스터로 데이터를 미러링합니다. 둘 이상의 MirrorMaker 2 인스턴스를 사용하여 여러 클러스터 간에 데이터를 미러링할 수 있습니다.
그림 2.1. 두 클러스터에서 복제
기본적으로 소스 클러스터의 새 주제를 10분마다 점검합니다. 소스 커넥터 구성에 refresh.topics.interval.seconds
를 추가하여 빈도를 변경할 수 있습니다.
2.4.1.1.1. 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2는 활성/수동 또는 활성 / 활성 클러스터 구성에서 사용할 수 있습니다.
- 활성/활성 클러스터 구성
- 활성/활성 구성에는 데이터를 양방향으로 복제하는 두 개의 활성 클러스터가 있습니다. 애플리케이션은 클러스터 중 하나를 사용할 수 있습니다. 각 클러스터는 동일한 데이터를 제공할 수 있습니다. 이러한 방식으로 서로 다른 지리적 위치에서 동일한 데이터를 사용할 수 있습니다. 소비자 그룹은 두 클러스터에서 모두 활성화되므로 복제된 항목에 대한 소비자 오프셋은 소스 클러스터와 다시 동기화되지 않습니다.
- 활성/수동 클러스터 구성
- Active/passive 구성에는 활성 클러스터 복제 데이터가 패시브 클러스터에 있습니다. 패시브 클러스터는 state에 남아 있습니다. 시스템 장애가 발생할 경우 데이터 복구에 수동 클러스터를 사용할 수 있습니다.
생산자와 소비자는 활성 클러스터에만 연결됩니다. 각 대상 대상에는 MirrorMaker 2 클러스터가 필요합니다.
2.4.1.1.2. 양방향 복제(활성/활성) 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2 아키텍처는 활성/활성 클러스터 구성에서 양방향 복제를 지원합니다.
각 클러스터는 소스 및 원격 주제의 개념을 사용하여 다른 클러스터의 데이터를 복제합니다. 각 클러스터에 동일한 항목이 저장되므로 원격 주제의 이름을 MirrorMaker 2가 소스 클러스터를 나타내기 위해 자동으로 변경합니다. 원래 클러스터의 이름이 주제 이름 앞에 추가됩니다.
그림 2.2. 주제 이름 변경
원래 클러스터를 플래그하여 항목이 해당 클러스터로 다시 복제되지 않습니다.
원격 주제를 통한 복제 개념은 데이터 집계가 필요한 아키텍처를 구성할 때 유용합니다. 소비자는 별도의 집계 클러스터를 사용하지 않고도 동일한 클러스터 내의 소스 및 원격 주제를 구독할 수 있습니다.
2.4.1.1.3. Unidirectional 복제(활성/수동) 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2 아키텍처는 활성/수동 클러스터 구성에서 단방향 복제를 지원합니다.
활성/수동 클러스터 구성을 사용하여 백업을 수행하거나 데이터를 다른 클러스터로 마이그레이션할 수 있습니다. 이 경우 원격 주제의 자동 이름 변경을 수행하지 않을 수 있습니다.
소스 커넥터 구성에 IdentityReplicationPolicy
를 추가하여 자동 이름 변경 사항을 덮어쓸 수 있습니다. 이 구성을 적용하면 주제는 원래 이름을 유지합니다.
2.4.1.2. 주제 구성 동기화 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2는 소스 클러스터와 대상 클러스터 간의 주제 구성 동기화를 지원합니다. MirrorMaker 2 구성에 소스 주제를 지정합니다. MirrorMaker 2는 소스 주제를 모니터링합니다. MirrorMaker 2는 변경 사항을 감지하여 소스 주제의 원격 항목에 전파합니다. 변경 사항에는 누락된 주제 및 파티션을 자동으로 생성하는 작업이 포함될 수 있습니다.
대부분의 경우 로컬 항목에 작성하고 원격 주제에서 읽습니다. 원격 주제에서 쓰기 작업을 방지할 수는 없지만 피해야 합니다.
2.4.1.3. 오프셋 추적 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2는 내부 주제를 사용하는 소비자 그룹에 대한 오프셋을 추적합니다.
offset-syncs
주제-
offset-syncs
주제는 레코드 메타데이터에서 복제된 주제 파티션에 대한 소스 및 대상 오프셋을 매핑합니다. 체크포인트
주제-
체크포인트
항목은 각 소비자 그룹에서 복제된 주제 파티션에 대해 소스 및 대상 클러스터에 마지막으로 커밋된 오프셋을 매핑합니다.
MirrorMaker 2에서 내부적으로 사용했기 때문에 이러한 주제와 직접 상호 작용하지 않습니다.
MirrorCheckpointConnector
는 오프셋 추적을 위한 체크포인트 를 출력합니다. 체크포인트
항목에 대한 오프셋은 구성을 통해 사전 결정된 간격으로 추적됩니다. 두 항목 모두 장애 조치의 올바른 오프셋 위치에서 복제를 완전히 복원할 수 있도록 합니다.
offset-syncs
주제의 위치는 기본적으로 소스
클러스터입니다. offset-syncs.topic.location
커넥터 구성을 사용하여 이를 대상
클러스터로 변경할 수 있습니다. 주제가 포함된 클러스터에 대한 읽기/쓰기 액세스 권한이 필요합니다. 대상 클러스터를 offset-syncs
주제의 위치로 사용하면 소스 클러스터에 대한 읽기 액세스 권한만 있는 경우에도 MirrorMaker 2를 사용할 수 있습니다.
2.4.1.4. 소비자 그룹 오프셋 동기화 링크 복사링크가 클립보드에 복사되었습니다!
__consumer_offsets
주제에서는 각 소비자 그룹에 대해 커밋된 오프셋에 대한 정보를 저장합니다. 오프셋 동기화는 소스 클러스터의 소비자 그룹에 대한 소비자 오프셋을 대상 클러스터의 소비자 오프셋 주제로 주기적으로 전송합니다.
오프셋 동기화는 활성/수동 구성에서 특히 유용합니다. 활성 클러스터가 다운되면 소비자 애플리케이션은 수동(standby) 클러스터로 전환하고 마지막으로 전송된 오프셋 위치에서 가져올 수 있습니다.
주제 오프셋 동기화를 사용하려면 checkpoint 커넥터 구성에 sync.group.offsets.enabled
를 추가하고 속성을 true
로 설정하여 동기화를 활성화합니다. 동기화는 기본적으로 비활성화되어 있습니다.
소스 커넥터에서 IdentityReplicationPolicy
를 사용하는 경우 검사점 커넥터 구성에서도 구성해야 합니다. 이렇게 하면 미러링된 소비자 오프셋이 올바른 항목에 적용됩니다.
소비자 오프셋은 대상 클러스터에서 활성 상태가 아닌 소비자 그룹에 대해서만 동기화됩니다. 소비자 그룹이 대상 클러스터에 있는 경우 동기화를 수행할 수 없으며 UNKNOWN_MEMBER_ID
오류가 반환됩니다.
활성화된 경우 소스 클러스터에서 오프셋의 동기화가 주기적으로 수행됩니다. sync.group.offsets.interval.seconds
및 emit.checkpoints.interval.seconds
를 checkpoint 커넥터 구성에 추가하여 빈도를 변경할 수 있습니다. 속성은 소비자 그룹 오프셋이 동기화되는 빈도와 오프셋 추적에 대해 출력되는 체크포인트 빈도를 초 단위로 지정합니다. 두 속성의 기본값은 60초입니다. 기본적으로 10분마다 수행되는 refresh.groups.interval.seconds
속성을 사용하여 새 소비자 그룹에 대한 검사 빈도를 변경할 수도 있습니다.
동기화는 시간 기반이므로 소비자가 수동 클러스터로 전환하면 메시지가 일부 복제될 수 있습니다.
Java로 작성된 애플리케이션이 있는 경우 RemoteClusterUtils.java
유틸리티를 사용하여 애플리케이션을 통해 오프셋을 동기화할 수 있습니다. 유틸리티는 체크포인트
주제에서 소비자 그룹에 대한 원격 오프셋을 가져옵니다.
2.4.1.5. 연결 확인 링크 복사링크가 클립보드에 복사되었습니다!
MirrorHeartbeatConnector
는 클러스터 간 연결을 확인하기 위해 하트비트 를 내보냅니다.
내부 하트비트
주제는 소스 클러스터에서 복제됩니다. 대상 클러스터는 하트비트
주제를 사용하여 다음을 확인합니다.
- 클러스터 간 연결을 관리하는 커넥터가 실행 중입니다.
- 소스 클러스터를 사용할 수 있음
2.4.2. 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터 간 데이터 동기화를 오케스트레이션하는 내부 커넥터에 대한 Mirrormaker 2 커넥터 구성을 사용합니다.
다음 표에서는 커넥터 속성과 이를 사용하도록 구성하는 커넥터에 대해 설명합니다.
속성 | sourceConnector | checkpointConnector | heartbeatConnector |
---|---|---|---|
| ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ |
| ✓ | ✓ | |
| ✓ | ✓ | |
| ✓ | ✓ | |
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ | ||
| ✓ |
2.4.3. 커넥터 생산자 및 소비자 구성 링크 복사링크가 클립보드에 복사되었습니다!
MirrorMaker 2 커넥터는 내부 생산자와 소비자를 사용합니다. 필요한 경우 이러한 생산자와 소비자를 구성하여 기본 설정을 재정의할 수 있습니다.
예를 들어 소스 프로듀서의 batch.size
를 늘리고 대상 Kafka 클러스터에 주제를 보내 대량의 메시지를 더 잘 수용할 수 있습니다.
생산자 및 소비자 구성 옵션은 MirrorMaker 2 구현에 따라 달라지며 변경될 수 있습니다.
다음 표에는 각 커넥터의 생산자와 소비자와 구성을 추가할 수 있는 위치에 대해 설명합니다.
유형 | 설명 | 설정 |
---|---|---|
프로듀서 | 주제 메시지를 대상 Kafka 클러스터로 보냅니다. 대량의 데이터를 처리할 때 이 생산자의 구성을 튜닝하는 것이 좋습니다. |
|
프로듀서 |
복제된 주제 파티션에 대한 소스 및 대상 오프셋을 매핑하는 |
|
소비자 | 소스 Kafka 클러스터에서 주제 메시지를 검색합니다. |
|
유형 | 설명 | 설정 |
---|---|---|
프로듀서 | 소비자 오프셋 체크포인트를 내보냅니다. |
|
소비자 |
|
|
offset-syncs.topic.location
을 target
으로 설정하여 대상 Kafka 클러스터를 offset-syncs
주제의 위치로 사용할 수 있습니다.
유형 | 설명 | 설정 |
---|---|---|
프로듀서 | 하트비트를 내보냅니다. |
|
다음 예제에서는 생산자 및 소비자를 구성하는 방법을 보여줍니다.
커넥터 생산자 및 소비자 구성의 예
2.4.4. 최대 작업 수 지정 링크 복사링크가 클립보드에 복사되었습니다!
Connectors는 Kafka 내부 및 외부에서 데이터를 이동하는 작업을 생성합니다. 각 커넥터는 작업을 실행하는 작업자 Pod 그룹에 분산된 하나 이상의 작업으로 구성됩니다. 많은 수의 파티션을 복제하거나 많은 수의 소비자 그룹의 오프셋을 동기화할 때 작업 수를 늘리면 성능 문제가 발생할 수 있습니다.Increase the number of tasks can help with performance issues when replicating a large number of partitions or synchronizing the offsets of a large number of consumer groups.
작업은 병렬로 실행됩니다. 작업자에는 하나 이상의 작업이 할당됩니다. 단일 작업은 하나의 작업자 Pod에서 처리하므로 작업보다 더 많은 작업자 Pod가 필요하지 않습니다. 작업자보다 많은 작업이 있는 경우 작업자는 여러 작업을 처리합니다.
tasksMax
속성을 사용하여 MirrorMaker 구성에서 최대 커넥터 작업 수를 지정할 수 있습니다. 최대 작업 수를 지정하지 않으면 기본 설정은 단일 작업입니다.
하트비트 커넥터는 항상 단일 작업을 사용합니다.
소스 및 체크포인트 커넥터에 대해 시작된 작업 수는 가능한 최대 작업 수와 tasksMax
의 값 사이에서 더 낮은 값입니다. 소스 커넥터의 경우 가능한 최대 작업 수는 소스 클러스터에서 복제되는 각 파티션에 대해 하나씩입니다. 체크포인트 커넥터의 경우 가능한 최대 작업 수는 소스 클러스터에서 복제되는 각 소비자 그룹마다 하나씩입니다. 최대 작업 수를 설정하는 경우 프로세스를 지원하는 파티션 수와 하드웨어 리소스를 고려하십시오.
인프라에서 처리 오버헤드를 지원하는 경우 작업 수를 늘리면 처리량과 대기 시간이 향상될 수 있습니다. 예를 들어 작업을 추가하면 많은 파티션 또는 소비자 그룹이 있는 경우 소스 클러스터를 폴링하는 데 걸리는 시간이 줄어듭니다.
검사점 커넥터에 대한 작업 수를 늘리면 파티션 수가 많으면 유용합니다.Increase the number of tasks for the checkpoint connector is useful when you have a large number of partitions.
소스 커넥터의 작업 수 늘리기
검사점 커넥터에 대한 작업 수를 늘리면 많은 수의 소비자 그룹이 있을 때 유용합니다.Increase the number of tasks for the checkpoint connector is useful when you have a large number of consumer groups.
체크포인트 커넥터에 대한 작업 수 늘리기
기본적으로 MirrorMaker 2는 10분마다 새 소비자 그룹을 확인합니다. refresh.groups.interval.seconds
구성을 조정하여 빈도를 변경할 수 있습니다. 더 낮게 조정할 때 주의하십시오. 더 자주 검사하면 성능에 부정적인 영향을 미칠 수 있습니다.
2.4.4.1. 커넥터 작업 확인 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus 및 Grafana를 사용하여 배포를 모니터링하는 경우 MirrorMaker 2 성능을 확인할 수 있습니다. AMQ Streams와 함께 제공되는 MirrorMaker 2 Grafana 대시보드 예제에서는 작업 및 대기 시간과 관련된 다음 메트릭을 보여줍니다.
- 작업 수
- 복제 대기 시간
- 동기화 대기 시간 오프셋
2.4.5. ACL 규칙 동기화 링크 복사링크가 클립보드에 복사되었습니다!
User Operator를 사용하지 않는 경우 원격 항목에 대한 ACL 액세스가 가능합니다.
User Operator 없이 AclAuthorizer
를 사용하는 경우 브로커에 대한 액세스를 관리하는 ACL 규칙도 원격 항목에 적용됩니다. 소스 주제를 읽을 수 있는 사용자는 동등한 원격을 읽을 수 있습니다.
OAuth 2.0 권한 부여는 이러한 방식으로 원격 항목에 대한 액세스를 지원하지 않습니다.
2.4.6. Kafka MirrorMaker 2 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMaker2
리소스의 속성을 사용하여 Kafka MirrorMaker 2 배포를 구성합니다. MirrorMaker 2를 사용하여 Kafka 클러스터 간 데이터를 동기화합니다.
구성은 다음을 지정해야 합니다.
- 각 Kafka 클러스터
- 인증을 포함한 각 클러스터에 대한 연결 정보
복제 흐름 및 방향
- 클러스터로
- 주제 관련 주제
MirrorMaker의 이전 버전이 계속 지원됩니다. 이전 버전에 대해 구성된 리소스를 사용하려면 MirrorMaker 2에서 지원하는 형식으로 업데이트해야 합니다.
MirrorMaker 2는 복제 요소와 같은 속성에 대한 기본 구성 값을 제공합니다. 기본값이 변경되지 않은 최소 구성은 다음 예와 같습니다.
MirrorMaker 2에 대한 최소 구성
mTLS 또는 SASL 인증을 사용하여 소스 및 대상 클러스터에 대한 액세스 제어를 구성할 수 있습니다. 다음 절차에서는 소스 및 대상 클러스터에 TLS 암호화 및 mTLS 인증을 사용하는 구성을 보여줍니다.
KafkaMirrorMaker2
리소스의 소스 클러스터에서 복제할 주제 및 소비자 그룹을 지정할 수 있습니다. topicsPattern
및 groupsPattern
속성을 사용하여 이 작업을 수행합니다. 이름 목록을 제공하거나 정규식을 사용할 수 있습니다. 기본적으로 topicsPattern
및 groupsPattern
속성을 설정하지 않으면 모든 주제 및 소비자 그룹이 복제됩니다. 정규식으로 ".*"
를 사용하여 모든 주제와 소비자 그룹을 복제할 수도 있습니다. 그러나 클러스터에서 불필요한 추가 부하가 발생하지 않도록 하는 데 필요한 주제와 소비자 그룹만 지정하십시오.
대량의 메시지 처리
대량의 메시지를 처리하도록 구성을 조정할 수 있습니다. 자세한 내용은 대량 의 메시지 처리를 참조하십시오.
사전 요구 사항
- AMQ Streams가 실행 중
- 소스 및 대상 Kafka 클러스터 사용 가능
절차
KafkaMirrorMaker2
리소스의spec
속성을 편집합니다.구성할 수 있는 속성은 다음 예제 구성에 표시되어 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kafka Connect 및 Mirror 2.0 버전 2.0은 항상 동일합니다.
- 2
- 작업을 실행하는 작업자 의 복제본 노드 수입니다.
- 3
- Kafka Connect의 Kafka 클러스터 별칭 - 대상 Kafka 클러스터를 지정해야 합니다. Kafka 클러스터는 내부 항목에 대해 Kafka Connect에서 사용합니다.
- 4
- 동기화되는 Kafka 클러스터의 사양 입니다.
- 5
- 소스 Kafka 클러스터의 클러스터 별칭 입니다.
- 6
- 7
- 소스 Kafka 클러스터에 연결하기 위한 부트스트랩 서버 입니다.
- 8
- 소스 Kafka 클러스터의 X.509 형식으로 저장되는 TLS 인증서의 키 이름을 사용한 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 커넥터에서 사용하는 소스 클러스터의 클러스터 별칭 입니다.
- 18
- MirrorMaker 2 커넥터에서 사용하는 대상 클러스터의 클러스터 별칭 입니다.
- 19
- 원격 주제를 생성하는
MirrorSourceConnector
구성입니다. 구성이 기본 구성 옵션을 덮어씁니다. - 20
- 커넥터가 생성할 수 있는 최대 작업 수입니다. 작업은 데이터 복제를 처리하고 병렬로 실행합니다. 인프라에서 처리 오버헤드를 지원하는 경우 이 값을 늘리면 처리량이 향상될 수 있습니다. Kafka Connect는 클러스터 멤버 간에 작업을 배포합니다. 작업자보다 많은 작업이 있는 경우 작업자에는 여러 작업이 할당됩니다. 싱크 커넥터의 경우 소비된 각 주제 파티션에 대해 하나의 작업이 있어야 합니다. 소스 커넥터의 경우 병렬로 실행할 수 있는 작업 수도 외부 시스템에 따라 달라질 수 있습니다. 커넥터는 병렬 처리를 수행할 수 없는 경우 최대 작업 수보다 적은 수를 생성합니다.
- 21
- 실패한 커넥터 및 작업의 자동 재시작을 활성화합니다. 재시작 횟수는 최대 7개까지 수행되며, 이 후에는 수동으로 다시 시작해야 합니다.
- 22
- 대상 클러스터에서 생성된 미러링된 항목의 복제 요인입니다.
- 23
- 소스 및 대상 클러스터
의 오프셋을
매핑하는MirrorSourceConnector
오프셋의 복제 요인입니다. - 24
- ACL 규칙 동기화 가 활성화되면 ACL이 동기화된 항목에 적용됩니다. 기본값은
true
입니다. 이 기능은 User Operator와 호환되지 않습니다. User Operator를 사용하는 경우 이 속성을false
로 설정합니다. - 25
- 새 항목에 대한 검사 빈도를 변경하는 선택적 설정입니다. 기본값은 10분마다 점검을 위한 것입니다.
- 26
- 원격 주제 이름 변경에 사용되는 구분자를 정의합니다.
- 27
- 원격 주제의 자동 이름 변경을 재정의하는 정책을 추가합니다. 소스 클러스터 이름 앞에 이름 앞에 추가하지 않고 주제에서 원래 이름을 유지합니다. 이 선택적 설정은 활성/수동 백업 및 데이터 마이그레이션에 유용합니다. 주제 오프셋 동기화를 구성하려면 이 속성도
checkpointConnector.config
에 대해 설정해야 합니다. - 28
- 연결 확인을 수행하는
MirrorHeartbeatConnector
구성입니다. 구성이 기본 구성 옵션을 덮어씁니다. - 29
- 대상 클러스터에서 생성된 하트비트 항목에 대한 복제 요인입니다.
- 30
- 오프셋을 추적하는
MirrorCheckpointConnector
구성입니다. 구성이 기본 구성 옵션을 덮어씁니다. - 31
- 대상 클러스터에서 생성된 체크포인트 항목에 대한 복제 요인입니다.
- 32
- 새 소비자 그룹에 대한 검사 빈도를 변경하는 선택적 설정입니다. 기본값은 10분마다 점검을 위한 것입니다.
- 33
- 활성/수동 구성에서 복구에 유용한 소비자 그룹 오프셋을 동기화하는 선택적 설정입니다. 동기화는 기본적으로 활성화되어 있지 않습니다.
- 34
- 소비자 그룹 오프셋의 동기화가 활성화된 경우 동기화 빈도를 조정할 수 있습니다.
- 35
- 오프셋 추적에 대한 검사 빈도를 조정합니다. 오프셋 동기화의 빈도를 변경하는 경우 이러한 검사의 빈도를 조정해야 할 수도 있습니다.
- 36
- 쉼표로 구분된 목록 또는 정규식 패턴으로 정의된 소스 클러스터의 주제 복제 주제 복제 . 소스 커넥터는 지정된 주제를 복제합니다. 검사점 커넥터는 지정된 항목에 대한 오프셋을 추적합니다. 여기에서는 이름으로 세 가지 주제를 요청합니다.
- 37
- 쉼표로 구분된 목록 또는 정규식 패턴으로 정의된 소스 클러스터의 소비자 그룹 복제입니다. 검사점 커넥터는 지정된 소비자 그룹을 복제합니다. 여기에서는 이름별로 세 개의 소비자 그룹을 요청합니다.
- 38
- 39
- 지정된 Kafka Connect 로거 및 로그 수준은 ConfigMap을 통해 직접 (
인라인
) 또는 간접적으로(외부
)합니다. 사용자 지정 ConfigMap은log4j.properties
또는log4j2.properties
키에 배치해야 합니다. Kafka Connectlog4j.rootLogger
로거의 경우 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 40
- 컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
- 41
- Kafka Mirror Maker를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
- 42
- ADVANCED OPTION : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
- 43
- SPECIALIZED OPTION: 배포에 대한 인식 인식 구성입니다. 이는 리전이 아닌 동일한 위치 내의 배포를 위한 특수 옵션입니다. 리더 복제본이 아닌 가장 가까운 복제본에서 커넥터를 소비하려면 이 옵션을 사용합니다. 경우에 따라 가장 가까운 복제본에서 소비하면 네트워크 사용률을 향상시키거나 비용을 줄일 수 있습니다.
topologyKey
는 rack ID가 포함된 노드 레이블과 일치해야 합니다. 이 구성에 사용된 예제에서는 표준topology.kubernetes.io/zone
레이블을 사용하여 영역을 지정합니다. 가장 가까운 복제본에서 사용하려면 Kafka 브로커 구성에서RackAwareReplicaSelector
를 활성화합니다. - 44
- 템플릿 사용자 지정. 여기에서 Pod는 유사성 방지로 예약되므로 Pod는 동일한 호스트 이름이 있는 노드에 예약되지 않습니다.
- 45
- 환경 변수는 분산 추적을 위해 설정됩니다.
- 46
- Jaeger에 대해 분산 추적이 활성화됩니다.
- 47
- Kafka MirrorMaker에 환경 변수로 마운트된 OpenShift Secret의 외부 구성 구성 공급자 플러그인 을 사용하여 외부 소스에서 구성 값을 로드할 수도 있습니다.
리소스를 생성하거나 업데이트합니다.
oc apply -f MIRRORMAKER-CONFIGURATION-FILE
oc apply -f MIRRORMAKER-CONFIGURATION-FILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.7. Kafka MirrorMaker 2 배포 보안 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 MirrorMaker 2 배포를 보호하는 데 필요한 구성을 간략하게 설명합니다.
소스 Kafka 클러스터 및 대상 Kafka 클러스터에 대한 별도의 구성이 필요합니다. 또한 소스 및 대상 Kafka 클러스터에 연결하는 데 필요한 인증 정보를 제공하기 위해 별도의 사용자 구성이 필요합니다.
Kafka 클러스터의 경우 OpenShift 클러스터 외부의 연결에 대해 OpenShift 클러스터 및 외부 리스너 내 보안 연결을 위해 내부 리스너를 지정합니다.
인증 및 권한 부여 메커니즘을 구성할 수 있습니다. 소스 및 대상 Kafka 클러스터에 대해 구현된 보안 옵션은 MirrorMaker 2에 대해 구현된 보안 옵션과 호환되어야 합니다.
클러스터 및 사용자 인증 자격 증명을 생성한 후 보안 연결을 위해 MirrorMaker 구성에 지정합니다.
이 절차에서는 Cluster Operator에서 생성한 인증서가 사용되지만 자체 인증서를 설치하여 교체할 수 있습니다. 외부 CA(인증 기관)에서 관리하는 Kafka 리스너 인증서를 사용하도록 리스너를 구성할 수도 있습니다.
시작하기 전에
이 절차를 시작하기 전에 AMQ Streams에서 제공하는 구성 파일 예제 를 살펴보십시오. 여기에는 mTLS 또는 SCRAM-SHA-512 인증을 사용하여 MirrorMaker 2 배포를 보호하는 예제가 포함됩니다. 예제에서는 OpenShift 클러스터 내에서 연결하기 위한 내부 리스너를 지정합니다.
예제에서는 소스 및 대상 Kafka 클러스터에서 작업을 허용하는 MirrorMaker 2에 필요한 모든 ACL을 포함하여 전체 승인을 위한 구성을 제공합니다.
사전 요구 사항
- AMQ Streams가 실행 중
- 소스 및 대상 클러스터의 별도의 네임스페이스
이 절차에서는 Topic Operator를 사용하려면 소스 및 대상 Kafka 클러스터가 별도의 네임스페이스에 설치되어 있다고 가정합니다. Topic Operator는 지정된 네임스페이스에서 단일 클러스터만 감시합니다.
클러스터를 네임스페이스로 분리하면 네임스페이스 외부에서 액세스할 수 있도록 클러스터 시크릿을 복사해야 합니다. MirrorMaker 구성에서 시크릿을 참조해야 합니다.
절차
두 개의
Kafka
리소스를 구성합니다. 하나는 소스 Kafka 클러스터를 보호하고 하나는 대상 Kafka 클러스터를 보호합니다.인증을 위한 리스너 구성을 추가하고 권한 부여를 활성화할 수 있습니다.
이 예에서 내부 리스너는 TLS 암호화 및 mTLS 인증을 사용하는 Kafka 클러스터에 대해 구성됩니다. Kafka
간단한
인증이 활성화됩니다.TLS 암호화 및 mTLS 인증을 사용하는 소스 Kafka 클러스터 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 암호화 및 mTLS 인증을 사용하는 대상 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는 리스너를 생성하고 클러스터 및 클라이언트 CA(인증 기관) 인증서를 설정하여 Kafka 클러스터 내에서 인증을 활성화합니다.
인증서는 <
cluster_name> -cluster-ca-cert
에서 생성됩니다.소스 Kafka 클러스터의 사용자 및 대상 Kafka 클러스터의 사용자용으로 하나씩 두 개의
KafkaUser
리소스를 구성합니다.-
해당 소스 및 대상 Kafka 클러스터와 동일한 인증 및 권한 부여 유형을 구성합니다. 예를 들어 소스 Kafka 클러스터의
Kafka
구성에서tls
인증 및간단한
권한 부여 유형을 사용한 경우KafkaUser
구성에서 동일하게 사용합니다. 소스 및 대상 Kafka 클러스터에서 작업을 허용하도록 MirrorMaker 2에 필요한 ACL을 구성합니다.
ACL은 내부 MirrorMaker 커넥터와 기본 Kafka Connect 프레임워크에서 사용합니다.
mTLS 인증에 대한 소스 사용자 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mTLS 인증에 대한 대상 사용자 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고type
을tls-external
로 설정하여 User Operator 외부에서 발급한 인증서를 사용할 수 있습니다. 자세한 내용은 6.2.93절. “KafkaUserSpec
schema reference”의 내용을 참조하십시오.-
해당 소스 및 대상 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
리소스와 동일한 이름으로 새 시크릿을 생성합니다. 보안에는 mTLS 인증을 위한 개인 키와 공개 키가 포함되어 있습니다. 공개 키는 클라이언트 CA에서 서명한 사용자 인증서에 포함됩니다.인증 세부 정보를 사용하여
KafkaMirrorMaker2
리소스를 구성하여 소스 및 대상 Kafka 클러스터에 연결합니다.TLS 암호화 및 mTLS 인증을 사용하는 MirrorMaker 2 구성의 예
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.4.8. Kafka MirrorMaker 2 커넥터 다시 시작 수행 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 Kafka MirrorMaker 2 커넥터의 재시작을 수동으로 트리거하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
다시 시작하려는
Kafka MirrorMaker 2
커넥터를 제어하는 KafkaMirrorMaker2 사용자 정의 리소스의 이름을 찾습니다.oc get KafkaMirrorMaker2
oc get KafkaMirrorMaker2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaMirrorMaker2 사용자 정의 리소스에서 다시 시작할
Kafka MirrorMaker 2
커넥터의 이름을 찾습니다.oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME
oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME
Copy 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 커넥터가 재시작됩니다. 재시작 요청이 승인되면
KafkaMirrorMaker2
사용자 정의 리소스에서 주석이 제거됩니다.
2.4.9. Kafka MirrorMaker 2 커넥터 작업 재시작 수행 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 Kafka MirrorMaker 2 커넥터 작업 재시작을 수동으로 트리거하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
다시 시작하려는
Kafka MirrorMaker 2
커넥터를 제어하는 KafkaMirrorMaker2 사용자 정의 리소스의 이름을 찾습니다.oc get KafkaMirrorMaker2
oc get KafkaMirrorMaker2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka MirrorMaker 2 커넥터의 이름과
KafkaMirrorMaker2
사용자 정의 리소스에서 다시 시작할 작업의 ID를 찾습니다. 작업 ID는 0부터 시작하는 음수가 아닌 정수입니다.oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME
oc describe KafkaMirrorMaker2 KAFKAMIRRORMAKER-2-NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 작업을 다시 시작하려면 OpenShift에서
KafkaMirrorMaker2
리소스에 주석을 답니다. 이 예에서oc annotate
restarts 작업 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 커넥터 작업이 재시작됩니다. 재시작 작업 요청이 수락되면 주석이
KafkaMirrorMaker2
사용자 정의 리소스에서 제거됩니다.
2.5. Kafka MirrorMaker 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMaker 리소스를 사용하여 Kafka MirrorMaker
배포를 구성합니다. KafkaMirrorMaker는 Kafka 클러스터 간에 데이터를 복제합니다.
6.2.108절. “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 클러스터 사용 가능
절차
KafkaMirrorMaker
리소스의spec
속성을 편집합니다.구성할 수 있는 속성은 다음 예제 구성에 표시되어 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2
- 소비자 및 생산자용 부트스트랩 서버 입니다.
- 3
- 4
- 5
- 6
- 소비자 또는 생산자의 X.509 형식으로 저장되는 TLS 인증서의 키 이름이 포함된 TLS 암호화 입니다. 인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.
- 7
- 8
- 9
- 외부 리스너가 TLS 버전에 대한 특정 암호화 제품군으로 실행되도록 하는 SSL 속성입니다.
- 10
HTTPS
로 설정하여 호스트 이름 확인이 활성화됩니다. 빈 문자열은 확인을 비활성화합니다.- 11
abortOnSendFailure
속성이true
로 설정되면 Kafka MirrorMaker가 종료되고 메시지에 대한 전송 실패 후에 컨테이너가 다시 시작됩니다.- 12
- 외부 리스너가 TLS 버전에 대한 특정 암호화 제품군으로 실행되도록 하는 SSL 속성입니다.
- 13
HTTPS
로 설정하여 호스트 이름 확인이 활성화됩니다. 빈 문자열은 확인을 비활성화합니다.- 14
- 소스에서 대상 Kafka 클러스터로 미러링된 포함된 주제입니다.
- 15
- 16
- 지정된 로거 및 로그 수준이 직접 (
인라인
) 추가되거나 ConfigMap을 통해 간접적으로(외부
)합니다. 사용자 지정 ConfigMap은log4j.properties
또는log4j2.properties
키에 배치해야 합니다. MirrorMaker에는mirrormaker.root.logger
라는 단일 로거가 있습니다. 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 17
- 컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
- 18
- Prometheus 지표: 이 예제에서 Prometheus exporter에 대한 구성이 포함된 ConfigMap을 참조하여 활성화합니다.
metricsConfig.valueFrom.configMapKeyRef.key
아래에 빈 파일이 포함된 ConfigMap에 대한 참조를 사용하여 추가 구성 없이 메트릭을 활성화할 수 있습니다. - 19
- Kafka Mirror Maker를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
- 20
- ADVANCED OPTION : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
- 21
- 템플릿 사용자 지정. 여기에서 Pod는 유사성 방지로 예약되므로 Pod는 동일한 호스트 이름이 있는 노드에 예약되지 않습니다.
- 22
- 환경 변수는 분산 추적을 위해 설정됩니다.
- 23
- Jaeger에 대해 분산 추적이 활성화됩니다.
주의abortOnSendFailure
속성을false
로 설정하면 생산자가 주제의 다음 메시지를 보냅니다. 실패 메시지를 다시 전송하려는 시도가 없기 때문에 원본 메시지가 손실될 수 있습니다.리소스를 생성하거나 업데이트합니다.
oc apply -f <your-file>
oc apply -f <your-file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 중단 예산입니다.
2.6. Kafka 브리지 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridge
리소스를 사용하여 Kafka 브리지 배포를 구성합니다. Kafka 브리지는 HTTP 기반 클라이언트를 Kafka 클러스터와 통합하는 API를 제공합니다.
6.2.114절. “KafkaBridge
스키마 참조” KafkaBridge
리소스의 전체 스키마를 설명합니다.
2.6.1. Kafka 브리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 브리지를 사용하여 Kafka 클러스터에 대한 HTTP 기반 요청을 수행합니다.
KafkaBridge
리소스의 속성을 사용하여 Kafka Bridge 배포를 구성합니다.
클라이언트 소비자 요청이 다른 Kafka Bridge 인스턴스에서 처리할 때 발생하는 문제를 방지하려면 올바른 Kafka 브리지 인스턴스로 요청이 라우팅되도록 주소 기반 라우팅을 사용해야 합니다. 또한 각 독립 Kafka 브리지 인스턴스에는 복제본이 있어야 합니다. Kafka 브리지 인스턴스에는 다른 인스턴스와 공유되지 않는 자체 상태가 있습니다.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
다음을 실행하는 방법에 대한 자세한 내용은 OpenShift에 AMQ Streams 배포 및 업그레이드 가이드를 참조하십시오.
절차
KafkaBridge
리소스의spec
속성을 편집합니다.구성할 수 있는 속성은 다음 예제 구성에 표시되어 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2
- 대상 Kafka 클러스터에 연결하기 위한 부트스트랩 서버 입니다. Kafka 클러스터의 이름을 < cluster_name>으로 사용합니다.
- 3
- 소스 Kafka 클러스터의 X.509 형식으로 저장되는 TLS 인증서의 키 이름을 사용한 TLS 암호화 입니다. 인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.
- 4
- mTLS,토큰 기반 OAuth, SASL 기반 SCRAM -256/SCRAM-SHA -512, 또는 PLAIN 으로 지정된 Kafka Bridge 클러스터에 대한 인증입니다. 기본적으로 Kafka 브리지는 인증 없이 Kafka 브로커에 연결합니다.
- 5
- Kafka 브로커에 대한 HTTP 액세스
- 6
- CORS 액세스는 선택한 리소스 및 액세스 방법을 지정합니다. 요청의 추가 HTTP 헤더는 Kafka 클러스터에 액세스할 수 있는 출처를 설명합니다.
- 7
- 소비자 구성 옵션.
- 8
- 생산자 구성 옵션.
- 9
- 10
- 지정된 Kafka Bridge 로거 및 로그 수준이 ConfigMap을 통해 직접(
인라인
) 또는 간접적으로(외부
)합니다. 사용자 지정 ConfigMap은log4j.properties
또는log4j2.properties
키에 배치해야 합니다. Kafka 브리지 로거의 경우 로그 수준을 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 또는 OFF로 설정할 수 있습니다. - 11
- Kafka 브리지 를 실행하는 VM(가상 머신)의 성능을 최적화하는 JVM 구성 옵션입니다.
- 12
- 컨테이너(liveness)를 다시 시작할 시기와 컨테이너가 트래픽을 수락할 수 있는 시기(가용성)를 확인할 수 있는 상태 점검 입니다.
- 13
- 선택 사항 : 컨테이너 이미지 구성.이는 특별한 경우에만 권장됩니다.
- 14
- 템플릿 사용자 지정. 여기에서 Pod는 유사성 방지로 예약되므로 Pod는 동일한 호스트 이름이 있는 노드에 예약되지 않습니다.
- 15
- 환경 변수는 분산 추적을 위해 설정됩니다.
리소스를 생성하거나 업데이트합니다.
oc apply -f KAFKA-BRIDGE-CONFIG-FILE
oc apply -f KAFKA-BRIDGE-CONFIG-FILE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. Kafka 브리지 클러스터 리소스 목록 링크 복사링크가 클립보드에 복사되었습니다!
다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.
- bridge-cluster-name-bridge
- Kafka 브리지 작업자 노드 Pod를 생성하는 데 필요한 배포입니다.
- bridge-cluster-name-bridge-service
- Kafka 브리지 클러스터의 REST 인터페이스를 노출하는 서비스입니다.
- bridge-cluster-name-bridge-config
- Kafka 브리지 보조 구성이 포함되어 있고 Kafka 브로커 Pod에서 볼륨으로 마운트되는 ConfigMap입니다.
- bridge-cluster-name-bridge
- Kafka 브리지 작업자 노드에 대해 구성된 Pod 중단 예산.
2.7. OpenShift 리소스 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams 배포는 Deployments
,StatefulSets
,Pod
및 Services
와 같은 OpenShift 리소스를 생성합니다. 이러한 리소스는 AMQ Streams Operator에서 관리합니다. 특정 OpenShift 리소스 관리를 담당하는 Operator만 해당 리소스를 변경할 수 있습니다. Operator에서 관리하는 OpenShift 리소스를 수동으로 변경하려고 하면 Operator에서 변경 사항을 되돌립니다.
Operator 관리 OpenShift 리소스 변경은 다음과 같은 특정 작업을 수행하려는 경우 유용할 수 있습니다.
-
Istio 또는 기타 서비스에서
Pod
를 처리하는 방법을 제어하는 사용자 정의 라벨 또는 주석 추가 -
클러스터에서
로드 밸런서
-type 서비스를 생성하는 방법 관리
AMQ Streams 사용자 정의 리소스의 template
속성을 사용하여 변경할 수 있습니다. template
속성은 다음 리소스에서 지원됩니다. API 참조는 사용자 정의 필드에 대한 자세한 정보를 제공합니다.
Kafka.spec.kafka
-
참조 6.2.33절. “
KafkaClusterTemplate
스키마 참조” Kafka.spec.zookeeper
-
참조 6.2.43절. “
ZookeeperClusterTemplate
스키마 참조” Kafka.spec.entityOperator
-
참조 6.2.48절. “
EntityOperatorTemplate
스키마 참조” Kafka.spec.kafkaExporter
-
참조 6.2.56절. “
KafkaExporterTemplate
스키마 참조” Kafka.spec.cruiseControl
-
참조 6.2.52절. “
CruiseControlTemplate
스키마 참조” KafkaConnect.spec
-
참조 6.2.72절. “
KafkaConnectTemplate
스키마 참조” KafkaMirrorMaker.spec
-
참조 6.2.112절. “
KafkaMirrorMakerTemplate
스키마 참조” KafkaMirrorMaker2.spec
-
참조 6.2.72절. “
KafkaConnectTemplate
스키마 참조” KafkaBridge.spec
-
참조 6.2.121절. “
KafkaBridgeTemplate
스키마 참조” KafkaUser.spec
-
참조 6.2.106절. “
KafkaUserTemplate
스키마 참조”
다음 예제에서 template
속성은 Kafka 브로커의 Pod에서 라벨을 수정하는 데 사용됩니다.
템플릿 사용자 지정 예
2.7.1. 이미지 가져오기 정책 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams를 사용하면 Cluster Operator가 배포한 모든 Pod에서 컨테이너의 이미지 가져오기 정책을 사용자 지정할 수 있습니다. 이미지 가져오기 정책은 Cluster Operator 배포에서 환경 변수 STRIMZI_IMAGE_PULL_POLICY
를 사용하여 구성됩니다. STRIMZI_IMAGE_PULL_POLICY
환경 변수는 세 가지 다른 값으로 설정할 수 있습니다.
Always
- 컨테이너 이미지는 포드를 시작하거나 다시 시작할 때마다 레지스트리에서 컨테이너 이미지를 가져옵니다.
IfNotPresent
- 컨테이너 이미지는 이전에 가져오지 않은 경우에만 레지스트리에서 가져옵니다.
Never
- 컨테이너 이미지는 레지스트리에서 가져오지 않습니다.
현재 이미지 풀 정책은 한 번에 모든 Kafka, Kafka Connect 및 Kafka MirrorMaker 클러스터에 대해서만 사용자 지정할 수 있습니다. 정책을 변경하면 모든 Kafka, Kafka Connect 및 Kafka MirrorMaker 클러스터의 롤링 업데이트가 생성됩니다.
2.7.2. 종료 유예 기간 적용 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터를 종료할 충분한 시간을 제공하기 위해 종료 유예 기간을 적용합니다.
terminationGracePeriodSeconds
속성을 사용하여 시간을 지정합니다. Kafka
사용자 정의 리소스의 template.pod
구성에 속성을 추가합니다.
추가하는 시간은 Kafka 클러스터의 크기에 따라 달라집니다. 종료 유예 기간의 OpenShift 기본값은 30초입니다. 클러스터가 완전히 종료되지 않는 경우 종료 유예 기간을 늘릴 수 있습니다.
Pod를 다시 시작할 때마다 종료 유예 기간이 적용됩니다. 기간은 OpenShift가 포드에서 실행 중인 프로세스에 용어 (기화) 신호를 보낼 때 시작됩니다. 기간은 종료 Pod의 프로세스를 중지하기 전에 다른 Pod로 전송하는 데 필요한 시간을 반영해야 합니다. 기간이 종료되면 종료 신호는 Pod에서 계속 실행 중인 모든 프로세스를 중지합니다.
다음 예제에서는 Kafka
사용자 정의 리소스에 120초의 종료 유예 기간을 추가합니다. 다른 Kafka 구성 요소의 사용자 정의 리소스에 구성을 지정할 수도 있습니다.
종료 유예 구성의 예
2.8. Pod 예약 구성 링크 복사링크가 클립보드에 복사되었습니다!
두 애플리케이션이 동일한 OpenShift 노드에 예약되면 두 애플리케이션 모두 디스크 I/O와 동일한 리소스를 사용하고 성능에 영향을 줄 수 있습니다. 이로 인해 성능이 저하될 수 있습니다. 다른 중요한 워크로드와 노드 공유를 방지할 수 있는 방식으로 Kafka Pod를 예약하거나, 올바른 노드를 사용하거나 Kafka에만 전용 노드 세트는 이러한 문제를 방지하는 가장 좋은 방법입니다.
2.8.1. 선호도, 허용 오차 및 토폴로지 분배 제약 조건 지정 링크 복사링크가 클립보드에 복사되었습니다!
유사성, 허용 오차 및 토폴로지 분배 제약 조건을 사용하여 kafka 리소스의 Pod를 노드에 예약합니다. 유사성, 허용 오차 및 토폴로지 분배 제약 조건은 다음 리소스에서 선호도
,허용 오차
및 topologySpreadConstraint
속성을 사용하여 구성됩니다.
-
Kafka.spec.kafka.template.pod
-
Kafka.spec.zookeeper.template.pod
-
Kafka.spec.entityOperator.template.pod
-
KafkaConnect.spec.template.pod
-
KafkaBridge.spec.template.pod
-
KafkaMirrorMaker.spec.template.pod
-
KafkaMirrorMaker2.spec.template.pod
선호도
,tolerations
, topologySpreadConstraint
속성의 형식은 OpenShift 사양을 따릅니다. 선호도 구성에는 다양한 유형의 선호도가 포함될 수 있습니다.
- Pod 유사성 및 유사성 방지
- 노드 유사성
2.8.1.1. Pod 유사성 방지를 사용하여 중요한 애플리케이션 공유 노드 방지 링크 복사링크가 클립보드에 복사되었습니다!
Pod 유사성 방지를 사용하여 중요한 애플리케이션이 동일한 디스크에 예약되지 않도록 합니다. Kafka 클러스터를 실행할 때 Pod 유사성 방지를 사용하여 Kafka 브로커가 데이터베이스와 같은 다른 워크로드와 노드를 공유하지 않도록 하는 것이 좋습니다.
2.8.1.2. 노드 선호도를 사용하여 특정 노드에 워크로드를 예약 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 클러스터는 일반적으로 다양한 유형의 작업자 노드로 구성됩니다. 일부는 CPU 사용량이 많은 워크로드, 메모리용으로 최적화되고 다른 일부는 스토리지(빠른 로컬 SSD) 또는 네트워크에 최적화될 수 있습니다. 다른 노드를 사용하면 비용과 성능을 모두 최적화하는 데 도움이 됩니다. 가능한 최상의 성능을 얻으려면 AMQ Streams 구성 요소를 올바른 노드를 사용하도록 예약하는 것이 중요합니다.
OpenShift는 노드 선호도를 사용하여 특정 노드에 워크로드를 예약합니다. 노드 유사성을 사용하면 Pod를 예약할 노드에 대한 예약 제약 조건을 생성할 수 있습니다. 제약 조건은 라벨 선택기로 지정됩니다. beta.kubernetes.io/instance-type
과 같은 기본 제공 노드 레이블을 사용하여 레이블을 지정하여 올바른 노드를 선택할 수 있습니다.
2.8.1.3. 전용 노드에 노드 유사성 및 허용 오차 사용 링크 복사링크가 클립보드에 복사되었습니다!
테인트를 사용하여 전용 노드를 생성한 다음 노드 유사성 및 허용 오차를 구성하여 전용 노드에 Kafka Pod를 예약합니다.
클러스터 관리자는 선택한 OpenShift 노드를 테인트로 표시할 수 있습니다. 테인트가 있는 노드는 일반 예약에서 제외되며 일반 Pod는 해당 예약에서 실행되도록 예약되지 않습니다. 노드에 설정된 테인트를 허용할 수 있는 서비스만 해당 노드에 예약할 수 있습니다. 이러한 노드에서 실행되는 다른 유일한 서비스는 로그 수집기 또는 소프트웨어 정의 네트워크와 같은 시스템 서비스가 됩니다.
Kafka 및 전용 노드에서 해당 구성 요소를 실행하면 많은 이점이 있을 수 있습니다. 동일한 노드에서 실행 중인 다른 애플리케이션이 없으므로 Kafka에 필요한 리소스를 중단하거나 사용할 수 있습니다. 이로 인해 성능이 향상되고 안정성이 향상될 수 있습니다.
2.8.2. 다른 작업자 노드에 각 Kafka 브로커를 예약하도록 Pod 유사성 방지 구성 링크 복사링크가 클립보드에 복사되었습니다!
많은 Kafka 브로커 또는 ZooKeeper 노드는 동일한 OpenShift 작업자 노드에서 실행할 수 있습니다. 작업자 노드가 실패하면 모두 동시에 사용할 수 없게 됩니다. 안정성을 높이기 위해 podAntiAffinity
구성을 사용하여 각 Kafka 브로커 또는 ZooKeeper 노드를 다른 OpenShift 작업자 노드에 예약할 수 있습니다.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
절차
클러스터 배포를 지정하는 리소스에서
유사성
속성을 편집합니다. Kafka 브로커 또는 ZooKeeper 노드에서 작업자 노드를 공유하지 않도록 하려면strimzi.io/name
라벨을 사용합니다.topologyKey
를kubernetes.io/hostname
으로 설정하여 선택한 Pod가 동일한 호스트 이름을 가진 노드에 예약되지 않도록 지정합니다. 이를 통해 단일 Kafka 브로커와 단일 ZooKeeper 노드에서 동일한 작업자 노드를 공유할 수 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
CLUSTER-NAME
은 Kafka 사용자 지정 리소스의 이름입니다.Kafka 브로커와 ZooKeeper 노드가 동일한 작업자 노드를 공유하지 않도록 하려면
strimzi.io/cluster
레이블을 사용합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
CLUSTER-NAME
은 Kafka 사용자 지정 리소스의 이름입니다.리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8.3. Kafka 구성 요소에서 Pod 유사성 방지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Pod 유사성 방지 구성은 Kafka 브로커의 안정성 및 성능을 지원합니다. podAntiAffinity
를 사용하면 OpenShift에서 다른 워크로드와 동일한 노드에 Kafka 브로커를 예약하지 않습니다. 일반적으로 데이터베이스, 스토리지 또는 기타 메시징 플랫폼과 같은 다른 네트워크 또는 스토리지 집약적 애플리케이션과 동일한 작업자 노드에서 실행되는 Kafka를 방지하려고 합니다.
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
절차
클러스터 배포를 지정하는 리소스에서
유사성
속성을 편집합니다. 라벨을 사용하여 동일한 노드에서 예약해서는 안 되는 pod를 지정합니다.topologyKey
를kubernetes.io/hostname
으로 설정하여 선택한 Pod를 동일한 호스트 이름이 있는 노드에 예약하지 않도록 지정해야 합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
이 작업은
oc apply
를 사용하여 수행할 수 있습니다.oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8.4. Kafka 구성 요소에서 노드 선호도 구성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
절차
AMQ Streams 구성 요소를 예약해야 하는 노드에 레이블을 지정합니다.
이 작업은
oc label
를 사용하여 수행할 수 있습니다.oc label node NAME-OF-NODE node-type=fast-network
oc label node NAME-OF-NODE node-type=fast-network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 기존 레이블 중 일부를 재사용할 수 있습니다.
클러스터 배포를 지정하는 리소스에서
유사성
속성을 편집합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
이 작업은
oc apply
를 사용하여 수행할 수 있습니다.oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8.5. 전용 노드 설정 및 Pod 예약 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OpenShift 클러스터
- 실행 중인 Cluster Operator
절차
- 전용으로 사용할 노드를 선택합니다.
- 이러한 노드에 예약된 워크로드가 없는지 확인합니다.
선택한 노드에서 테인트를 설정합니다.
이 작업은
oc adm taint
를 사용하여 수행할 수 있습니다.oc adm taint node NAME-OF-NODE dedicated=Kafka:NoSchedule
oc adm taint node NAME-OF-NODE dedicated=Kafka:NoSchedule
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 선택한 노드에도 레이블을 추가합니다.
이 작업은
oc label
를 사용하여 수행할 수 있습니다.oc label node NAME-OF-NODE dedicated=Kafka
oc label node NAME-OF-NODE dedicated=Kafka
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 배포를 지정하는 리소스에서
유사성
및허용 오차
속성을 편집합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
이 작업은
oc apply
를 사용하여 수행할 수 있습니다.oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 구성 요소 및 AMQ Streams Operator의 사용자 정의 리소스에서 로깅 수준을 구성합니다. 사용자 정의 리소스의 spec.logging
속성에 직접 로깅 수준을 지정할 수 있습니다. 또는 configMapKeyRef
속성을 사용하여 사용자 정의 리소스에서 참조되는 ConfigMap에서 로깅 속성을 정의할 수 있습니다.
ConfigMap을 사용할 때의 이점은 로깅 속성이 한 위치에서 유지 관리되고 둘 이상의 리소스에서 액세스할 수 있다는 점입니다. 둘 이상의 리소스에 ConfigMap을 재사용할 수도 있습니다. ConfigMap을 사용하여 AMQ Streams Operator에 로거를 지정하는 경우 로깅 사양을 추가하여 필터를 추가할 수도 있습니다.
로깅 사양에 로깅 유형을
지정합니다.
-
로깅 수준을 직접 지정할 때
인라인
-
ConfigMap을 참조할 때
외부
인라인
로깅 구성 예
외부
로깅 구성의 예
ConfigMap의 이름과
키
값은 필수입니다. 이름
또는 키가
설정되지 않은 경우 기본 로깅이 사용됩니다.
2.9.1. Kafka 구성 요소 및 Operator의 로깅 옵션 링크 복사링크가 클립보드에 복사되었습니다!
특정 Kafka 구성 요소 또는 Operator에 대한 로깅 구성에 대한 자세한 내용은 다음 섹션을 참조하십시오.
Kafka 구성 요소 로깅
Operator 로깅
2.9.2. 로깅을 위한 ConfigMap 생성 링크 복사링크가 클립보드에 복사되었습니다!
ConfigMap을 사용하여 로깅 속성을 정의하려면 ConfigMap을 생성한 다음 리소스 사양에서 로깅 정의의 일부로 참조합니다.
ConfigMap에는 적절한 로깅 구성이 포함되어야 합니다.
-
Kafka 구성 요소, ZooKeeper 및 Kafka Bridge에 대한
log4j.properties
-
Topic Operator 및 User Operator의
log4j2.properties
구성은 이러한 속성에 배치해야 합니다.
이 프로세스에서 ConfigMap은 Kafka 리소스에 대한 루트 로거를 정의합니다.
절차
ConfigMap을 생성합니다.
ConfigMap을 YAML 파일로 또는 속성 파일에서 생성할 수 있습니다.
Kafka에 대한 루트 로거 정의가 있는 ConfigMap 예:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow properties 파일을 사용하는 경우 명령줄에 파일을 지정합니다.
oc create configmap logging-configmap --from-file=log4j.properties
oc create configmap logging-configmap --from-file=log4j.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 속성 파일은 로깅 구성을 정의합니다.
Define the logger ...
# Define the logger kafka.root.logger.level="INFO" # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스
사양에
외부 로깅을 정의하고logging.valueFrom.configMapKeyRef.name
을 ConfigMap의 이름으로 설정하고logging.valueFrom.configMapKeyRef.key
를 이 ConfigMap의 키로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9.3. Operator에 로깅 필터 추가 링크 복사링크가 클립보드에 복사되었습니다!
ConfigMap을 사용하여 AMQ Streams Operator의 (log4j2) 로깅 수준을 구성하는 경우 로깅 필터를 정의하여 로그에 반환된 항목을 제한할 수도 있습니다.
로깅 필터는 많은 로깅 메시지가 있을 때 유용합니다. 로거의 로그 수준을 DEBUG(rootLogger.level="DEBUG")
로 설정한다고 가정합니다. 로깅 필터는 해당 수준에서 로거에 대해 반환된 로그 수를 줄이므로 특정 리소스에 집중할 수 있습니다. 필터를 설정하면 필터와 일치하는 로그 메시지만 기록됩니다.
필터는 마커 를 사용하여 로그에 포함할 항목을 지정합니다. 마커의 종류, 네임스페이스 및 이름을 지정합니다. 예를 들어 Kafka 클러스터가 실패하는 경우 kind를 Kafka
로 지정하여 로그를 분리하고 실패한 클러스터의 네임스페이스와 이름을 사용할 수 있습니다.
이 예에서는 my-kafka-cluster
라는 Kafka 클러스터에 대한 마커 필터를 보여줍니다.
기본 로깅 필터 구성
rootLogger.level="INFO" appender.console.filter.filter1.type=MarkerFilter appender.console.filter.filter1.onMatch=ACCEPT appender.console.filter.filter1.onMismatch=DENY appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster)
rootLogger.level="INFO"
appender.console.filter.filter1.type=MarkerFilter
appender.console.filter.filter1.onMatch=ACCEPT
appender.console.filter.filter1.onMismatch=DENY
appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster)
하나 이상의 필터를 만들 수 있습니다. 여기에서는 두 개의 Kafka 클러스터에 대해 로그가 필터링됩니다.
다중 로깅 필터 구성
Cluster Operator에 필터 추가
Cluster Operator에 필터를 추가하려면 로깅 ConfigMap YAML 파일(install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
)을 업데이트합니다.
절차
050-ConfigMap-strimzi-cluster-operator.yaml
파일을 업데이트하여 ConfigMap에 필터 속성을 추가합니다.이 예에서 filter 속성은
my-kafka-cluster
Kafka 클러스터에 대해서만 로그를 반환합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
ConfigMap
을 직접 편집합니다.oc edit configmap strimzi-cluster-operator
oc edit configmap strimzi-cluster-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ConfigMap을 직접 편집하지 않고 YAML 파일을 업데이트한 경우
ConfigMap
을 배포하여 변경 사항을 적용합니다.oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Topic Operator 또는 User Operator에 필터 추가
Topic Operator 또는 User Operator에 필터를 추가하려면 로깅 ConfigMap을 생성하거나 편집합니다.
이 절차에서는 Topic Operator에 대한 필터를 사용하여 로깅 ConfigMap을 생성합니다. 동일한 접근 방식이 User Operator에 사용됩니다.
절차
ConfigMap을 생성합니다.
ConfigMap을 YAML 파일로 또는 속성 파일에서 생성할 수 있습니다.
이 예에서 필터 속성은
my-topic
항목에 대해서만 로그를 반환합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow properties 파일을 사용하는 경우 명령줄에 파일을 지정합니다.
oc create configmap logging-configmap --from-file=log4j2.properties
oc create configmap logging-configmap --from-file=log4j2.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 속성 파일은 로깅 구성을 정의합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스
사양에
외부 로깅을 정의하고logging.valueFrom.configMapKeyRef.name
을 ConfigMap의 이름으로 설정하고logging.valueFrom.configMapKeyRef.key
를 이 ConfigMap의 키로 설정합니다.Topic Operator의 경우
Kafka
리소스의topicOperator
구성에 로깅이 지정됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Cluster Operator를 배포하여 변경 사항을 적용합니다.
create -f install/cluster-operator -n my-cluster-operator-namespace
create -f install/cluster-operator -n my-cluster-operator-namespace
3장. 외부 소스에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
구성 공급자 플러그인을 사용하여 외부 소스에서 구성 데이터를 로드합니다. 공급자는 AMQ Streams와 독립적으로 작동합니다. 이를 사용하여 생산자 및 소비자를 포함한 모든 Kafka 구성 요소의 구성 데이터를 로드할 수 있습니다. 예를 들어 Kafka Connect 커넥터 구성에 대한 인증 정보를 제공하는 등의 작업을 사용합니다.
- OpenShift 구성 공급자
OpenShift 구성 공급자 플러그인은 OpenShift 시크릿 또는 ConfigMap에서 구성 데이터를 로드합니다.
Kafka 네임스페이스 외부에서 또는 Kafka 클러스터 외부에 관리되는
Secret
오브젝트가 있다고 가정합니다. OpenShift 구성 공급자를 사용하면 파일을 추출하지 않고 구성의 시크릿 값을 참조할 수 있습니다. 공급자에게 어떤 시크릿을 사용하고 액세스 권한을 제공하도록 해야 합니다. 공급자는 새Secret
또는ConfigMap
오브젝트를 사용하는 경우에도 Kafka 구성 요소를 재시작할 필요 없이 데이터를 로드합니다. 이 기능은 Kafka Connect 인스턴스가 여러 커넥터를 호스팅할 때 중단되지 않습니다.- 환경 변수 구성 공급자
Environment Variables Configuration Provider 플러그인은 환경 변수에서 구성 데이터를 로드합니다.
환경 변수 값은 시크릿 또는 ConfigMap에서 매핑할 수 있습니다. 예를 들어 환경 변수 구성 공급자를 사용하여 OpenShift 시크릿에서 매핑된 환경 변수에서 인증서 또는 10.0.0.1 구성을 로드할 수 있습니다.
OpenShift 구성 공급자는 마운트된 파일을 사용할 수 없습니다. 예를 들어, 신뢰 저장소 또는 키 저장소의 위치가 필요한 값을 로드할 수 없습니다. 대신 ConfigMaps 또는 시크릿을 Kafka Connect Pod에 환경 변수 또는 볼륨으로 마운트할 수 있습니다. 환경 변수 구성 공급자를 사용하여 환경 변수 값을 로드할 수 있습니다. KafkaConnect.spec
의 externalConfiguration
속성을 사용하여 구성을 추가합니다. 이 접근 방식을 통해 액세스 권한을 설정할 필요가 없습니다. 그러나 커넥터에 새 Secret
또는 ConfigMap
을 사용할 때 Kafka Connect를 다시 시작해야 합니다. 이로 인해 모든 Kafka Connect 인스턴스의 커넥터가 중단됩니다.
3.1. ConfigMap에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 구성 공급자 플러그인을 사용하는 방법을 설명합니다.
이 절차에서 외부 ConfigMap
오브젝트는 커넥터에 대한 구성 속성을 제공합니다.
사전 요구 사항
- OpenShift 클러스터를 사용할 수 있습니다.
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
절차
구성 속성이 포함된
ConfigMap
이 예제에서
my-connector-configuration
이라는ConfigMap
오브젝트에는 커넥터 속성이 포함되어 있습니다.커넥터 속성이 있는
ConfigMap
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka Connect 구성에서 OpenShift 구성 공급자를 지정합니다.
여기에 표시된 사양은 시크릿 및 ConfigMap에서 값을 로드할 수 있습니다.
OpenShift 구성 공급자를 활성화하는 Kafka Connect 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트하여 공급자를 활성화합니다.
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 외부 구성 맵의 값에 액세스할 수 있는 역할을 생성합니다.
구성 맵에서 값에 액세스할 역할의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 규칙은
my-connector-configuration
구성 맵에 액세스할 수 있는 역할을 제공합니다.구성 맵이 포함된 네임스페이스에 대한 액세스를 허용하도록 역할 바인딩을 생성합니다.
구성 맵이 포함된 네임스페이스에 액세스하는 역할 바인딩의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역할 바인딩은
my-project
네임스페이스에 액세스할 수 있는 역할 권한을 제공합니다.서비스 계정은 Kafka Connect 배포에서 사용하는 것과 동일해야 합니다. 서비스 계정 이름 형식은 < cluster_name> -connect입니다. 여기서 < cluster_name >은
KafkaConnect
사용자 정의 리소스의 이름입니다.커넥터 구성에서 구성 맵을 참조합니다.
구성 맵을 참조하는 커넥터 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 구성에서 구성 맵의 속성 값 자리 표시자가 참조됩니다. 자리 표시자 구조는
configmaps: <path_and_file_name > : <property>입니다
.KubernetesConfigMapConfigProvider
는 외부 구성 맵에서 option1 속성 값을 읽고 추출합니다.
3.2. 환경 변수에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Environment Variables Configuration Provider 플러그인을 사용하는 방법을 설명합니다.
이 절차에서 환경 변수는 커넥터의 구성 속성을 제공합니다. 데이터베이스 암호는 환경 변수로 지정됩니다.
사전 요구 사항
- OpenShift 클러스터를 사용할 수 있습니다.
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
절차
Kafka Connect 구성에서 환경 변수 구성 공급자를 지정합니다.
externalConfiguration
속성을 사용하여 환경 변수를 정의합니다.환경 변수 구성 공급자를 활성화하는 Kafka Connect 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트하여 공급자를 활성화합니다.
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 구성의 환경 변수를 참조합니다.
환경 변수를 참조하는 커넥터 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. AMQ Streams Pod 및 컨테이너에 보안 컨텍스트 적용 링크 복사링크가 클립보드에 복사되었습니다!
보안 컨텍스트는 포드 및 컨테이너에 대한 제약 조건을 정의합니다. 보안 컨텍스트를 지정하면 Pod 및 컨테이너에 필요한 권한만 있습니다. 예를 들어 사용 권한은 런타임 작업 또는 리소스에 대한 액세스를 제어할 수 있습니다.
4.1. OpenShift 플랫폼에서 보안 컨텍스트 처리 링크 복사링크가 클립보드에 복사되었습니다!
보안 컨텍스트 처리는 사용 중인 OpenShift 플랫폼의 툴에 따라 다릅니다.
예를 들어 OpenShift는 기본 제공 SCC(보안 컨텍스트 제약 조건)를 사용하여 권한을 제어합니다. SCC는 Pod에서 액세스할 수 있는 보안 기능을 제어하는 설정 및 전략입니다.
기본적으로 OpenShift는 보안 컨텍스트 구성을 자동으로 삽입합니다. 대부분의 경우 이는 Cluster Operator가 생성한 Pod 및 컨테이너에 대한 보안 컨텍스트를 설정할 필요가 없음을 의미합니다. 그러나 자체 SCC를 생성하고 관리할 수 있습니다.
자세한 내용은 OpenShift 설명서 를 참조하십시오.
5장. Apicurio Registry의 Red Hat 빌드를 사용하여 스키마 검증 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams와 함께 Apicurio Registry의 Red Hat 빌드를 사용할 수 있습니다.
Apicurio Registry는 API 및 이벤트 중심 아키텍처에서 표준 이벤트 스키마 및 API 설계를 공유하기 위한 데이터 저장소입니다. Apicurio Registry를 사용하여 클라이언트 애플리케이션에서 데이터 구조를 분리하고 REST 인터페이스를 사용하여 런타임에 데이터 유형과 API 설명을 공유 및 관리할 수 있습니다.
Apicurio Registry는 메시지를 직렬화 및 역직렬화하는 데 사용되는 스키마를 저장하며, 이러한 메시지를 클라이언트 애플리케이션에서 참조하여 전송 및 수신하는 메시지가 해당 스키마와 호환되는지 확인할 수 있습니다. Apicurio Registry는 Kafka 생산자 및 소비자 애플리케이션을 위한 Kafka 클라이언트 직렬화기/deserializers를 제공합니다. Kafka 생산자 애플리케이션은 serializers를 사용하여 특정 이벤트 스키마를 준수하는 메시지를 인코딩합니다. Kafka 소비자 애플리케이션은 역직렬성을 사용하여 메시지가 특정 스키마 ID를 기반으로 올바른 스키마를 사용하여 직렬화되었는지 확인합니다.
애플리케이션에서 레지스트리의 스키마를 사용하도록 설정할 수 있습니다. 이렇게 하면 스키마 사용이 일관되게 유지되며 런타임 시 데이터 오류를 방지하는 데 도움이 됩니다.
6장. 사용자 정의 리소스 API 참조 링크 복사링크가 클립보드에 복사되었습니다!
6.1. 공통 설정 속성 링크 복사링크가 클립보드에 복사되었습니다!
공통 구성 속성은 둘 이상의 리소스에 적용됩니다.
6.1.1. replicas 링크 복사링크가 클립보드에 복사되었습니다!
replicas
속성을 사용하여 복제본을 구성합니다.
복제 유형은 리소스에 따라 다릅니다.
-
KafkaTopic
은 복제 요소를 사용하여 Kafka 클러스터 내의 각 파티션의 복제본 수를 구성합니다. - Kafka 구성 요소는 복제본을 사용하여 배포의 Pod 수를 구성하여 가용성과 확장성을 향상시킵니다.
OpenShift에서 Kafka 구성 요소를 실행하는 경우 고가용성을 위해 여러 복제본을 실행할 필요가 없을 수 있습니다. 구성 요소가 배포된 노드가 충돌하면 OpenShift는 Kafka 구성 요소 포드를 다른 노드에 자동으로 다시 지정합니다. 그러나 여러 복제본으로 Kafka 구성 요소를 실행하면 다른 노드가 가동되어 실행되므로 장애 조치 시간이 단축될 수 있습니다.
6.1.2. bootstrapServers 링크 복사링크가 클립보드에 복사되었습니다!
bootstrapServers
속성을 사용하여 부트스트랩 서버 목록을 구성합니다.
부트스트랩 서버 목록은 동일한 OpenShift 클러스터에 배포되지 않은 Kafka 클러스터를 참조할 수 있습니다. 또한 AMQ Streams에서 배포하지 않는 Kafka 클러스터를 참조할 수도 있습니다.
동일한 OpenShift 클러스터에서 각 목록에 CLUSTER-NAME-kafka-bootstrap 및 포트 번호라는 Kafka 클러스터 부트스트랩
서비스가 포함되어 있어야 합니다. AMQ Streams에서 배포하지만 다른 OpenShift 클러스터에는 목록 콘텐츠는 클러스터를 노출하는 데 사용되는 접근 방식(라우트, 인그레스, 노드 포트 또는 로드 밸런서)에 따라 달라집니다.
AMQ Streams에서 관리하지 않는 Kafka 클러스터와 함께 Kafka를 사용하는 경우 지정된 클러스터의 구성에 따라 부트스트랩 서버 목록을 지정할 수 있습니다.
6.1.3. ssl 링크 복사링크가 클립보드에 복사되었습니다!
SSL 구성 및 암호화 제품군 사양을 통합하여 클라이언트 애플리케이션과 Kafka 클러스터 간의 TLS 기반 통신을 추가로 보호할 수 있습니다. 표준 TLS 구성 외에도 Kafka 브로커의 구성에서 지원되는 TLS 버전을 지정하고 암호화 제품군을 활성화할 수 있습니다. 사용하는 TLS 버전 및 암호화 제품군을 제한하려면 클라이언트에 구성을 추가할 수도 있습니다. 클라이언트의 구성은 브로커에서 활성화된 프로토콜 및 암호화 제품군만 사용해야 합니다.
암호화 제품군은 보안 연결 및 데이터 전송을 위한 보안 메커니즘 집합입니다. 예를 들어 암호화 제품군 TLS_AES_256_GCM_SHA384
는 TLS 프로토콜과 함께 사용되는 다음과 같은 메커니즘으로 구성됩니다.
- AES(Advanced Encryption Standard) 암호화(256비트 키)
- GCM (Galois/Counter Mode) 인증 암호화
- SHA384 (Secure Hash Algorithm) 데이터 무결성 보호
이 조합은 TLS_AES_256_GCM_SHA384
암호화 제품군 사양에 캡슐화됩니다.
ssl.enabled.protocols
속성은 클러스터와 해당 클라이언트 간의 보안 통신에 사용할 수 있는 사용 가능한 TLS 버전을 지정합니다. ssl.protocol
속성은 모든 연결에 대한 기본 TLS 버전을 설정하며 활성화된 프로토콜에서 선택해야 합니다. ssl.endpoint.identification.algorithm
속성을 사용하여 호스트 이름 확인을 활성화하거나 비활성화합니다.
SSL 구성 예
6.1.4. trustedCertificates 링크 복사링크가 클립보드에 복사되었습니다!
TLS 암호화를 구성하기 위해 tls
를 설정하는 경우 trustedCertificates
속성을 사용하여 인증서가 X.509 형식으로 저장되는 키 이름으로 시크릿 목록을 제공합니다.
Kafka 클러스터의 Cluster Operator에서 생성한 보안을 사용하거나 고유한 TLS 인증서 파일을 생성한 다음 파일에서 시크릿
을 생성할 수 있습니다.
oc create secret generic MY-SECRET \ --from-file=MY-TLS-CERTIFICATE-FILE.crt
oc create secret generic MY-SECRET \
--from-file=MY-TLS-CERTIFICATE-FILE.crt
TLS 암호화 구성 예
인증서가 동일한 보안에 저장된 경우 여러 번 나열할 수 있습니다.
TLS 암호화를 활성화하지만 Java와 함께 제공되는 기본 공개 인증 기관 세트를 사용하려면 trustedCertificates
를 빈 배열로 지정할 수 있습니다.
기본 Java 인증서를 사용하여 TLS 활성화 예
tls: trustedCertificates: []
tls:
trustedCertificates: []
mTLS 인증 구성에 대한 자세한 내용은 KafkaClientAuthenticationTls
스키마 참조 를 참조하십시오.
6.1.5. resources 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams 컨테이너의 리소스를 제어하도록 리소스 요청 및 제한을 구성합니다. 메모리
및 cpu
리소스에 대한 요청 및 제한을 지정할 수 있습니다. Kafka의 안정적인 성능을 보장하기 위해 요청이 충분해야 합니다.
프로덕션 환경에서 리소스를 구성하는 방법은 여러 요인에 따라 다릅니다. 예를 들어, 애플리케이션이 OpenShift 클러스터에서 리소스를 공유할 수 있습니다.
Kafka의 경우 배포의 다음 측면이 필요한 리소스에 영향을 미칠 수 있습니다.
- 메시지 처리량 및 크기
- 메시지를 처리하는 네트워크 스레드 수
- 생산자 및 소비자 수
- 주제 및 파티션 수
리소스 요청에 지정된 값은 예약되어 항상 컨테이너에서 사용할 수 있습니다. 리소스 제한은 지정된 컨테이너에서 사용할 수 있는 최대 리소스를 지정합니다. 요청 및 제한 사이의 양은 예약되지 않으며 항상 사용할 수 없습니다. 컨테이너는 사용 가능한 경우에만 제한까지 리소스를 사용할 수 있습니다. 리소스 제한은 임시이며 다시 할당할 수 있습니다.
리소스 요청 및 제한
요청없이 제한을 설정하거나 그 반대의 경우도 마찬가지인 경우 OpenShift는 둘 다 동일한 값을 사용합니다. 리소스에 대해 동일한 요청 및 제한을 설정하면 서비스 품질이 보장되며, OpenShift는 제한을 초과하지 않는 한 컨테이너를 종료하지 않습니다.
하나 이상의 지원되는 리소스에 대한 리소스 요청 및 제한을 구성할 수 있습니다.
리소스 구성 예
Topic Operator 및 User Operator에 대한 리소스 요청 및 제한은 Kafka
리소스에 설정됩니다.
리소스 요청이 OpenShift 클러스터에서 사용 가능한 리소스보다 많은 경우 Pod가 예약되지 않습니다.
AMQ Streams는 OpenShift 구문을 사용하여 메모리
및 cpu
리소스를 지정합니다. OpenShift에서 컴퓨팅 리소스를 관리하는 방법에 대한 자세한 내용은 Managing Compute Resources for Containers 를 참조하십시오.
- 메모리 리소스
메모리 리소스를 구성할 때 구성 요소의 총 요구 사항을 고려하십시오.
Kafka는 JVM 내에서 실행되며 운영 체제 페이지 캐시를 사용하여 디스크에 쓰기 전에 메시지 데이터를 저장합니다. Kafka에 대한 메모리 요청은 JVM 힙 및 페이지 캐시에 적합해야 합니다.
jvmOptions
속성을 구성하여 최소 및 최대 힙 크기를 제어할 수 있습니다.다른 구성 요소는 페이지 캐시에 의존하지 않습니다.
jvmOptions
를 구성하지 않고 힙 크기를 제어하도록 메모리 리소스를 구성할 수 있습니다.메모리 요청 및 제한은 메가바이트, 기가바이트, 메비 바이트, 기가바이트로 지정됩니다. 사양에서 다음 접미사를 사용합니다.
-
메가바이트의 경우 m
-
g for gigabytes
-
Mi
for mebibytes -
GI
for gibibytes
다른 메모리 단위를 사용하는 리소스의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메모리 사양 및 추가 지원 단위에 대한 자세한 내용은 메모리 병합을 참조하십시오.
-
메가바이트의 경우 m
- CPU 리소스
언제든지 안정적인 성능을 제공하기에 CPU 요청이 충분해야 합니다. CPU 요청 및 제한은 코어 또는 밀리코어/밀리 코어 로 지정됩니다.
CPU 코어는 정수(CPU 코어
5
개) 또는 10진수(2.5
CPU 코어)로 지정됩니다. 1000 밀리코어 는1
개의 CPU 코어와 동일합니다.CPU 단위 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1개의 CPU 코어의 컴퓨팅 성능은 OpenShift가 배포된 플랫폼에 따라 다를 수 있습니다.
CPU 사양에 대한 자세한 내용은 CPU 병합을 참조하십시오.
6.1.6. image 링크 복사링크가 클립보드에 복사되었습니다!
image
속성을 사용하여 구성 요소에서 사용하는 컨테이너 이미지를 구성합니다.
컨테이너 이미지를 덮어쓰는 것은 다른 컨테이너 레지스트리 또는 사용자 지정된 이미지를 사용해야 하는 특별한 경우에만 권장됩니다.
예를 들어 네트워크에서 AMQ Streams에서 사용하는 컨테이너 리포지토리에 대한 액세스를 허용하지 않는 경우 AMQ Streams 이미지를 복사하거나 소스에서 빌드할 수 있습니다. 그러나 구성된 이미지가 AMQ Streams 이미지와 호환되지 않는 경우 제대로 작동하지 않을 수 있습니다.
컨테이너 이미지 사본도 사용자 정의하여 디버깅에 사용할 수 있습니다.
다음 리소스에서 image 속성을 사용하여 구성 요소에 사용할 컨테이너 이미지를
지정할 수 있습니다.
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
-
Kafka.spec.entityOperator.topicOperator
-
Kafka.spec.entityOperator.userOperator
-
Kafka.spec.entityOperator.tlsSidecar
-
KafkaConnect.spec
-
KafkaMirrorMaker.spec
-
KafkaMirrorMaker2.spec
-
KafkaBridge.spec
Kafka, Kafka Connect 및 Kafka MirrorMaker의 이미지
속성 구성
Kafka, Kafka Connect 및 Kafka MirrorMaker는 여러 Kafka 버전을 지원합니다. 각 구성 요소에는 자체 이미지가 필요합니다. 다른 Kafka 버전의 기본 이미지는 다음 환경 변수에 구성됩니다.
-
STRIMZI_KAFKA_IMAGES
-
STRIMZI_KAFKA_CONNECT_IMAGES
-
STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
이러한 환경 변수에는 Kafka 버전과 해당 이미지 간의 매핑이 포함됩니다. 매핑은 이미지
및 버전
속성과 함께 사용됩니다.
-
사용자 정의 리소스에
이미지
또는버전이
제공되지 않는 경우버전
은 기본적으로 Cluster Operator의 기본 Kafka 버전으로 설정되며 이미지는 환경 변수에서 이 버전에 해당하는 버전이 됩니다. -
이미지가
제공되지만버전이
지정된 경우 지정된 이미지가 사용되며버전
은 Cluster Operator의 기본 Kafka 버전으로 간주됩니다. -
버전이
지정되었지만이미지가
제공되지 않으면 환경 변수에서 지정된 버전에 해당하는 이미지가 사용됩니다. -
버전과
이미지가
모두 제공되면 지정된 이미지가 사용됩니다. 이미지는 지정된 버전의 Kafka 이미지를 포함하는 것으로 가정합니다.
다른 구성 요소의 이미지
및 버전
은 다음 속성에서 구성할 수 있습니다.
-
spec.kafka.image
및spec.kafka.version
의 Kafka의 경우 -
spec.image
및spec.version
의 Kafka Connect 및 Kafka MirrorMaker의 경우
버전
만 제공하고 image
속성을 지정하지 않은 상태로 두는 것이 좋습니다. 이렇게 하면 사용자 정의 리소스를 구성할 때 실수할 가능성이 줄어듭니다. Kafka의 다른 버전에 사용되는 이미지를 변경해야 하는 경우 Cluster Operator의 환경 변수를 구성하는 것이 좋습니다.
다른 리소스에서 image
속성 구성
다른 사용자 지정 리소스의 image
속성에 대해 배포 중에 지정된 값이 사용됩니다. image
속성이 누락되면 Cluster Operator 구성에 지정된 이미지가
사용됩니다. 이미지
이름이 Cluster Operator 구성에 정의되지 않은 경우 기본값이 사용됩니다.
Topic Operator의 경우:
-
Cluster Operator 구성의
STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0
container image.
-
Cluster Operator 구성의
사용자 Operator의 경우 다음을 수행합니다.
-
Cluster Operator 구성의
STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0
container image.
-
Cluster Operator 구성의
Entity Operator TLS 사이드카의 경우:
-
Cluster Operator 구성의
STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/kafka-34-rhel8:2.4.0
container image.
-
Cluster Operator 구성의
Kafka 내보내기의 경우:
-
Cluster Operator 구성의
STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/kafka-34-rhel8:2.4.0
container image.
-
Cluster Operator 구성의
Kafka 브리지의 경우:
-
Cluster Operator 구성의
STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/bridge-rhel8:2.4.0
container image.
-
Cluster Operator 구성의
Kafka 브로커의 경우:
-
Cluster Operator 구성의
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0
container image.
-
Cluster Operator 구성의
컨테이너 이미지 구성 예
6.1.7. livenessProbe 및 readinessProbe 상태 점검 링크 복사링크가 클립보드에 복사되었습니다!
livenessProbe
및 readinessProbe
속성을 사용하여 AMQ Streams에서 지원되는 상태 점검 프로브를 구성합니다.
상태 점검은 애플리케이션의 상태를 확인하는 주기적인 테스트입니다. 상태 점검 프로브가 실패하면 OpenShift는 애플리케이션이 정상이 아니며 이를 수정하려고 시도한다고 가정합니다.
프로브에 대한 자세한 내용은 활성 상태 및 준비 프로브 구성을 참조하십시오.
livenessProbe
및 readinessProbe
는 다음 옵션을 모두 지원합니다.
-
initialDelaySeconds
-
timeoutSeconds
-
periodSeconds
-
successThreshold
-
failureThreshold
활성 상태 및 준비 상태 프로브 구성의 예
livenessProbe
및 readinessProbe
옵션에 대한 자세한 내용은 프로브 스키마 참조 를 참조하십시오.
6.1.8. metricsConfig 링크 복사링크가 클립보드에 복사되었습니다!
metricsConfig
속성을 사용하여 Prometheus 지표를 활성화하고 구성합니다.
metricsConfig
속성에는 Prometheus exportser에 대한 추가 구성이 있는 ConfigMap에 대한 참조가 포함되어 있습니다. AMQ Streams는 Apache Kafka 및 ZooKeeper에서 지원하는 metrics를 Prometheus 지표로 변환하기 위해 Prometheus exporter를 사용하는 Prometheus 지표를 지원합니다.
추가 구성 없이 Prometheus 지표 내보내기를 활성화하려면 metricsConfig.valueFrom.configMapKeyRef.key
아래에 빈 파일이 포함된 ConfigMap을 참조할 수 있습니다. 빈 파일을 참조할 때 이름이 변경되지 않은 한 모든 메트릭이 노출됩니다.
Kafka에 대한 메트릭 구성이 있는 ConfigMap의 예
Kafka의 메트릭 구성 예
메트릭이 활성화되면 포트 9404에 노출됩니다.
metricsConfig
(또는 더 이상 사용되지 않는 메트릭
) 속성이 리소스에 정의되지 않은 경우 Prometheus 지표가 비활성화됩니다.
Prometheus 및 Grafana 설정 및 배포에 대한 자세한 내용은 OpenShift 가이드에서 AMQ Streams 배포 및 업그레이드 에서 Kafka로 메트릭 소개 를 참조하십시오.
6.1.9. jvmOptions 링크 복사링크가 클립보드에 복사되었습니다!
다음 AMQ Streams 구성 요소는 Java 가상 머신(JVM) 내에서 실행됩니다.
- Apache Kafka
- Apache ZooKeeper
- Apache Kafka Connect
- Apache Kafka MirrorMaker
- AMQ Streams Kafka Bridge
다양한 플랫폼 및 아키텍처에서 성능을 최적화하려면 다음 리소스에서 jvmOptions
속성을 구성합니다.
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
-
Kafka.spec.entityOperator.userOperator
-
Kafka.spec.entityOperator.topicOperator
-
Kafka.spec.cruiseControl
-
KafkaConnect.spec
-
KafkaMirrorMaker.spec
-
KafkaMirrorMaker2.spec
-
KafkaBridge.spec
구성에 다음 옵션을 지정할 수 있습니다.
-Xms
- JVM이 시작될 때 최소 초기 할당 힙 크기
-Xmx
- 최대 힙 크기
-XX
- JVM에 대한 고급 런타임 옵션
javaSystemProperties
- 추가 시스템 속성
gcLoggingEnabled
- 가비지 수집기 로깅 사용
-Xmx
및 -Xms
와 같은 JVM 설정에서 승인한 단위는 해당 이미지에서 JDK java
바이너리에서 허용하는 단위와 동일합니다. 따라서 1g
또는 1G
는 1,073,741,824 바이트를 의미하며 Gi
는 유효한 단위 접미사가 아닙니다. 이는 메모리 요청 및 제한에 사용되는 단위와 다르며 1G는 1G
가 1,000,000,000바이트를 의미하며 1Gi
는 1,073,741,824 바이트를 의미합니다.
-Xms
및 -Xmx
옵션
컨테이너의 메모리 요청 및 제한 값을 설정하는 것 외에도 -Xms
및 -Xmx
JVM 옵션을 사용하여 JVM에 특정 힙 크기를 설정할 수 있습니다. Xms
옵션을 사용하여 초기 힙 크기 및 -Xmx
옵션을 사용하여 최대 힙 크기를 설정합니다.
JVM에 할당된 메모리를 더 많이 제어할 수 있도록 힙 크기를 지정합니다. 힙 크기는 이를 초과하지 않고 컨테이너의 메모리 제한(및 요청) 을 최대한 사용해야 합니다. 힙 크기 및 기타 메모리 요구 사항은 지정된 메모리 제한 내에 적합해야 합니다. 구성에 힙 크기를 지정하지 않고 메모리 리소스 제한(및 요청)을 구성하면 Cluster Operator에서 기본 힙 크기를 자동으로 적용합니다. Cluster Operator는 메모리 리소스 구성의 백분율에 따라 기본 최대값 및 최소 힙 값을 설정합니다.
다음 표에서는 기본 힙 값을 보여줍니다.
구성 요소 | 힙에 할당된 사용 가능한 메모리의 백분율 | 최대 제한 |
---|---|---|
Kafka | 50% | 5GB |
ZooKeeper | 75% | 2GB |
Kafka Connect | 75% | 없음 |
MirrorMaker 2 | 75% | 없음 |
MirrorMaker | 75% | 없음 |
크루즈 컨트롤 | 75% | 없음 |
Kafka 브리지 | 50% | 31 Gi |
메모리 제한(및 요청)을 지정하지 않으면 JVM의 최소 힙 크기가 128M
으로 설정됩니다. JVM의 최대 힙 크기는 필요에 따라 메모리를 늘릴 수 있도록 정의되지 않습니다. 테스트 및 개발의 단일 노드 환경에 적합합니다.
적절한 메모리 요청을 설정하면 다음을 방지할 수 있습니다.
- 노드에서 실행되는 다른 포드의 메모리가 부족하면 OpenShift에서 컨테이너를 종료합니다.
-
OpenShift는 메모리가 충분하지 않은 노드에 컨테이너를 예약합니다.
Xms
가-Xmx
로 설정되면 컨테이너가 즉시 충돌합니다. 그렇지 않으면 컨테이너가 나중에 충돌합니다.
이 예에서 JVM은 힙에 2GiB(=2,147,483,648바이트)를 사용합니다. 총 JVM 메모리 사용량은 최대 힙 크기보다 훨씬 클 수 있습니다.
예 -Xmx
및 -Xms
구성
# ... jvmOptions: "-Xmx": "2g" "-Xms": "2g" # ...
# ...
jvmOptions:
"-Xmx": "2g"
"-Xms": "2g"
# ...
초기(-Xms
) 및 최대(-Xmx
) 힙 크기에 동일한 값을 설정하면 시작 후 JVM에서 메모리를 할당할 필요가 없습니다.
Kafka 브로커 컨테이너와 같은 많은 디스크 I/O를 수행하는 컨테이너에는 운영 체제 페이지 캐시로 사용할 수 있는 메모리가 필요합니다. 이러한 컨테이너의 경우 요청된 메모리는 JVM에서 사용하는 메모리보다 크게 커야 합니다.
-XX 옵션
-XX
옵션은 Apache Kafka의 KAFKA_JVM_PERFORMANCE_OPTS
옵션을 구성하는 데 사용됩니다.
-XX
구성 예
-XX
구성으로 생성되는 JVM 옵션
-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:-UseParNewGC
-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:-UseParNewGC
-XX
옵션이 지정되지 않으면 KAFKA_JVM_PERFORMANCE_OPTS
의 기본 Apache Kafka 구성이 사용됩니다.
javaSystemProperties
javaSystemProperties
는 디버깅 유틸리티와 같은 추가 Java 시스템 속성을 구성하는 데 사용됩니다.
javaSystemProperties
구성 예
jvmOptions: javaSystemProperties: - name: javax.net.debug value: ssl
jvmOptions:
javaSystemProperties:
- name: javax.net.debug
value: ssl
jvmOptions
에 대한 자세한 내용은 JvmOptions
스키마 참조 를 참조하십시오.
6.1.10. 가비지 수집기 로깅 링크 복사링크가 클립보드에 복사되었습니다!
jvmOptions
속성을 사용하면 가비지 수집기(GC) 로깅을 활성화 및 비활성화할 수 있습니다. GC 로깅은 기본적으로 비활성화되어 있습니다. 활성화하려면 다음과 같이 gcLoggingEnabled
속성을 설정합니다.
GC 로깅 구성 예
# ... jvmOptions: gcLoggingEnabled: true # ...
# ...
jvmOptions:
gcLoggingEnabled: true
# ...
6.2. 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
6.2.1. Kafka 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | Kafka 및 ZooKeeper 클러스터 및 Topic Operator의 사양입니다. |
status | Kafka 및 ZooKeeper 클러스터의 상태 및 Topic Operator. |
6.2.2. KafkaSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: Kafka
속성 | 설명 |
---|---|
kafka | Kafka 클러스터 구성. |
zookeeper | ZooKeeper 클러스터 구성. |
entityOperator | Entity Operator 구성. |
clusterCa | 클러스터 인증 기관 구성. |
clientsCa | 클라이언트 인증 기관 구성. |
cruiseControl | Cruise Control Deployment 구성. 지정된 경우 Cruise Control 인스턴스를 배포합니다. |
kafkaExporter | Kafka 내보내기 구성. Kafka Exporter는 추가 메트릭을 제공할 수 있습니다(예: topic/partition에서 소비자 그룹 지연). |
maintenanceTimeWindows | 유지 관리 작업(즉 인증서 갱신)의 시간 창 목록입니다. 각 시간 창은 cron 표현식에 의해 정의됩니다. |
문자열 배열 |
6.2.3. KafkaClusterSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
KafkaClusterSpec
스키마 속성의 전체 목록
Kafka 클러스터를 구성합니다.
6.2.3.1. 리스너 링크 복사링크가 클립보드에 복사되었습니다!
listeners
속성을 사용하여 Kafka 브로커에 대한 액세스를 제공하도록 리스너를 구성합니다.
인증 없이 일반(암호화되지 않음) 리스너 구성 예
6.2.3.2. config 링크 복사링크가 클립보드에 복사되었습니다!
config
속성을 사용하여 Kafka 브로커 옵션을 키로 구성합니다.
표준 Apache Kafka 구성을 제공하여 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
구성할 수 없는 구성 옵션은 다음과 관련이 있습니다.
- 보안(암호화, 인증 및 권한 부여)
- 리스너 구성
- 브로커 ID 구성
- 로그 데이터 디렉터리 구성
- inter-broker 통신
- zookeeper 연결
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
AMQ Streams에서 직접 관리하는 옵션을 제외하고 Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 동일한 키가 있는 모든 구성 옵션은 허용되지 않습니다.
-
리스너
-
advertised.
-
브로커.
-
리스너.
-
host.name
-
port
-
inter.broker.listener.name
-
sasl.
-
ssl.
-
보안.
-
암호.
-
principal.builder.class
-
log.dir
-
zookeeper.connect
-
zookeeper.set.acl
-
작성자입니다.
-
super.user
config
속성에 허용되지 않은 옵션이 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 출력됩니다. 기타 지원되는 모든 옵션은 Kafka로 전달됩니다.
금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다. zookeeper.connection.timeout.ms
속성을 구성하여 ZooKeeper 연결을 설정하는 데 허용되는 최대 시간을 설정할 수도 있습니다.
Kafka 브로커 구성의 예
6.2.3.3. brokerRackInitImage 링크 복사링크가 클립보드에 복사되었습니다!
랙 인식이 활성화되면 Kafka 브로커 Pod는 init 컨테이너를 사용하여 OpenShift 클러스터 노드에서 라벨을 수집합니다. 이 컨테이너에 사용되는 컨테이너 이미지는 brokerRackInitImage
속성을 사용하여 구성할 수 있습니다. brokerRackInitImage
필드가 없는 경우 다음 이미지가 우선순위 순으로 사용됩니다.
-
Cluster Operator 설정의
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0
container image.
brokerRackInitImage
구성 예
컨테이너 이미지를 덮어쓰는 것은 다른 컨테이너 레지스트리를 사용해야 하는 특별한 경우에만 권장됩니다. 예를 들어 네트워크에서 AMQ Streams에서 사용하는 컨테이너 레지스트리에 대한 액세스를 허용하지 않기 때문입니다. 이 경우 AMQ Streams 이미지를 복사하거나 소스에서 빌드해야 합니다. 구성된 이미지가 AMQ Streams 이미지와 호환되지 않으면 제대로 작동하지 않을 수 있습니다.
6.2.3.4. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka에는 구성 가능한 로거가 있습니다.
-
log4j.logger.org.I0Itec.zkclient.ZkClient
-
log4j.logger.org.apache.zookeeper
-
log4j.logger.kafka
-
log4j.logger.org.apache.kafka
-
log4j.logger.kafka.request.logger
-
log4j.logger.kafka.network.Processor
-
log4j.logger.kafka.server.KafkaApis
-
log4j.logger.kafka.network.RequestChannel$
-
log4j.logger.kafka.controller
-
log4j.logger.kafka.log.LogCleaner
-
log4j.logger.state.change.logger
-
log4j.logger.kafka.authorizer.logger
Kafka는 Apache log4j
로거 구현을 사용합니다.
로깅
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
구성되지 않은 모든 로거는 수준이 OFF
로 설정되어 있습니다.
Cluster Operator를 사용하여 Kafka를 배포한 경우 Kafka 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.
외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.3.5. KafkaClusterSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
버전 | kafka 브로커 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다. |
string | |
replicas | 클러스터의 Pod 수입니다. |
integer | |
image |
포드의 Docker 이미지입니다. 기본값은 구성된 |
string | |
리스너 | Kafka 브로커의 리스너를 구성합니다. |
config | 리스너, broker., listener., host.name, port, inter.broker.listener.name, sasl., ssl., password., log.dir, zookeeper.connect, zookeeper.set.acl, zookeeper.set.acl, zookeeper.ssl, zookeeper.set.acl, zookeeper.ssl, zookeeper.clientCnxnnSoct, host.name, port, inter.broker.listener.name, sasl. authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers,node.id, process.roles, controller. (예: zookeeper.connection.timeout.ms, sasl.server.receive.size,ssl.cipher.suites, SSL.protocol, ssl.enabled.protocols, ssl.secure.random.implementation,cruise.control.metrics.topic.num.partitions, cruise.control.metrics.metrics.topic.replication.factor, cruise.metrics.topic.retention.ms,cruise.control.metrics.create.create.retries, cruise.control.metrics.topic.auto.timeout.ms,cruise.control.metrics.topic.min.insync.replicas,controller.quorum.backoff.election.max.ms, controller.quorum.election.timeout.ms, controller.quorum.timeout.timeout.ms. |
map | |
storage |
스토리지 구성(디스크). CamelCase로 유형은 지정된 오브젝트 내의 |
권한 부여 |
Kafka 브로커에 대한 권한 부여 구성 유형은 지정된 오브젝트 내의 |
| |
Rack |
|
brokerRackInitImage |
|
string | |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
jvmOptions | Pod에 대한 JVM 옵션. |
jmxOptions | Kafka 브로커를 위한 Options입니다. |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
logging |
Kafka의 로깅 구성입니다. 유형은 지정된 개체 내의 |
template |
Kafka 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
6.2.4. GenericKafkaListener 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
GenericKafkaListener
스키마 속성의 전체 목록
OpenShift 내부 및 외부의 Kafka 브로커에 연결하도록 리스너를 구성합니다.
Kafka
리소스에서 리스너를 구성합니다.
리스너 구성을 표시하는 Kafka
리소스의 예
6.2.4.1. 리스너 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 리소스의 listeners
속성을 사용하여 Kafka
브로커 리스너를 구성합니다. 리스너는 배열로 정의됩니다.
리스너 구성 예
listeners: - name: plain port: 9092 type: internal tls: false
listeners:
- name: plain
port: 9092
type: internal
tls: false
이름 및 포트는 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자로 구성된 최대 25자까지 지정할 수 있습니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다.
각 리스너에 고유한 이름과 포트를 지정하면 여러 리스너를 구성할 수 있습니다.
6.2.4.2. type 링크 복사링크가 클립보드에 복사되었습니다!
유형은 내부
, 또는 외부 리스너의 경우 경로
, 로드 밸런서,노드 포트
,ingress
또는 cluster-ip
로 설정됩니다. 사용자 정의 액세스 메커니즘을 빌드하는 데 사용할 수 있는 내부 리스너 유형인
cluster-ip
리스너를 구성할 수도 있습니다.
- internal
tls
속성을 사용하여 암호화 여부에 관계없이 내부 리스너를 구성할 수 있습니다.내부
리스너 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Route
OpenShift
경로
및 HAProxy 라우터를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.전용
경로
는 모든 Kafka 브로커 Pod에 대해 생성됩니다. Kafka 부트스트랩 주소로 사용되는 추가 경로가 생성됩니다.Kafka 클라이언트는 이러한
경로
를 사용하여 포트 443에서 Kafka에 연결할 수 있습니다. 클라이언트는 기본 라우터 포트인 포트 443에 연결하지만 트래픽은 구성한 포트로 라우팅됩니다. 이 예에서는9094
입니다.경로
리스너 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Ingress
Kubernetes 인그레스 및 Kubernetes용
Ingress
NGINX 컨트롤러를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.모든 Kafka 브로커 Pod에 대해 전용
Ingress
리소스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가Ingress
리소스가 생성됩니다. Kafka 클라이언트는 이러한Ingress
리소스를 사용하여 포트 443에서 Kafka에 연결할 수 있습니다. 클라이언트는 기본 컨트롤러 포트인 포트 443에 연결하지만 트래픽은 다음 예에서 구성된 포트로 라우팅됩니다.GenericKafkaListenerConfigurationBootstrap
및GenericKafkaListenerConfigurationBroker
속성을 사용하여 부트 스트랩 및 각 브로커 서비스에서 사용하는 호스트 이름을 지정해야 합니다.수신
리스너 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ingress
를 사용하는 외부 리스너는 현재 Kubernetes용 Ingress NGINX Controller 에서만 테스트됩니다.- loadbalancer
Loadbalancer
유형Service
를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.모든 Kafka 브로커 Pod에 대해 새 로드 밸런서 서비스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가 로드 밸런서가 생성됩니다. 로드 밸런서는 다음 예에서 지정된 포트 번호, 즉 포트
9094
를 수신 대기합니다.loadBalancerSourceRanges
속성을 사용하여 소스 범위를 구성하여 지정된 IP 주소에 대한 액세스를 제한할 수 있습니다.로드
밸런서
리스너 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - nodeport
NodePort
유형서비스를
사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.Kafka 클라이언트는 OpenShift 노드에 직접 연결됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가
NodePort
유형이 생성됩니다.Kafka 브로커 Pod에 대해 공개된 주소를 구성할 때 AMQ Streams는 지정된 Pod가 실행 중인 노드의 주소를 사용합니다.
preferredNodePortAddressType
속성을 사용하여 노드 주소로 확인한 첫 번째 주소 유형을 구성할 수 있습니다.노드 포트
리스너 구성 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고노드 포트를 사용하여 Kafka 클러스터를 노출할 때 TLS 호스트 이름 확인은 현재 지원되지 않습니다.
- cluster-ip
브로커별
ClusterIP
유형Service
를 사용하여 Kafka를 노출하도록 내부 리스너를 구성합니다.리스너는 헤드리스 서비스와 해당 DNS 이름을 사용하여 Kafka 브로커로 트래픽을 라우팅하지 않습니다. 헤드리스 서비스를 사용할 때 이러한 유형의 리스너를 사용하여 Kafka 클러스터를 노출할 수 있습니다. 특정 Ingress 컨트롤러 또는 OpenShift 게이트웨이 API를 사용하는 사용자 정의 액세스 메커니즘과 함께 사용할 수 있습니다.
각 Kafka 브로커 Pod에 대해 새
ClusterIP
서비스가 생성됩니다. 이 서비스에는broker별 포트 번호를 사용하여 Kafka 부트스트랩 주소로 사용할ClusterIP
주소가 할당됩니다. 예를 들어 TCP 포트 구성을 사용하여 Nginx Ingress 컨트롤러를 통해 Kafka 클러스터를 노출하도록 리스너를 구성할 수 있습니다.cluster-ip
리스너 구성의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.4.3. port 링크 복사링크가 클립보드에 복사되었습니다!
포트 번호는 Kafka 클러스터에서 사용되는 포트이며, 클라이언트에서 액세스하는 데 사용되는 포트와 동일하지 않을 수 있습니다.
-
LoadBalancer
리스너는내부
및클러스터-ip
리스너와 같이 지정된 포트 번호를 사용합니다. -
Ingress
및경로
리스너는 액세스에 포트 443을 사용합니다. -
NodePort
리스너는 OpenShift에서 할당한 포트 번호를 사용합니다.
클라이언트 연결의 경우 리스너의 부트스트랩 서비스에 주소 및 포트를 사용합니다. Kafka
리소스의 상태에서 이를 검색할 수 있습니다.
클라이언트 연결에 사용되는 주소 및 포트 검색 명령 예
oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'
oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'
구독자 간 통신(9090 및 9091) 및 메트릭(9404)에는 리스너를 별도로 사용하도록 구성할 수 없습니다.
6.2.4.4. tls 링크 복사링크가 클립보드에 복사되었습니다!
TLS 속성은 필수입니다.
기본적으로 TLS 암호화는 활성화되어 있지 않습니다. 활성화하려면 tls
속성을 true
로 설정합니다.
경로
및 수신
유형 리스너의 경우 TLS 암호화를 활성화해야 합니다.
6.2.4.5. 인증 링크 복사링크가 클립보드에 복사되었습니다!
리스너에 대한 인증은 다음과 같이 지정할 수 있습니다.
-
mTLS (
tls
) -
SCRAM-SHA-512 (
스크램 sha-512
) -
토큰 기반 OAuth 2.0 (
oauth
oauth) -
사용자 정의 (
사용자 정의
)
6.2.4.6. networkPolicyPeers 링크 복사링크가 클립보드에 복사되었습니다!
networkPolicyPeers
를 사용하여 네트워크 수준에서 리스너에 대한 액세스를 제한하는 네트워크 정책을 구성합니다. 다음 예제에서는 일반
및 tls
리스너에 대한 networkPolicyPeers
구성을 보여줍니다.
다음 예제에서는 다음을 수행합니다.
-
라벨
app: kafka-sasl-consumer
및app: kafka-sasl-producer
와 일치하는 애플리케이션 Pod만일반
리스너에 연결할 수 있습니다. 애플리케이션 Pod는 Kafka 브로커와 동일한 네임스페이스에서 실행 중이어야 합니다. -
myproject 및
project: myproject
2tls
리스너에 연결할 수 있습니다.
networkPolicyPeers
속성의 구문은 NetworkPolicy
리소스의 from
속성과 동일합니다.
Exanmple 네트워크 정책 구성
6.2.4.7. GenericKafkaListener 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
name | 리스너의 이름입니다. 이름은 리스너와 관련 OpenShift 오브젝트를 식별하는 데 사용됩니다. 이름은 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자로 구성되며 최대 11자까지 사용할 수 있습니다. |
string | |
port | Kafka 내부의 리스너에서 사용하는 포트 번호입니다. 포트 번호는 지정된 Kafka 클러스터 내에서 고유해야 합니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다. 리스너 유형에 따라 포트 번호가 Kafka 클라이언트를 연결하는 포트 번호와 동일하지 않을 수 있습니다. |
integer | |
type |
리스너의 유형입니다. 현재 지원되는 유형은
|
문자열 ( [ingress, internal, route, loadbalancer, cluster-ip, nodeport] 중 하나) | |
tls | 리스너에서 TLS 암호화를 활성화합니다. 이는 필수 자산입니다. |
boolean | |
인증 |
이 리스너에 대한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
| |
구성 | 추가 리스너 구성입니다. |
networkPolicyPeers | 이 리스너에 연결할 수 있어야 하는 피어 목록입니다. 이 목록의 피어는 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락되면 이 리스너에 모든 연결이 허용됩니다. 이 필드가 있고 항목이 하나 이상 포함된 경우 리스너는 이 목록의 하나 이상의 항목과 일치하는 트래픽만 허용합니다. 자세한 내용은 networking.k8s.io/v1 networkpolicypeer 에 대한 외부 설명서 를 참조하십시오. |
6.2.5. KafkaListenerAuthenticationTls 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
type
속성은 KafkaListenerAuthenticationTls
유형을 KafkaListenerAuthenticationScramSha512
, KafkaListenerAuthenticationOAuth
, KafkaListenerAuthenticationCustom
와 구분하는 판별자입니다. KafkaListenerAuthenticationTls
유형의 tls
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.6. KafkaListenerAuthenticationScramSha512 schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
type
속성은 KafkaListenerAuthenticationScramSha512
유형과 KafkaListenerAuthenticationTls
, KafkaListenerAuthenticationOAuth
, KafkaListenerAuthenticationCustom
을 구분하는 판별자입니다. KafkaListenerAuthenticationScramSha512
유형의 scram-sha-512
가 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.7. KafkaListenerAuthenticationOAuth 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
type
속성은 KafkaListenerAuthenticationOAuth
유형 사용을 KafkaListenerAuthenticationTls
, KafkaListenerAuthenticationScramSha512
, KafkaListenerAuthenticationCustom
와 구분하는 판별자입니다. KafkaListenerAuthenticationOAuth
유형의 oauth
값이 있어야 합니다.
속성 | 설명 |
---|---|
accessTokenIsJwt |
액세스 토큰이 JWT로 처리될지 여부를 구성합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 |
boolean | |
checkAccessTokenType |
액세스 토큰 유형 확인 수행 여부를 구성합니다. 권한 부여 서버에 JWT 토큰에 'typ' 클레임이 포함되지 않은 경우 |
boolean | |
CheckAudience |
대상 검사를 활성화하거나 비활성화합니다. 대상 검사에서 토큰 수신자를 식별합니다. 대상 확인이 활성화된 경우 OAuth 클라이언트 ID도 |
boolean | |
checkIssuer |
발급자 검사를 활성화하거나 비활성화합니다. 기본적으로 issuer는 |
boolean | |
clientAudience |
권한 부여 서버의 토큰 엔드포인트에 요청할 때 사용할 대상입니다. broker 간 인증에 사용되며 |
string | |
clientId | Kafka 브로커가 권한 부여 서버에 대해 인증하고 introspect 엔드포인트 URI를 사용하는 OAuth 클라이언트 ID입니다. |
string | |
clientScope |
권한 부여 서버의 토큰 엔드포인트에 요청할 때 사용할 범위입니다. broker 간 인증에 사용되며 |
string | |
clientSecret | Kafka 브로커가 권한 부여 서버에 대해 인증하고 내부 엔드포인트 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift Secret에 대한 링크입니다. |
connectTimeoutSeconds | 권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다. |
integer | |
customClaimCheck | JWT 토큰 또는 추가 토큰 검증을 위해 인트로스펙션 끝점의 응답에 적용할 JSONPath 필터 쿼리입니다. 기본적으로 설정되지 않습니다. |
string | |
disableTlsHostnameVerification |
TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
enableECDSA |
|
boolean | |
enableMetrics |
OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
enableOauthBearer |
SASL_OAUTHB topicER를 통해 OAuth 인증을 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
enablePlain |
SASL_PLAIN을 통해 OAuth 인증을 활성화하거나 비활성화합니다. 이 메커니즘을 사용하는 경우 재인증 지원이 제공되지 않습니다. 기본값은 |
boolean | |
failFast |
시작 중에 잠재적으로 복구 가능한 런타임 오류로 인해 Kafka 브로커 프로세스의 종료를 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
fallbackUserNameClaim |
|
string | |
fallbackUserNamePrefix |
사용자 ID를 구성하는 데 |
string | |
groupsClaim | 인증 중에 사용자의 그룹을 추출하는 데 사용되는 JSONPath 쿼리입니다. 추출된 그룹은 사용자 정의 작성자가 사용할 수 있습니다. 기본적으로 추출된 그룹이 없습니다. |
string | |
groupsClaimDelimiter | 그룹을 구문 분석하는 데 사용되는 구분 기호는 JSON 배열이 아닌 단일 String 값으로 추출됩니다. 기본값은 ','(comma)입니다. |
string | |
httpRetries | 초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다. |
integer | |
httpRetryPauseMs | 실패한 HTTP 요청을 재시도하기 전에 일시 정지를 수행합니다. 설정되지 않은 경우 기본값은 일시 중지되지 않고 즉시 요청을 반복하는 것입니다. |
integer | |
introspectionEndpointUri | JWT가 아닌 불투명한 토큰의 유효성을 확인하는 데 사용할 수 있는 토큰 인트로스펙션 끝점의 URI입니다. |
string | |
jwksEndpointUri | 로컬 JWT 검증에 사용할 수 있는 JWKS 인증서 끝점의 URI입니다. |
string | |
jwksExpirySeconds |
JWKS 인증서가 유효한 것으로 간주되는 빈도를 설정합니다. 만료 간격은 최소 60초 길이여야 하며 |
integer | |
jwksIgnoreKeyUse |
JWKS 끝점 응답에서 |
boolean | |
jwksMinRefreshPauseSeconds | 연속으로 두 번 새로 고침 사이의 최소 일시 중지입니다. 알 수 없는 서명 키가 발생하면 새로 고침이 즉시 예약되지만 항상 최소 일시 중지를 기다립니다. 기본값은 1초입니다. |
integer | |
jwksRefreshSeconds |
JWKS 인증서 새로 고침 빈도를 설정합니다. 새로 고침 간격은 최소 60초 짧으면 |
integer | |
maxSecondsWithoutReauthentication |
인증된 세션은 다시 인증하지 않고 유효한 상태로 유지되는 최대 시간(초)입니다. 이렇게 하면 Apache Kafka가 다시 인증될 수 있으며 액세스 토큰이 만료되면 세션이 만료됩니다. 액세스 토큰이 최대 시간 이전에 만료되거나 최대 시간이 경과하면 클라이언트가 다시 인증해야 하며 그렇지 않으면 서버가 연결을 삭제합니다. 기본적으로 설정되지 않음 - 액세스 토큰이 만료되면 인증된 세션이 만료되지 않습니다. 이 옵션은 SASL_OAUTHBearer 인증 메커니즘에만 적용됩니다( |
integer | |
readTimeoutSeconds | 권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다. |
integer | |
tlsTrustedCertificates | OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
tokenEndpointUri |
클라이언트가 |
string | |
type |
|
string | |
userInfoEndpointUri | Introspection Endpoint에서 사용자 ID에 사용할 수 있는 정보를 반환하지 않을 때 사용자 ID를 가져오는 데 사용할 수 있는 사용자 정보 끝점의 URI입니다. |
string | |
userNameClaim |
사용자 ID를 추출하는 데 사용할 JWT 인증 토큰, Introspection Endpoint 응답 또는 User Info Endpoint 응답에서 클레임의 이름입니다. 기본값은 |
string | |
validIssuerUri | 인증에 사용되는 토큰 발행자의 URI입니다. |
string | |
validTokenType |
Introspection Endpoint에서 반환하는 |
string |
6.2.8. GenericSecretSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaClientAuthenticationOAuth
, KafkaListenerAuthenticationCustom
, KafkaListenerAuthenticationOAuth
에 사용됨
속성 | 설명 |
---|---|
key | 시크릿 값이 OpenShift 시크릿에 저장되는 키입니다. |
string | |
secretName | 시크릿 값이 포함된 OpenShift 시크릿의 이름입니다. |
string |
6.2.9. CertSecretSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: ClientTls
, KafkaAuthorizationKeycloak
, KafkaAuthorizationOpa
, KafkaClientAuthenticationOAuth
, KafkaListenerAuthenticationOAuth
속성 | 설명 |
---|---|
certificate | 시크릿에 있는 파일 인증서의 이름입니다. |
string | |
secretName | 인증서가 포함된 Secret의 이름입니다. |
string |
6.2.10. KafkaListenerAuthenticationCustom 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
KafkaListenerAuthenticationCustom
스키마 속성의 전체 목록
사용자 지정 인증을 구성하려면 type
속성을 사용자 지정
으로 설정합니다.
사용자 지정 인증을 사용하면 모든 유형의 kafka 지원 인증을 사용할 수 있습니다.
사용자 정의 OAuth 인증 구성 예
sasl
및 tls
값을 사용하여 리스너에 매핑할 프로토콜을 결정하는 프로토콜 맵이 생성됩니다.
- SASL = True, TLS = True → SASL_SSL
- SASL = False, TLS = True → SSL
- SASL = True, TLS = False → SASL_PLAINTEXT
- SASL = False, TLS = False → PLAINTEXT
6.2.10.1. listenerConfig 링크 복사링크가 클립보드에 복사되었습니다!
listenerConfig
를 사용하여 지정된 리스너 구성에는 listener .name. <listener_name>-<port
>가 붙습니다. 예를 들어 sasl.enabled.mechanisms
는 listener. name. <listener_name>-<port > .sasl.enabled.mechanisms
가 됩니다.
6.2.10.2. secrets 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 브로커 노드의 시크릿은 /opt/kafka/custom-authn-secrets/custom-listener- <listener_name>-<port> / <secret_name
>에 마운트됩니다.
예를 들어 예제 구성의 마운트된 시크릿(예
: )은 /opt/kafka/custom-authn-secrets/custom-listener-oauth-bespoke-9093/example
에 있습니다.
6.2.10.3. 주요 빌더 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터 구성에서 사용자 정의 주체 빌더를 설정할 수 있습니다. 그러나 주요 빌더에는 다음 요구 사항이 적용됩니다.
- 지정된 주요 빌더 클래스가 이미지에 있어야 합니다. 자신을 만들기 전에, 이미 존재하는 지 확인하십시오. 필수 클래스로 AMQ Streams 이미지를 다시 빌드해야 합니다.
-
다른 리스너에서
oauth
유형 인증을 사용하지 않습니다. OAuth 리스너가 Kafka 구성에 자체 원칙 빌더를 추가하기 때문입니다. - 지정된 주요 빌더는 AMQ Streams와 호환됩니다.
AMQ Streams에서 이 인증서를 사용하여 Kafka 클러스터를 관리하므로 사용자 정의 주체 빌더는 인증을 위해 피어 인증서를 지원해야 합니다.
Kafka의 기본 주요 빌더 클래스는 피어 인증서 이름을 기반으로 보안 주체 빌드를 지원합니다. 사용자 정의 주체 빌더는 SSL 피어 인증서의 이름을 사용하여 유형 사용자의
주체를 제공해야 합니다.
다음 예는 AMQ Streams의 OAuth 요구 사항을 충족하는 사용자 정의 주요 빌더를 보여줍니다.
사용자 정의 OAuth 구성을 위한 주요 빌더 예
6.2.10.4. KafkaListenerAuthenticationCustom 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaListenerAuthenticationTls ,
, KafkaListenerAuthentication
ScramSha512KafkaListenerAuthenticationOAuth
와 KafkaListenerAuthenticationTls
사용을 구분하는 판별자입니다. KafkaListenerAuthenticationCustom
유형의 값 custom
이 있어야 합니다.
속성 | 설명 |
---|---|
listenerConfig | 특정 리스너에 사용할 구성입니다. 모든 값에는 listener.name. <listener_name>이 접두사로 지정됩니다. |
map | |
SASL | 이 리스너에서 SASL을 활성화하거나 비활성화합니다. |
boolean | |
secrets | /opt/kafka/custom-authn-secrets/custom-listener- <listener_name>-<port> / <secret_name >에 마운트할 시크릿입니다. |
type |
|
string |
6.2.11. GenericKafkaListenerConfiguration 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
GenericKafkaListenerConfiguration
스키마 속성의 전체 목록
Kafka 리스너 구성.
6.2.11.1. brokerCertChainAndKey 링크 복사링크가 클립보드에 복사되었습니다!
brokerCertRoleBindingAndKey
속성은 TLS 암호화가 활성화된 리스너에서만 사용됩니다. 속성을 사용하여 자체 Kafka 리스너 인증서를 제공할 수 있습니다.
TLS 암호화가 활성화된 로드
밸런서 외부 리스너 구성 예
6.2.11.2. externalTrafficPolicy 링크 복사링크가 클립보드에 복사되었습니다!
externalTrafficPolicy
속성은 로드 밸런서 및 nodeport
리스너와 함께 사용됩니다. OpenShift 외부에서 Kafka를 노출할 때
로컬
또는 클러스터를 선택할 수 있습니다
. local
은 다른 노드로 홉을 방지하고 클라이언트 IP를 유지하지만 클러스터는 둘 다
하지 않습니다. 기본값은 Cluster
입니다.
6.2.11.3. loadBalancerSourceRanges 링크 복사링크가 클립보드에 복사되었습니다!
loadBalancerSourceRanges
속성은 로드 밸런서 리스너 에서만
사용됩니다. OpenShift 외부에서 Kafka를 노출할 때 레이블 및 주석 외에도 소스 범위를 사용하여 서비스 생성 방법을 사용자 지정할 수 있습니다.
로드 밸런서 리스너에 구성된 소스 범위의 예
6.2.11.4. 클래스 링크 복사링크가 클립보드에 복사되었습니다!
class
속성은 수신
리스너와 함께만 사용됩니다. class 속성을 사용하여 Ingress
클래스
를 구성할 수 있습니다.
Ingress
클래스 nginx-internal
를 사용하여
유형 Ingress의 외부 리스너 예
6.2.11.5. preferredNodePortAddressType 링크 복사링크가 클립보드에 복사되었습니다!
preferredNodePortAddressType
속성은 nodeport
리스너에서만 사용됩니다.
리스너 구성에서 preferredNodePortAddressType
속성을 사용하여 노드 주소로 확인한 첫 번째 주소 유형을 지정합니다. 이 속성은 예를 들어 배포에 DNS가 지원되지 않거나 내부 DNS 또는 IP 주소를 통해 내부적으로 브로커를 노출하려는 경우 유용합니다. 이 유형의 주소가 발견되면 사용됩니다. 기본 주소 유형을 찾을 수 없는 경우 AMQ Streams는 표준 우선 순위의 유형을 진행합니다.
- ExternalDNS
- ExternalIP
- 호스트 이름
- InternalDNS
- InternalIP
기본 노드 포트 주소 유형으로 구성된 외부 리스너 예
6.2.11.6. useServiceDnsDomain 링크 복사링크가 클립보드에 복사되었습니다!
useServiceDnsDomain
속성은 내부
및 클러스터-ip
리스너에서만 사용됩니다. 클러스터 서비스 접미사(일반적으로 .cluster.local
)를 포함하는 정규화된 DNS 이름이 사용되는지 여부를 정의합니다. useServiceDnsDomain
이 false
로 설정된 경우 공개된 주소는 서비스 접미사 없이 생성됩니다(예: my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc
). useServiceDnsDomain
이 true
로 설정된 경우 공개된 주소는 서비스 접미사(예: my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc.cluster.local
)로 생성됩니다. 기본값은 false
입니다.
Service DNS 도메인을 사용하도록 구성된 내부 리스너 예
OpenShift 클러스터에서 .cluster.local
과 다른 서비스 접미사를 사용하는 경우 Cluster Operator 구성의 KUBERNETES_SERVICE_DNS_DOMAIN
환경 변수를 사용하여 접미사를 구성할 수 있습니다.
6.2.11.7. GenericKafkaListenerConfiguration 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
brokerCertChainAndKey |
이 리스너 |
externalTrafficPolicy |
서비스가 외부 트래픽을 노드 로컬 또는 클러스터 전체 엔드포인트로 라우팅하는지를 지정합니다. |
문자열([로컬, 클러스터] 중 하나) | |
loadBalancerSourceRanges |
클라이언트가 로드 밸런서 유형 리스너에 연결할 수 있는 CIDR 범위 목록(예: |
문자열 배열 | |
부트스트랩 | 부트스트랩 구성. |
brokers | broker별 구성. |
ipFamilyPolicy |
서비스에서 사용하는 IP 제품군 정책을 지정합니다. 사용 가능한 옵션은 |
문자열([RequireDualStack, SingleStack, PreferDualStack] 중 하나) | |
ipFamilies |
서비스에서 사용하는 IP Families를 지정합니다. 사용 가능한 옵션은 |
문자열([IPv6, IPv4]) 배열 중 하나 이상 | |
createBootstrapService |
부트스트랩 서비스를 생성할지 여부입니다. 부트스트랩 서비스는 기본적으로 생성됩니다(다른 방법으로 지정되지 않은 경우). 이 필드는 |
boolean | |
클래스 |
사용할 컨트롤러를 정의하는 |
string | |
종료자 |
이 리스너에 대해 생성된 |
문자열 배열 | |
maxConnectionCreationRate | 언제든지 이 리스너에서 허용되는 최대 연결 생성 속도입니다. 제한에 도달하면 새 연결이 제한됩니다. |
integer | |
maxConnections | 언제든지 브로커에서 이 리스너를 허용하는 최대 연결 수입니다. 제한에 도달하면 새 연결이 차단됩니다. |
integer | |
preferredNodePortAddressType |
노드 주소로 사용할 주소 유형을 정의합니다. 사용 가능한 유형은
이 필드는 우선 확인되는 기본 주소 유형을 선택하는 데 사용됩니다. 이 주소 유형에 대한 주소를 찾을 수 없는 경우 다른 유형은 기본 순서로 확인됩니다. 이 필드는 |
문자열 ([ExternalDNS, ExternalIP, Hostname, InternalIP, InternalDNS] 중 하나) | |
useServiceDnsDomain |
OpenShift 서비스 DNS 도메인을 사용할지 여부를 설정합니다. |
boolean |
6.2.12. CertAndKeySecretSource schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: GenericKafkaListenerConfiguration
, KafkaClientAuthenticationTls
속성 | 설명 |
---|---|
certificate | 시크릿에 있는 파일 인증서의 이름입니다. |
string | |
key | 시크릿의 개인 키 이름입니다. |
string | |
secretName | 인증서가 포함된 Secret의 이름입니다. |
string |
6.2.13. GenericKafkaListenerConfigurationBootstrap schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: GenericKafkaListenerConfiguration
GenericKafkaListenerConfigurationBootstrap
스키마 속성의 전체 목록
nodePort
,host
,loadBalancerIP
및 주석
속성과 동등한 브로커 서비스는 GenericKafkaListenerConfigurationBroker
스키마 에서 구성됩니다.
6.2.13.1. alternativeNames 링크 복사링크가 클립보드에 복사되었습니다!
부트스트랩 서비스의 대체 이름을 지정할 수 있습니다. 이름은 브로커 인증서에 추가되며 TLS 호스트 이름 확인에 사용할 수 있습니다. alternativeNames
속성은 모든 유형의 리스너에 적용됩니다.
추가 부트스트랩 주소로 구성된 외부 경로
리스너 예
6.2.13.2. host 링크 복사링크가 클립보드에 복사되었습니다!
host
속성은 경로
및 수신
리스너와 함께 사용하여 부트스트랩 및 브로커별 서비스에서 사용하는 호스트 이름을 지정합니다.
Ingress 컨트롤러에서 호스트 속성 값을 자동으로 할당하지 않으므로 Ingress 리스너 구성에 host
속성 값이 필수입니다. 호스트 이름이 Ingress 엔드 포인트로 해석되는지 확인합니다. AMQ Streams는 요청된 호스트를 사용할 수 있고 Ingress 엔드포인트로 올바르게 라우팅되는지 검증하지 않습니다.
수신 리스너의 호스트 구성 예
기본적으로 경로
리스너 호스트는 OpenShift에서 자동으로 할당됩니다. 그러나 호스트를 지정하여 할당된 경로 호스트를 덮어쓸 수 있습니다.
AMQ Streams는 요청된 호스트를 사용할 수 있는 검증을 수행하지 않습니다. 자유롭게 사용할 수 있고 사용할 수 있는지 확인해야 합니다.
경로 리스너의 호스트 구성 예
6.2.13.3. nodePort 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 부트스트랩 및 브로커 서비스에 사용되는 포트 번호는 OpenShift에서 자동으로 할당합니다. 요청된 포트 번호를 지정하여 nodeport
리스너에 할당된 노드 포트를 덮어쓸 수 있습니다.
AMQ Streams는 요청된 포트에서 검증을 수행하지 않습니다. 사용 가능한지 확인해야 합니다.You must ensure that they are free and available for use.
노드 포트 덮어쓰기로 구성된 외부 리스너 예
6.2.13.4. loadBalancerIP 링크 복사링크가 클립보드에 복사되었습니다!
loadBalancerIP
속성을 사용하여 로드 밸런서를 생성할 때 특정 IP 주소를 요청합니다. 특정 IP 주소가 있는 로드 밸런서를 사용해야 하는 경우 이 속성을 사용합니다. 클라우드 공급자가 기능을 지원하지 않는 경우 loadBalancerIP
필드가 무시됩니다.
특정 로드 밸런서 IP 주소 요청을 사용하는 로드 밸런서 유형의 외부 리스너 예
6.2.13.5. annotations 링크 복사링크가 클립보드에 복사되었습니다!
annotations
속성을 사용하여 리스너와 관련된 OpenShift 리소스에 주석을 추가합니다. 예를 들어 이러한 주석을 사용하여 외부 DNS와 같은 DNS 툴링을 조정할 수 있으며, 로드 밸런서 서비스에 DNS 이름을 자동으로 할당할 수 있습니다.
주석
을 사용하여 유형 로드 밸런서의 외부 리스너 예
6.2.13.6. GenericKafkaListenerConfigurationBootstrap 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
alternativeNames | 부트스트랩 서비스의 추가 대체 이름입니다. 대체 이름은 TLS 인증서의 주체 대체 이름 목록에 추가됩니다. |
문자열 배열 | |
host |
부트스트랩 호스트입니다. 이 필드는 Ingress 리소스 또는 Route 리소스에서 사용하여 원하는 호스트 이름을 지정합니다. 이 필드는 |
string | |
nodePort |
부트스트랩 서비스의 노드 포트입니다. 이 필드는 |
integer | |
loadBalancerIP |
이 필드에 지정된 IP 주소로 로드 밸런서가 요청됩니다. 이 기능은 로드 밸런서가 생성될 때 기본 클라우드 공급자가 |
string | |
annotations |
|
map | |
labels |
|
map |
6.2.14. GenericKafkaListenerConfigurationBroker 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: GenericKafkaListenerConfiguration
GenericKafkaListenerConfigurationBroker
스키마 속성의 전체 목록
부트 스트랩 서비스 덮어쓰기를 구성하는 GenericKafkaListenerConfigurationBootstrap
스키마 의 nodePort
,host
,loadBalancerIP
및 주석
속성에 대한 예제 구성을 볼 수 있습니다.
브로커에 대한 공지된 주소
기본적으로 AMQ Streams는 Kafka 클러스터가 클라이언트에 알리는 호스트 이름과 포트를 자동으로 확인합니다. AMQ Streams가 실행 중인 인프라에서 Kafka에 액세스할 수 있는 올바른 호스트 이름 또는 포트를 제공하지 않을 수 있기 때문에 모든 상황에서 충분하지 않습니다.
브로커 ID를 지정하고 리스너의 구성
속성에서 공개된 호스트 이름과 포트를 사용자 지정할 수 있습니다. 그런 다음 AMQ Streams는 Kafka 브로커에서 공개된 주소를 자동으로 구성하고 브로커 인증서에 추가하여 TLS 호스트 이름 확인에 사용할 수 있습니다. 공개된 호스트 및 포트를 재정의하는 것은 모든 유형의 리스너에 사용할 수 있습니다.
공개된 주소에 대한 덮어쓰기로 구성된 외부 경로
리스너의 예
6.2.14.1. GenericKafkaListenerConfigurationBroker 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
broker | kafka 브로커(broker 식별자)의 ID입니다. 브로커 ID는 0에서 시작하여 브로커 복제본 수에 해당합니다. |
integer | |
advertisedHost |
brokers |
string | |
advertisedPort |
brokers |
integer | |
host |
브로커 호스트. 이 필드는 Ingress 리소스 또는 Route 리소스에서 사용하여 원하는 호스트 이름을 지정합니다. 이 필드는 |
string | |
nodePort |
broker별 서비스의 노드 포트입니다. 이 필드는 |
integer | |
loadBalancerIP |
이 필드에 지정된 IP 주소로 로드 밸런서가 요청됩니다. 이 기능은 로드 밸런서가 생성될 때 기본 클라우드 공급자가 |
string | |
annotations |
|
map | |
labels |
|
map |
6.2.15. EphemeralStorage 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JbodStorage
, KafkaClusterSpec
, ZookeeperClusterSpec
type
속성은 EphemeralStorage
유형을 PersistentClaimStorage
와 구분하는 구분자입니다. EphemeralStorage
유형의 임시
값이 있어야 합니다.
속성 | 설명 |
---|---|
id | 스토리지 식별 번호. 'jbod' 유형의 스토리지에 정의된 스토리지 볼륨에만 필요합니다. |
integer | |
sizeLimit | type=ephemeral인 경우 이 EmptyDir 볼륨에 필요한 총 로컬 스토리지(예: 1Gi)를 정의합니다. |
string | |
type |
|
string |
6.2.16. PersistentClaimStorage 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JbodStorage
, KafkaClusterSpec
, ZookeeperClusterSpec
type
속성은 PersistentClaimStorage
유형과 EphemeralStorage
의 사용을 구별하는 판별자입니다. PersistentClaimStorage
유형에 대한 persistent-claim
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
크기 | type=persistent-claim인 경우 영구 볼륨 클레임의 크기(예: 1Gi)를 정의합니다. type=persistent-claim 시 필수 항목입니다. |
string | |
선택기 | 사용할 특정 영구 볼륨을 지정합니다. 이러한 볼륨을 선택하기 위한 레이블을 나타내는 키:값 쌍이 포함되어 있습니다. |
map | |
deleteClaim | 클러스터가 배포 취소될 때 영구 볼륨 클레임을 삭제해야 하는지 여부를 지정합니다. |
boolean | |
클래스 | 동적 볼륨 할당에 사용할 스토리지 클래스입니다. |
string | |
id | 스토리지 식별 번호. 'jbod' 유형의 스토리지에 정의된 스토리지 볼륨에만 필요합니다. |
integer | |
덮어쓰기 |
개별 브로커에 대한 재정의 |
6.2.17. PersistentClaimStorageOverride schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 위치: PersistentClaimStorage
속성 | 설명 |
---|---|
클래스 | 이 브로커의 동적 볼륨 할당에 사용할 스토리지 클래스입니다. |
string | |
broker | kafka 브로커(broker 식별자)의 ID입니다. |
integer |
6.2.18. JbodStorage 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
type
속성은 discriminator로, JbodStorage
유형 사용을 EphemeralStorage
, PersistentClaimStorage
와 구별합니다. JbodStorage
유형에 대한 값 jbod
가 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
volumes | JBOD 디스크 어레이를 나타내는 스토리지 오브젝트로 볼륨 목록입니다. |
6.2.19. KafkaAuthorizationSimple 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
KafkaAuthorizationSimple
스키마 속성의 전체 목록
AMQ Streams의 간단한 인증에서는 Apache Kafka와 함께 제공되는 기본 ACL(액세스 제어 목록) 인증 플러그인인 AclAuthorizer
플러그인을 사용합니다. ACL을 사용하면 세분화된 수준에서 리소스에 액세스할 수 있는 사용자를 정의할 수 있습니다.
간단한 권한 부여를 사용하도록 Kafka
사용자 정의 리소스를 구성합니다. 권한 부여
섹션의 type
속성을 simple
값으로 설정하고 슈퍼 사용자 목록을 구성합니다.
액세스 규칙은 ACLRule 스키마 참조에 설명된 대로 KafkaUser
에 대해 구성됩니다.
6.2.19.1. superUsers 링크 복사링크가 클립보드에 복사되었습니다!
ACL 규칙을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.
간단한 권한 부여 구성의 예
Kafka.spec.kafka
의 config
속성의 super.user
구성 옵션은 무시됩니다. 대신 권한 부여
속성에 수퍼 사용자를 지정합니다. 자세한 내용은 Kafka 브로커 구성을 참조하십시오.
6.2.19.2. KafkaAuthorizationSimple 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaAuthorizationSimple
유형과 KafkaAuthorizationOpa
, KafkaAuthorizationKeycloak
, KafkaAuthorizationCustom
등 다양한 유형의 사용을 구분하는 판별자입니다. KafkaAuthorizationSimple
유형에 대해 간단한
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
슈퍼 유저 | 슈퍼 사용자 목록. 무제한 액세스 권한을 얻을 수 있는 사용자 보안 주체 목록을 포함해야 합니다. |
문자열 배열 |
6.2.20. KafkaAuthorizationOpa 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
KafkaAuthorizationOpa
스키마 속성의 전체 목록
Open Policy Agent 권한을 사용하려면 권한 부여
섹션의 type
속성을 opa
값으로 설정하고 필요에 따라 OPA 속성을 구성합니다. AMQ Streams는 작성자로 Kafka 권한 부여를 위한 Open Policy Agent 플러그인을 사용합니다. 입력 데이터 및 정책 예제 형식에 대한 자세한 내용은 Open Policy Agent plugin for Kafka authorization 를 참조하십시오.
6.2.20.1. url 링크 복사링크가 클립보드에 복사되었습니다!
Open Policy Agent 서버에 연결하는 데 사용되는 URL입니다. URL에는 작성자가 쿼리하는 정책을 포함해야 합니다. 필수 항목입니다.
6.2.20.2. allowOnError 링크 복사링크가 클립보드에 복사되었습니다!
작성자가 Open Policy Agent(예: 일시적으로 사용할 수 없는 경우)를 쿼리하지 못하는 경우 Kafka 클라이언트를 기본적으로 허용하거나 거부할지 여부를 정의합니다. 기본값은 false
- 모든 작업이 거부됩니다.
6.2.20.3. initialCacheCapacity 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 초기 용량입니다. 기본값은 5000
입니다.
6.2.20.4. maximumCacheSize 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 최대 용량입니다. 기본값은 50000
입니다.
6.2.20.5. expireAfterMs 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 로컬 캐시에 보관된 레코드의 만료입니다. Open Policy Agent 서버에서 캐시된 권한 부여 결정을 다시 로드하는 빈도를 정의합니다. 밀리초 단위입니다. 기본값은 28 0000
밀리초(1시간)입니다.
6.2.20.6. tlsTrustedCertificates 링크 복사링크가 클립보드에 복사되었습니다!
OPA 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.
6.2.20.7. superUsers 링크 복사링크가 클립보드에 복사되었습니다!
개방형 정책 에이전트 정책을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.
Open Policy Agent authorizer 구성의 예
6.2.20.8. KafkaAuthorizationOpa 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaAuthorizationOpa
유형을 KafkaAuthorizationSimple
, KafkaAuthorizationKeycloak
, KafkaAuthorizationCustom
. KafkaAuthorizationOpa
유형의 opa
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
url | Open Policy Agent 서버에 연결하는 데 사용되는 URL입니다. URL에는 작성자가 쿼리하는 정책을 포함해야 합니다. 이 옵션은 필수입니다. |
string | |
allowOnError |
작성자가 Open Policy Agent(예: 일시적으로 사용할 수 없는 경우)를 쿼리하지 못하는 경우 Kafka 클라이언트를 기본적으로 허용하거나 거부할지 여부를 정의합니다. 기본값은 |
boolean | |
initialCacheCapacity |
인증자가 사용하는 로컬 캐시의 초기 용량으로 인해 Open Policy Agent가 모든 요청 기본값이 |
integer | |
maximumCacheSize |
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 최대 용량입니다. 기본값은 |
integer | |
expireAfterMs |
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 로컬 캐시에 보관된 레코드의 만료입니다. Open Policy Agent 서버에서 캐시된 권한 부여 결정을 다시 로드하는 빈도를 정의합니다. 밀리초 단위입니다. 기본값은 |
integer | |
tlsTrustedCertificates | OPA 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
슈퍼 유저 | 슈퍼 사용자 목록, 특히 무제한 액세스 권한이 있는 사용자 보안 목록입니다. |
문자열 배열 | |
enableMetrics |
Open Policy Agent 작성자 플러그인이 메트릭을 제공해야 하는지 여부를 정의합니다. 기본값은 |
boolean |
6.2.21. KafkaAuthorizationKeycloak 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
type
속성은 KafkaAuthorizationKeycloak
유형과 KafkaAuthorizationSimple
, KafkaAuthorizationOpa
, KafkaAuthorizationCustom
. KafkaAuthorizationKeycloak
유형의 값 keycloak
이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
clientId | Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 끝점 URI를 사용하는 OAuth 클라이언트 ID입니다. |
string | |
tokenEndpointUri | 권한 부여 서버 토큰 끝점 URI입니다. |
string | |
tlsTrustedCertificates | OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
disableTlsHostnameVerification |
TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
delegateToKafkaAcls |
Red Hat Single Sign-On Authorization Services 정책에서 DENIED인 경우 권한 부여 결정을 '단순' 승인자에게 위임해야 하는지 여부입니다. 기본값은 |
boolean | |
grantsRefreshPeriodSeconds | 두 번 연속 부여 사이의 시간은 새로 고침을 몇 초 내에 실행합니다. 기본값은 60입니다. |
integer | |
grantsRefreshPoolSize | 활성 세션에 대한 부여를 새로 고치는 데 사용할 스레드 수입니다. 스레드가 많을수록 병렬 처리가 증가하므로 작업이 더 빨리 완료됩니다. 그러나 더 많은 스레드를 사용하면 권한 부여 서버에 더 많은 로드가 배치됩니다. 기본값은 5입니다. |
integer | |
슈퍼 유저 | 슈퍼 사용자 목록. 무제한 액세스 권한을 얻을 수 있는 사용자 보안 주체 목록을 포함해야 합니다. |
문자열 배열 | |
connectTimeoutSeconds | 권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다. |
integer | |
readTimeoutSeconds | 권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다. |
integer | |
httpRetries | 초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다. |
integer | |
enableMetrics |
OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 |
boolean |
6.2.22. KafkaAuthorizationCustom 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
KafkaAuthorizationCustom
스키마 속성의 전체 목록
AMQ Streams에서 사용자 정의 인증을 사용하려면 ACL(액세스 제어 목록)을 정의하도록 자체 Authorizer
플러그인을 구성할 수 있습니다.
ACL을 사용하면 세분화된 수준에서 리소스에 액세스할 수 있는 사용자를 정의할 수 있습니다.
사용자 정의 권한을 사용하도록 Kafka
사용자 정의 리소스를 구성합니다. 권한 부여
섹션의 type
속성을 사용자 지정
값으로 설정하고 다음 속성을 설정합니다.
사용자 정의 작성자는 org.apache.kafka.server.authorizer.Authorizer
인터페이스를 구현하고 super.users
구성 속성을 사용하여 super.users 구성을 지원해야 합니다.
6.2.22.1. authorizerClass 링크 복사링크가 클립보드에 복사되었습니다!
(필수) 사용자 지정 ACL을 지원하기 위해 org.apache.kafka.server.authorizer.Authorizer
인터페이스를 구현하는 Java 클래스입니다.
6.2.22.2. superUsers 링크 복사링크가 클립보드에 복사되었습니다!
ACL 규칙을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.
Kafka.spec.kafka.config
를 사용하여 사용자 정의 작성자를 초기화하기 위한 구성을 추가할 수 있습니다.
Kafka.spec
아래의 사용자 정의 권한 부여 구성의 예
Kafka
사용자 정의 리소스 구성 외에도 사용자 정의 작성자 클래스를 포함하는 JAR 파일은 Kafka 브로커의 classpath에서 사용할 수 있어야 합니다.
AMQ Streams Maven 빌드 프로세스는 docker-images/kafka/kafka- thirdparty-libs
디렉터리 아래의 pom.xml
파일에 종속 항목으로 추가하여 생성된 Kafka 브로커 컨테이너 이미지에 사용자 정의 타사 라이브러리를 추가하는 메커니즘을 제공합니다. 디렉터리에는 다른 Kafka 버전의 다른 폴더가 포함되어 있습니다. 적절한 폴더를 선택합니다. pom.xml
파일을 수정하기 전에 Maven 리포지토리에서 타사 라이브러리를 사용할 수 있어야 하며 Maven 리포지토리에 AMQ Streams 빌드 프로세스에서 액세스할 수 있어야 합니다.
Kafka.spec.kafka
의 config
속성의 super.user
구성 옵션은 무시됩니다. 대신 권한 부여
속성에 수퍼 사용자를 지정합니다. 자세한 내용은 Kafka 브로커 구성을 참조하십시오.
사용자 정의 권한 부여는 oauth
인증을 사용하고 groupsClaim
구성 특성을 구성할 때 인증 중에 JWT 토큰에서 추출한 그룹 멤버십 정보를 사용할 수 있습니다. 그룹은 다음과 같이 authorize() 호출 중에 OAuthKafkaPrincipal
오브젝트에서 사용할 수 있습니다.
6.2.22.3. KafkaAuthorizationCustom 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaAuthorizationCustom
유형 사용을 KafkaAuthorizationSimple
, KafkaAuthorizationOpa
, KafkaAuthorizationKeycloak
과 구분하는 판별자입니다. KafkaAuthorizationCustom
유형의 값 custom
이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
authorizerClass | 권한 부여 구현 클래스 - classpath에서 사용할 수 있어야 합니다. |
string | |
슈퍼 유저 | 무제한 액세스 권한이 있는 사용자 주체인 슈퍼 사용자 목록입니다. |
문자열 배열 | |
supportsAdminApi |
사용자 정의 인증자가 Kafka Admin API를 사용하여 ACL을 관리하기 위한 API를 지원하는지 여부를 나타냅니다. 기본값은 |
boolean |
6.2.23. Rack 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaBridgeSpec
, KafkaClusterSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
rack
옵션은 랙 인식을 구성합니다. rack 은 데이터 센터의 가용성 영역, 데이터 센터 또는 실제 랙을 나타낼 수 있습니다. 랙 은 topologyKey
를 통해 구성됩니다. TopologyKey
는 해당 값에 토폴로지 이름이 포함된 OpenShift 노드에서 레이블을 식별합니다. 이러한 레이블의 예로는 OpenShift 노드가 실행되는 가용성 영역의 이름이 포함된 topology.kubernetes.io/zone
(또는 이전 OpenShift 버전의 failure-domain.beta.kubernetes.io/zone
)이 있습니다. 실행되는 랙을 인식하도록 Kafka 클러스터를 구성하고, 다른 랙 에 파티션 복제본을 분배하거나 가장 가까운 복제본에서 메시지를 사용하는 등의 추가 기능을 활성화할 수 있습니다.
OpenShift 노드 라벨에 대한 자세한 내용은 oscap -Known Labels, Annotations, Taints를 참조하십시오. 노드가 배포된 영역 또는 랙을 나타내는 노드 레이블에 대한 OpenShift 관리자를 참조하십시오.
6.2.23.1. 랙에 파티션 복제본 분배 링크 복사링크가 클립보드에 복사되었습니다!
랙 인식이 구성되면 AMQ Streams는 각 Kafka 브로커에 대한 broker.rack
구성을 설정합니다. broker.rack
구성은 각 브로커에 랙 ID를 할당합니다. broker.rack
이 설정되면 Kafka 브로커는 가능한 한 많은 랙에 파티션 복제본을 분배합니다. 복제본이 여러 개의 랙에 분산되면 여러 복제본이 동시에 실패할 가능성이 동일한 랙에 있을 때보다 낮습니다. 복제본을 분산하면 복원력이 향상되고 가용성과 안정성에 중요합니다. Kafka에서 랙 인식을 활성화하려면 아래 예제와 같이 Kafka
사용자 정의 리소스의 .spec.kafka
섹션에 rack
옵션을 추가합니다.
Kafka의 rack
구성 예
브로커가 실행되는 랙 은 경우에 따라 Pod가 삭제되거나 다시 시작될 때 변경될 수 있습니다. 결과적으로 다른 랙에서 실행되는 복제본이 동일한 랙을 공유할 수 있습니다. Cruise Control 및 KafkaRebalance
리소스를 RackAwareGoal
과 함께 사용하여 복제본이 다른 랙에 분산되도록 합니다.
Kafka
사용자 정의 리소스에서 랙 인식이 활성화되면 AMQ Streams는 OpenShift preferredDuringSchedulingIgnoredDuringExecution
선호도 규칙을 자동으로 추가하여 Kafka 브로커를 다른 랙에 배포합니다. 그러나 기본 규칙은 브로커가 분산되도록 보장하지 않습니다. 정확한 OpenShift 및 Kafka 구성에 따라 노드가 가능한 한 많은 랙에 올바르게 분배되도록 ZooKeeper 및 Kafka 둘 다에 대한 topologySpreadConstraints
를 구성해야합니다. 자세한 내용은 2.8절. “Pod 예약 구성” 에서 참조하십시오.
6.2.23.2. 가장 가까운 복제본에서 메시지 사용 링크 복사링크가 클립보드에 복사되었습니다!
Rack 인식은 소비자가 가장 가까운 복제본에서 데이터를 가져오는 데 사용할 수도 있습니다. Kafka 클러스터가 여러 데이터센터에 걸쳐 있을 때 네트워크 부하를 줄이고 퍼블릭 클라우드에서 Kafka를 실행할 때 비용을 줄일 수도 있습니다. 그러나 이 경우 대기 시간이 증가할 수 있습니다.
가장 가까운 복제본에서 사용할 수 있으려면 rack 인식 기능을 Kafka 클러스터에서 구성해야 하며 RackAwareReplicaSelector
를 활성화해야 합니다. 복제본 선택기 플러그인은 클라이언트가 가장 가까운 복제본에서 사용할 수 있도록 하는 논리를 제공합니다. 기본 구현에서는 LeaderSelector
를 사용하여 항상 클라이언트의 리더 복제본을 선택합니다. 기본 구현에서 전환하려면 replica.selector.class
에 RackAwareReplicaSelector
를 지정합니다.
복제본 인식 선택기가 활성화된 rack
구성의 예
Kafka 브로커 구성 외에도 소비자에 client.rack
옵션을 지정해야 합니다. client.rack
옵션은 소비자가 실행 중인 랙 ID 를 지정해야 합니다. RackAwareReplicaSelector
는 broker.rack
및 client.rack
ID와 일치하는 broker.rack ID를 연결하여 가장 가까운 복제본을 찾아서 소비합니다. 동일한 랙에 여러 개의 복제본이 있는 경우 RackAwareReplicaSelector
는 항상 최신 복제본을 선택합니다. 랙 ID를 지정하지 않거나 동일한 랙 ID가 있는 복제본을 찾을 수 없는 경우 리더 복제본으로 대체됩니다.
그림 6.1. 동일한 가용성 영역의 복제본에서 사용하는 클라이언트 표시 예
커넥터가 가장 가까운 복제본의 메시지를 사용하도록 Kafka Connect, MirrorMaker 2 및 Kafka Bridge를 구성할 수도 있습니다. KafkaConnect
,KafkaMirrorMaker2
및 KafkaBridge
사용자 정의 리소스에서 랙 인식 기능을 활성화합니다. 이 구성은 유사성 규칙을 설정하지 않지만 선호도
또는 topologySpreadConstraints
를 구성할 수도 있습니다. 자세한 내용은 2.8절. “Pod 예약 구성” 에서 참조하십시오.
AMQ Streams를 사용하여 Kafka Connect를 배포할 때 KafkaConnect
사용자 정의 리소스의 rack
섹션을 사용하여 client.rack
옵션을 자동으로 구성할 수 있습니다.
Kafka Connect의 rack
구성 예
AMQ Streams를 사용하여 MirrorMaker 2를 배포할 때 KafkaMirrorMaker2
사용자 정의 리소스의 rack
섹션을 사용하여 client.rack
옵션을 자동으로 구성할 수 있습니다.
MirrorMaker 2의 rack
구성 예
AMQ Streams를 사용하여 Kafka Bridge를 배포할 때 KafkaBridge
사용자 정의 리소스의 rack
섹션을 사용하여 client.rack
옵션을 자동으로 구성할 수 있습니다.
Kafka 브리지의 rack
구성 예
6.2.23.3. Rack 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
topologyKey |
OpenShift 클러스터 노드에 할당된 라벨과 일치하는 키입니다. 레이블 값은 broker의 |
string |
6.2.24. 프로브 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec
, EntityTopicOperatorSpec
, EntityUserOperatorSpec
, KafkaBridgeSpec
, KafkaClusterSpec
, KafkaConnectSpec
, KafkaExporterSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
, TlsSidecar
, ZookeeperClusterSpec
속성 | 설명 |
---|---|
failureThreshold | 성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 기본값은 3입니다. 최소 값은 1입니다. |
integer | |
initialDelaySeconds | 먼저 상태를 확인하기 전에 초기 지연을 확인합니다. 기본값은 15초입니다. 최소 값은 0입니다. |
integer | |
periodSeconds | 프로브를 수행하는 빈도(초)입니다. 기본값은 10초입니다. 최소 값은 1입니다. |
integer | |
successThreshold | 실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 기본값은 1입니다. 활성 상태의 경우 1이어야 합니다. 최소 값은 1입니다. |
integer | |
timeoutSeconds | 각 시도된 상태 점검에 대한 타임아웃입니다. 기본값은 5초입니다. 최소 값은 1입니다. |
integer |
6.2.25. JvmOptions 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec
, EntityTopicOperatorSpec
, EntityUserOperatorSpec
, KafkaBridgeSpec
, KafkaClusterSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
, ZookeeperClusterSpec
속성 | 설명 |
---|---|
-XX | JVM에 -XX 옵션의 맵입니다. |
map | |
-Xms | -Xms 옵션을 JVM에 적용합니다. |
string | |
-Xmx | -Xmx 옵션을 JVM으로 설정합니다. |
string | |
gcLoggingEnabled | 가비지 컬렉션 로깅을 사용하도록 설정할지 여부를 지정합니다. 기본값은 false입니다. |
boolean | |
javaSystemProperties |
|
6.2.26. SystemProperty 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JvmOptions
속성 | 설명 |
---|---|
name | 시스템 속성 이름입니다. |
string | |
value | 시스템 속성 값입니다. |
string |
6.2.27. KafkaJmxOptions 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaClusterSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, ZookeeperClusterSpec
CloudEvent 연결 옵션을 구성합니다.
포트 9999에 연결하여 Kafka 브로커, ZooKeeper 노드, Kafka Connect 및 MirrorMaker 2에서 metrics를 가져옵니다. jmxOptions
속성을 사용하여 암호로 보호되거나 보호되지 않은 10.0.0.1 포트를 구성합니다. 암호 보호를 사용하면 권한이 없는 Pod가 포트에 액세스할 수 없습니다.
그런 다음 구성 요소에 대한 메트릭을 가져올 수 있습니다.
예를 들어 각 Kafka 브로커에 대해 클라이언트에서 초당 바이트당 사용 데이터를 얻거나 브로커 네트워크의 요청 속도를 얻을 수 있습니다.
10.0.0.1 포트에 대한 보안을 활성화하려면 인증
필드의 type
매개 변수를 password
로 설정합니다.
Kafka 브로커 및 ZooKeeper 노드에 대한 암호 보호 CloudEvent 구성의 예
그런 다음 Pod를 클러스터에 배포하고 처리할 브로커를 지정하여 헤드리스 서비스를 사용하여 CloudEvent 메트릭을 가져올 수 있습니다.
예를 들어 브로커 0 에서 CloudEvent 메트릭을 가져오려면 다음을 지정합니다.
"CLUSTER-NAME-kafka-0.CLUSTER-NAME-kafka-brokers"
"CLUSTER-NAME-kafka-0.CLUSTER-NAME-kafka-brokers"
CLUSTER-NAME-kafka-0
은 브로커 Pod의 이름이며 CLUSTER-NAME-kafka-brokers
는 브로커 Pod의 IP를 반환하는 헤드리스 서비스의 이름입니다.
ScanSetting 포트가 보안되면 포드 배포의 CloudEvent 시크릿에서 해당 포트를 참조하여 사용자 이름과 암호를 가져올 수 있습니다.
보호되지 않은 CloudEvent 포트의 경우 빈 object {}
을 사용하여 헤드리스 서비스에서 10.0.0.1 포트를 엽니다. Pod를 배포하고 보호 포트와 동일한 방식으로 메트릭을 확보하지만, 이 경우 모든 Pod는 CloudEvent 포트에서 읽을 수 있습니다.
Kafka 브로커 및 ZooKeeper 노드에 대한 오픈 포트 10.0.0.1 구성의 예
6.2.27.1. KafkaJmxOptions 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
인증 |
10.0.0.1 포트에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
6.2.28. KafkaJmxAuthenticationPassword schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaJmxOptions
type
속성은 KafkaJmxAuthenticationPassword
유형의 사용을 나중에 추가할 수 있는 다른 하위 유형과 구별하는 구분자입니다. KafkaJmxAuthenticationPassword
유형의 값 암호
가 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.29. JmxPrometheusExporterMetrics schema reference 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlSpec
, KafkaClusterSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
, ZookeeperClusterSpec
type
속성은 나중에 추가할 수 있는 다른 하위 유형과 JmxPrometheusExporterMetrics
사용을 구분하는 판별자입니다. JmxPrometheusExporter 유형의
.
jmxPrometheusExporter
값이 있어야 합니다
속성 | 설명 |
---|---|
type |
|
string | |
valueFrom | Prometheus>-< Exporter 구성이 저장된 ConfigMap 항목입니다. 이 구성의 구조에 대한 자세한 내용은 Prometheus Exporter 를 참조하십시오. |
6.2.30. ExternalConfigurationReference 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ExternalLogging
, JmxPrometheusExporterMetrics
속성 | 설명 |
---|---|
configMapKeyRef | 구성이 포함된 ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 설명서를 참조하십시오. |
6.2.31. 인라인Logging 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec
, EntityTopicOperatorSpec
, EntityUserOperatorSpec
, KafkaBridgeSpec
, KafkaClusterSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
, ZookeeperClusterSpec
type
속성은 InlineLogging
유형과 ExternalLogging
유형을 구분하는 구분자입니다. InlineLogging
유형의 값 인라인
이어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
로거 | 로거 이름에서 로거 수준에 이르기까지 맵입니다. |
map |
6.2.32. ExternalLogging 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec
, EntityTopicOperatorSpec
, EntityUserOperatorSpec
, KafkaBridgeSpec
, KafkaClusterSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
, ZookeeperClusterSpec
type
속성은 외부Logging
유형 사용을 구분하는 구분자 입니다
. ExternalLogging
유형의 외부
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
valueFrom |
로깅 구성이 저장된 |
6.2.33. KafkaClusterTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
속성 | 설명 |
---|---|
statefulset |
Kafka |
Pod |
Kafka |
bootstrapService |
Kafka 부트스트랩 |
brokersService |
Kafka 브로커 |
externalBootstrapService |
Kafka 외부 부트스트랩 |
perPodService |
OpenShift 외부에서 액세스하는 데 사용되는 포드당 Kafka |
externalBootstrapRoute |
Kafka 외부 부트스트랩 |
perPodRoute |
OpenShift 외부에서 액세스 |
externalBootstrapIngress |
Kafka 외부 부트스트랩 |
perPodIngress |
OpenShift 외부에서 액세스하는 데 사용되는 포드당 Kafka |
persistentVolumeClaim |
모든 Kafka |
podDisruptionBudget |
Kafka |
kafkaContainer | Kafka 브로커 컨테이너용 템플릿입니다. |
initContainer | Kafka init 컨테이너용 템플릿입니다. |
clusterCaCert | Kafka 클러스터 인증서 공개 키가 있는 시크릿용 템플릿입니다. |
serviceAccount | Kafka 서비스 계정에 대한 템플릿입니다. |
jmxSecret | Kafka 클러스터의 보안에 대한 템플릿입니다. |
clusterRoleBinding | Kafka ClusterRoleBinding용 템플릿입니다. |
podSet |
Kafka |
6.2.34. StatefulSetTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterTemplate
, ZookeeperClusterTemplate
속성 | 설명 |
---|---|
metadata | 리소스에 적용되는 메타데이터입니다. |
podManagementPolicy |
이 StatefulSet에 사용할 podManagementPolicy. 유효한 값은 |
문자열 ([OrderedReady, Parallel] 중 하나) |
6.2.35. MetadataTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
BuildConfigTemplate
, DeploymentTemplate
, InternalServiceTemplate
, PodDisruptionBudgetTemplate
, PodTemplate
, ResourceTemplate
, StatefulSetTemplate
MetadataTemplate
스키마 속성의 전체 목록
레이블
및 주석
은 리소스를 식별하고 구성하는 데 사용되며 metadata
속성에서 구성됩니다.
예를 들면 다음과 같습니다.
labels
및 annotations
필드에는 예약된 문자열 strimzi.io
가 포함되지 않은 레이블 또는 주석이 포함될 수 있습니다. strimzi.io
가 포함된 레이블 및 주석은 AMQ Streams에서 내부적으로 사용되며 구성할 수 없습니다.
6.2.35.1. MetadataTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
labels |
리소스 템플릿에 추가된 라벨입니다. |
map | |
annotations |
리소스 템플릿에 추가된 주석입니다. |
map |
6.2.36. PodTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate
, entity OperatorTemplate
, KafkaBridgeTemplate
, KafkaClusterTemplate
, KafkaConnectTemplate
, KafkaExporterTemplate
, KafkaMirrorMakerTemplate
, ZookeeperClusterTemplate
Kafka Pod에 대한 템플릿을 구성합니다.
PodTemplate
구성의 예
6.2.36.1. hostAliases 링크 복사링크가 클립보드에 복사되었습니다!
hostAliases
속성을 사용하여 포드의 /etc/hosts
파일에 삽입되는 호스트 및 IP 주소 목록을 지정합니다.
이 구성은 클러스터 외부의 연결도 사용자가 요청한 경우 Kafka Connect 또는 MirrorMaker에 유용합니다.
hostAliases
구성 예
6.2.36.2. PodTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
metadata | 리소스에 적용되는 메타데이터입니다. |
imagePullSecrets |
이 포드에서 사용하는 이미지를 가져오는 데 사용할 동일한 네임스페이스의 보안에 대한 참조 목록입니다. Cluster Operator의 |
securityContext | Pod 수준 보안 속성 및 공통 컨테이너 설정을 구성합니다. 자세한 내용은 core/v1 podsecuritycontext 에 대한 외부 설명서 를 참조하십시오. |
terminationGracePeriodSeconds | 유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후 시간(초)이며 프로세스가 강제 종료 신호로 중지되는 시간입니다. 이 값을 프로세스에 예상 정리 시간보다 길게 설정합니다. value는 음수가 아닌 정수여야 합니다. 0 값은 즉시 삭제를 나타냅니다. Kafka 브로커가 종료되기 전에 다른 브로커로 작업을 전송할 수 있도록 매우 큰 Kafka 클러스터의 유예 기간을 늘려야 할 수 있습니다. 기본값은 30초입니다. |
integer | |
유사성 | Pod의 유사성 규칙입니다. 자세한 내용은 core/v1 유사성에 대한 외부 설명서를 참조하십시오. |
허용 오차 | Pod의 허용 오차입니다. 자세한 내용은 core/v1 허용 오차에 대한 외부 설명서 를 참조하십시오. |
허용 오차 배열 | |
priorityClassName | Pod에 우선순위를 할당하는 데 사용되는 우선순위 클래스의 이름입니다. 우선순위 클래스에 대한 자세한 내용은 Pod 우선 순위 및 선점을 참조하십시오. |
string | |
schedulerName |
이 |
string | |
hostAliases | Pod의 HostAliases입니다. hostAliases는 지정된 경우 Pod의 호스트 파일에 삽입할 호스트 및 IP의 선택적 목록입니다. 자세한 내용은 core/v1 hostalias에 대한 외부 설명서 를 참조하십시오. |
HostAlias 배열 | |
tmpDirSizeLimit |
임시 EmptyDir 볼륨( |
string | |
enableServiceLinks | 서비스에 대한 정보를 Pod의 환경 변수에 삽입해야 하는지 여부를 나타냅니다. |
boolean | |
topologySpreadConstraints | Pod의 토폴로지 분배 제약 조건입니다. 자세한 내용은 core/v1 topologyspreadconstraint에 대한 외부 설명서 를 참조하십시오. |
TopologySpreadConstraint array |
6.2.37. InternalServiceTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용: CruiseControlTemplate
, KafkaBridgeTemplate
, KafkaClusterTemplate
, KafkaConnectTemplate
, ZookeeperClusterTemplate
속성 | 설명 |
---|---|
metadata | 리소스에 적용되는 메타데이터입니다. |
ipFamilyPolicy |
서비스에서 사용하는 IP 제품군 정책을 지정합니다. 사용 가능한 옵션은 |
문자열([RequireDualStack, SingleStack, PreferDualStack] 중 하나) | |
ipFamilies |
서비스에서 사용하는 IP Families를 지정합니다. 사용 가능한 옵션은 |
문자열([IPv6, IPv4]) 배열 중 하나 이상 |
6.2.38. resourcetemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate
, entity OperatorTemplate
, KafkaBridgeTemplate
, KafkaClusterTemplate
, KafkaConnectTemplate
, KafkaExporterTemplate
, KafkaMirrorMakerTemplate
, KafkaUserTemplate
, ZookeeperClusterTemplate
속성 | 설명 |
---|---|
metadata | 리소스에 적용되는 메타데이터입니다. |
6.2.39. PodDisruptionBudgetTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate
, KafkaBridgeTemplate
, KafkaClusterTemplate
, KafkaConnectTemplate
, KafkaMirrorMakerTemplate
, ZookeeperClusterTemplate
PodDisruptionBudgetTemplate
스키마 속성의 전체 목록
AMQ Streams는 새로운 모든 StrimziPodSet
,StatefulSet
또는 Deployment
에 대해 PodDisruptionBudget
을 생성합니다. 기본적으로 Pod 중단 예산은 특정 시점에서 단일 Pod만 사용할 수 있도록 허용합니다. maxUnavailable
속성의 기본값을 변경하여 허용된 사용 불가능한 Pod의 양을 늘릴 수 있습니다.
PodDisruptionBudget
템플릿 예
6.2.39.1. PodDisruptionBudgetTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
metadata |
|
maxUnavailable |
자동 Pod 제거를 허용하는 사용할 수 없는 최대 Pod 수입니다. 제거 후 |
integer |
6.2.40. ContainerTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate
, entity OperatorTemplate
, KafkaBridgeTemplate
, KafkaClusterTemplate
, KafkaConnectTemplate
, KafkaExporterTemplate
, KafkaMirrorMakerTemplate
, ZookeeperClusterTemplate
ContainerTemplate
스키마 속성의 전체 목록
컨테이너에 대한 사용자 정의 보안 컨텍스트 및 환경 변수를 설정할 수 있습니다.
환경 변수는 env
속성 아래에 name
및 value
필드가 있는 오브젝트 목록으로 정의됩니다. 다음 예제에서는 Kafka 브로커 컨테이너에 설정된 두 가지 사용자 지정 환경 변수와 사용자 정의 보안 컨텍스트를 보여줍니다.
KAFKA_
접두사가 붙은 환경 변수는 AMQ Streams의 내부이며 피해야 합니다. AMQ Streams에서 이미 사용 중인 사용자 정의 환경 변수를 설정하면 무시되고 경고가 로그에 기록됩니다.
6.2.40.1. ContainerTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
env | 컨테이너에 적용해야 하는 환경 변수. |
| |
securityContext | 컨테이너의 보안 컨텍스트입니다. 자세한 내용은 core/v1 securitycontext에 대한 외부 설명서 를 참조하십시오. |
6.2.41. ContainerEnvVar schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 위치: ContainerTemplate
속성 | 설명 |
---|---|
name | 환경 변수 키입니다. |
string | |
value | 환경 변수 값입니다. |
string |
6.2.42. ZookeeperClusterSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
ZookeeperClusterSpec
스키마 속성의 전체 목록
ZooKeeper 클러스터를 구성합니다.
6.2.42.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config
속성을 사용하여 ZooKeeper 옵션을 키로 구성합니다.
표준 Apache ZooKeeper 구성이 제공되며 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
구성할 수 없는 구성 옵션은 다음과 관련이 있습니다.
- 보안(암호화, 인증 및 권한 부여)
- 리스너 구성
- 데이터 디렉터리 구성
- zookeeper 클러스터 구성
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
AMQ Streams에서 직접 관리하는 옵션을 제외하고 ZooKeeper 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 동일한 키가 있는 모든 구성 옵션은 허용되지 않습니다.
-
서버.
-
dataDir
-
dataLogDir
-
clientPort
-
authProvider
-
quorum.auth
-
requireClientAuthScheme
config
속성에 허용되지 않은 옵션이 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 출력됩니다. 다른 모든 지원 옵션은 ZooKeeper로 전달됩니다.
금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다.
ZooKeeper 구성 예
6.2.42.2. logging 링크 복사링크가 클립보드에 복사되었습니다!
zookeeper에는 구성 가능한 로거가 있습니다.
-
zookeeper.root.logger
zookeeper는 Apache log4j
로거 구현을 사용합니다.
로깅
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.42.3. ZookeeperClusterSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
replicas | 클러스터의 Pod 수입니다. |
integer | |
image | 포드의 Docker 이미지입니다. |
string | |
storage |
스토리지 구성(디스크). CamelCase로 유형은 지정된 오브젝트 내의 |
config | ZooKeeper 브로커 구성입니다. 다음 접두사가 있는 속성은 설정할 수 없습니다., dataDir, dataLogDir, clientPort, authProvider, authProvider, quorum.auth, requireClientAuthScheme, snapshot.trust.empty, standaloneEnabled, reconfigEnabled, 4lw.commands.whitelist, secureClientPort, ssl., serverCnxnFactory, sslQuorum(ssl.protocol, ssl.quorum.protocol, ssl.enabledProtocols, ssl.quorum.enabledProtocols, ssl.ciphersuites, ssl.quorum.ciphersuites, ssl.hostnameVerification 제외) SSL.quorum.hostnameVerification). |
map | |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
jvmOptions | Pod에 대한 JVM 옵션. |
jmxOptions | Zookeeper 노드를 위한 Options입니다. |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
logging |
ZooKeeper에 대한 로깅 구성입니다. 유형은 지정된 개체 내의 |
template |
ZooKeeper 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
6.2.43. ZookeeperClusterTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ZookeeperClusterSpec
속성 | 설명 |
---|---|
statefulset |
ZooKeeper |
Pod |
ZooKeeper |
clientService |
ZooKeeper 클라이언트 |
nodesService |
ZooKeeper 노드 |
persistentVolumeClaim |
모든 ZooKeeper |
podDisruptionBudget |
ZooKeeper |
zookeeperContainer | ZooKeeper 컨테이너용 템플릿입니다. |
serviceAccount | ZooKeeper 서비스 계정용 템플릿입니다. |
jmxSecret | Zookeeper 클러스터의 시크릿에 대한 템플릿입니다. |
podSet |
ZooKeeper |
6.2.44. EntityOperatorSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
속성 | 설명 |
---|---|
topicOperator | 주제 Operator 구성. |
userOperator | User Operator 구성. |
tlsSidecar | TLS 사이드카 구성입니다. |
template |
엔터티 Operator 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
6.2.45. EntityTopicOperatorSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: entityOperatorSpec
EntityTopicOperatorSpec
스키마 속성의 전체 목록
주제 Operator를 구성합니다.
6.2.45.1. logging 링크 복사링크가 클립보드에 복사되었습니다!
Topic Operator에는 구성 가능한 로거가 있습니다.
-
rootLogger.level
Topic Operator는 Apache log4j2
로거 구현을 사용합니다.
Kafka 리소스 Kafka
리소스의 entityOperator.topicOperator
필드에 logging
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j2.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.45.2. EntityTopicOperatorSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
watchedNamespace | Topic Operator가 조사해야 하는 네임스페이스입니다. |
string | |
image | Topic Operator에 사용할 이미지입니다. |
string | |
reconciliationIntervalSeconds | 정기적인 조정 간격입니다. |
integer | |
zookeeperSessionTimeoutSeconds | ZooKeeper 세션에 대한 시간 초과입니다. |
integer | |
startupProbe | Pod 시작 확인. |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
topicMetadataMaxAttempts | 주제 메타데이터를 가져오는 시도 횟수입니다. |
integer | |
logging |
로깅 구성. 유형은 지정된 개체 내의 |
jvmOptions | Pod에 대한 JVM 옵션. |
6.2.46. EntityUserOperatorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: entityOperatorSpec
EntityUserOperatorSpec
스키마 속성의 전체 목록
사용자 Operator를 구성합니다.
6.2.46.1. logging 링크 복사링크가 클립보드에 복사되었습니다!
User Operator에 구성 가능한 로거가 있습니다.
-
rootLogger.level
User Operator는 Apache log4j2
로거 구현을 사용합니다.
Kafka
리소스의 entityOperator.userOperator
필드에 logging
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j2.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.46.2. EntityUserOperatorSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
watchedNamespace | User Operator가 조사해야 하는 네임스페이스입니다. |
string | |
image | User Operator에 사용할 이미지입니다. |
string | |
reconciliationIntervalSeconds | 정기적인 조정 간격입니다. |
integer | |
zookeeperSessionTimeoutSeconds |
|
integer | |
secretPrefix | Secret 이름으로 사용할 KafkaUser 이름에 추가할 접두사입니다. |
string | |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
logging |
로깅 구성. 유형은 지정된 개체 내의 |
jvmOptions | Pod에 대한 JVM 옵션. |
6.2.47. TlsSidecar 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec
, EntityOperatorSpec
Pod에서 실행되는 컨테이너이지만 지원 목적을 제공하는 TLS 사이드카를 구성합니다. AMQ Streams에서 TLS 사이드카는 TLS를 사용하여 구성 요소와 ZooKeeper 간의 통신을 암호화하고 해독합니다.
TLS 사이드카는 Entity Operator에서 사용됩니다.
TLS 사이드카는 Kafka.spec.entityOperator
의 tlsSidecar
속성을 사용하여 구성됩니다.
TLS 사이드카는 다음과 같은 추가 옵션을 지원합니다.
-
image
-
resources
-
logLevel
-
readinessProbe
-
livenessProbe
resources
속성은 TLS 사이드카에 할당된 메모리 및 CPU 리소스를 지정합니다.
image
속성은 사용할 컨테이너 이미지를 구성합니다.
readinessProbe
및 livenessProbe
속성은 TLS 사이드카에 대한 상태 점검 프로브를 구성합니다.
logLevel
속성은 로깅 수준을 지정합니다. 다음과 같은 로깅 수준이 지원됩니다.
- emerg
- 경고
- Crit
- err
- 경고
- notice
- info
- debug
기본값은 notice 입니다.
TLS 사이드카 구성의 예
6.2.47.1. TlsSidecar 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
image | 컨테이너의 Docker 이미지입니다. |
string | |
livenessProbe | Pod 활성 검사입니다. |
logLevel |
TLS 사이드카의 로그 수준입니다. 기본값은 |
문자열 ([emerg, debug, crit, err, alert, notice, info] 중 하나) | |
readinessProbe | Pod 준비 상태 확인 |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
6.2.48. EntityOperatorTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: entityOperatorSpec
속성 | 설명 |
---|---|
Deployment |
엔터티 Operator 배포를 위한 템플릿 |
Pod |
엔터티 Operator |
topicOperatorContainer | Entity Topic Operator 컨테이너의 템플릿입니다. |
userOperatorContainer | Entity User Operator 컨테이너용 템플릿입니다. |
tlsSidecarContainer | Entity Operator TLS 사이드카 컨테이너용 템플릿입니다. |
serviceAccount | Entity Operator 서비스 계정에 대한 템플릿입니다. |
entityOperatorRole | Entity Operator 역할에 대한 템플릿입니다. |
topicOperatorRoleBinding | Entity Topic Operator RoleBinding에 대한 템플릿입니다. |
userOperatorRoleBinding | Entity Topic Operator RoleBinding에 대한 템플릿입니다. |
6.2.49. DeploymentTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용: CruiseControlTemplate
, entity OperatorTemplate
, KafkaBridgeTemplate
, KafkaConnectTemplate
, KafkaExporterTemplate
, KafkaMirrorMakerTemplate
DeploymentTemplate
스키마 속성의 전체 목록
deploymentStrategy
를 사용하여 배포 구성이 변경될 때 이전 Pod를 새 Pod로 교체하는 데 사용되는 전략을 지정합니다.
다음 값 중 하나를 사용합니다.
-
RollingUpdate
: Pod가 다운타임이 0으로 재시작됩니다. -
recreate
: 새 Pod가 생성되기 전에 Pod가 종료됩니다.
Recreate
배포 전략을 사용하면 예비 리소스가 필요하지 않은 이점이 있지만 단점은 애플리케이션 다운 타임입니다.
배포 전략을 Recreate
로 설정하는 예.
# ... template: deployment: deploymentStrategy: Recreate # ...
# ...
template:
deployment:
deploymentStrategy: Recreate
# ...
이 구성 변경으로 인해 롤링 업데이트가 발생하지 않습니다.
6.2.49.1. DeploymentTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
metadata | 리소스에 적용되는 메타데이터입니다. |
deploymentStrategy |
배포 구성 변경에 대한 Pod 교체 전략입니다. 유효한 값은 |
문자열([RollingUpdate, Recreate] 중 하나) |
6.2.50. certificateAuthority 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
클러스터 내에서 TLS 인증서가 사용되는 방법에 대한 구성입니다. 이는 클러스터 내의 내부 통신과 Kafka.spec.kafka.listeners.tls
를 통한 클라이언트 액세스에 사용되는 인증서에 모두 사용되는 인증서에 적용됩니다.
속성 | 설명 |
---|---|
generateCertificateAuthority | true인 경우 인증 기관 인증서가 자동으로 생성됩니다. 그렇지 않으면 사용자가 CA 인증서를 Secret에 제공해야 합니다. 기본값은 true입니다. |
boolean | |
generateSecretOwnerReference |
|
boolean | |
validityDays | 생성된 인증서의 수는 다음에 대해 유효해야 합니다. 기본값은 365입니다. |
integer | |
renewalDays |
인증서 갱신 기간의 일 수입니다. 이는 갱신 작업을 수행할 수 있는 인증서가 만료되기 전의 날입니다. |
integer | |
certificateExpirationPolicy |
|
문자열 ([replace-key, renew-certificate] 중 하나) |
6.2.51. CruiseControlSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
CruiseControlSpec
스키마 속성의 전체 목록
Cruise Control 클러스터를 구성합니다.
구성 옵션은 다음과 관련이 있습니다.
- 목표 구성
- 리소스 배포 목표에 대한 용량 제한
6.2.51.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config
속성을 사용하여 Cruise Control 옵션을 키로 구성합니다.
표준 크루즈 제어 구성을 제공할 수 있으며 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
구성할 수 없는 구성 옵션은 다음과 관련이 있습니다.
- 보안(암호화, 인증 및 권한 부여)
- Kafka 클러스터에 대한 연결
- 클라이언트 ID 구성
- zookeeper 연결
- 웹 서버 구성
- 자체 복구
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
AMQ Streams에서 직접 관리하는 옵션을 제외하고 Cruise Control 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 허용되지 않은 접두사 목록은 config
속성에 대한 설명을 참조하십시오.
config
속성에 허용되지 않은 옵션이 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 출력됩니다. 다른 모든 지원되는 옵션은 Cruise Control로 전달됩니다.
금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다. CORS(Cross-Origin Resource Sharing)를 사용하도록 웹 서버
속성을 구성할 수도 있습니다.
Cruise Control 구성의 예
6.2.51.2. CORS(Cross-Origin Resource Sharing) 링크 복사링크가 클립보드에 복사되었습니다!
CORS(Cross-Origin Resource Sharing)는 REST API에 대한 액세스를 제어하기 위한 HTTP 메커니즘입니다. 제한 사항은 액세스 방법 또는 클라이언트 애플리케이션의 시작 URL에 있을 수 있습니다. 구성의 webserver.http.cors.enabled
속성을 사용하여 Cruise Control에서 CORS를 활성화할 수 있습니다
. 활성화된 경우 CORS는 AMQ Streams와 다른 원래 URL이 있는 애플리케이션에서 Cruise Control REST API에 대한 읽기 액세스를 허용합니다. 이를 통해 애플리케이션은 지정된 원본의 애플리케이션에서 GET
요청을 사용하여 Cruise Control API를 통해 Kafka 클러스터에 대한 정보를 가져올 수 있습니다. 예를 들어 애플리케이션은 현재 클러스터 로드 또는 최신 최적화 제안에 대한 정보를 가져올 수 있습니다. POST
요청은 허용되지 않습니다.
Cruise Control과 함께 CORS를 사용하는 방법에 대한 자세한 내용은 Cruise Control CloudEvent의 REST API를 참조하십시오.
Cruise Control에 대한 CORS 활성화
Kafka.spec.cruiseControl.config
에서 CORS를 활성화하고 구성합니다.
6.2.51.3. Cruise Control REST API 보안 링크 복사링크가 클립보드에 복사되었습니다!
Cruise Control REST API는 HTTP Basic 인증 및 SSL로 보호되어 Kafka 브로커 해제와 같은 잠재적으로 안전하지 않은 Cruise Control 작업으로부터 클러스터를 보호합니다. AMQ Streams의 Cruise Control은 이러한 설정을 활성화된 경우에만 사용하는 것이 좋습니다.
그러나 다음 Cruise Control 구성을 지정하여 이러한 설정을 비활성화할 수 있습니다.
-
기본 제공 HTTP 기본 인증을 비활성화하려면
webserver.security.enable
을false
로 설정합니다. -
기본 제공 SSL을 비활성화하려면
webserver.ssl.enable
을false
로 설정합니다.
API 권한 부여, 인증 및 SSL을 비활성화하는 Cruise Control 구성
6.2.51.4. brokerCapacity 링크 복사링크가 클립보드에 복사되었습니다!
Cruise Control은 용량 제한을 사용하여 리소스 배포에 대한 최적화 목표를 손상시키는지 결정합니다. 이러한 유형의 목표는 다음과 같습니다.
-
DiskUsageDistributionGoal
- 디스크 사용률 배포 -
CpuUsageDistributionGoal
- CPU 사용률 배포 -
NetworkInboundUsageDistributionGoal
- 네트워크 인바운드 사용률 배포 -
NetworkOutboundUsageDistributionGoal
- 네트워크 아웃바운드 사용률 배포
Kafka.spec.cruiseControl
의 brokerCapacity
속성에서 Kafka 브로커 리소스에 대한 용량 제한을 지정합니다. 기본적으로 활성화되어 있으며 기본값을 변경할 수 있습니다. 다음 브로커 리소스에 대해 용량 제한을 설정할 수 있습니다.
-
cpu
- 밀리코어 또는 CPU 코어의 CPU 리소스(기본값: 1) -
inboundNetwork
- 초당 바이트 단위의 인바운드 네트워크 처리량(기본값: 10000KiB/s) -
outboundNetwork
- 초당 바이트 단위의 아웃 바운드 네트워크 처리량(기본값: 10000KiB/s)
네트워크 처리량의 경우 표준 OpenShift 바이트 단위(K, M, G)와 함께 정수 값을 사용하거나 초당 Ki, Mi, Gi(Ki, Mi, Gi)에 해당하는 2바이트의 2바이트(위력)를 사용합니다.
디스크 및 CPU 용량 제한은 AMQ Streams에 의해 자동으로 생성되므로 설정할 필요가 없습니다. CPU 목표를 사용할 때 정확한 리밸런스 제안을 보장하기 위해 Kafka.spec.kafka.resources
의 CPU 제한과 동일한 CPU 요청을 설정할 수 있습니다. 이렇게 하면 모든 CPU 리소스가 미리 예약되며 항상 사용할 수 있습니다. 이 구성을 통해 Cruise Control은 CPU 목표에 따라 리밸런스 제안을 준비할 때 CPU 사용률을 적절하게 평가할 수 있습니다. Kafka.spec.kafka.resources
의 CPU 제한과 동일한 CPU 요청을 설정할 수 없는 경우 동일한 정확도에 대해 CPU 용량을 수동으로 설정할 수 있습니다.
2바이트 단위를 사용한 Cruise Control brokerCapacity 구성의 예
6.2.51.5. 용량 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
브로커는 이기종 네트워크 또는 CPU 리소스가 있는 노드에서 실행될 수 있습니다. 이 경우 각 브로커에 대해 네트워크 용량 및 CPU 제한을 설정하는 덮어쓰기
를 지정합니다. 이 덮어쓰기를 사용하면 브로커 간에 정확한 균형을 조정할 수 있습니다. 다음 브로커 리소스에 대해 덮어쓰기 용량 제한을 설정할 수 있습니다.
-
cpu
- 밀리코어 또는 CPU 코어의 CPU 리소스(기본값: 1) -
inboundNetwork
- 초당 바이트 단위의 인바운드 네트워크 처리량(기본값: 10000KiB/s) -
outboundNetwork
- 초당 바이트 단위의 아웃 바운드 네트워크 처리량(기본값: 10000KiB/s)
Cruise Control 용량의 예는 2바이트 단위를 사용하여 구성을 재정의합니다.
자세한 내용은 BrokerCapacity 스키마 참조 를 참조하십시오.
6.2.51.6. 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
크루즈 컨트롤에는 자체 구성 가능한 로거가 있습니다.
-
rootLogger.level
cruise Control은 Apache log4j2
로거 구현을 사용합니다.
로깅
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.51.7. CruiseControlSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
image | 포드의 Docker 이미지입니다. |
string | |
tlsSidecar |
|
resources | Cruise Control 컨테이너를 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
livenessProbe | Cruise Control 컨테이너에 대한 Pod 활성 검사입니다. |
readinessProbe | Cruise Control 컨테이너에 대한 Pod 준비 상태 검사 |
jvmOptions | Cruise Control 컨테이너에 대한 JVM 옵션. |
logging |
Cruise Control을 위한 로깅 구성(Log4j 2). 유형은 지정된 개체 내의 |
template |
Cruise Control 리소스, |
brokerCapacity |
Cruise Control |
config | 크루즈 제어 구성. 전체 구성 옵션 목록은 https://github.com/linkedin/cruise-control/wiki/Configurations 에서 참조하십시오. 접두사가 있는 속성은 bootstrap.servers, client.id, zookeeper., network., network., security., failed.brokers.zk.path,webserver.http., webserver.urlprefix, webserver.path, webserver.accesslog., request.reason.required, request.reason.required, request.reason.required, metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.config.file, self.healing., kafka.broker.failure.detection.enable, topic.config.provider.class (예: ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, webserver.http.cors.enabled, webserver.http.cors.origin, webserver.http.cors.exposeheaders, webserver.security.enable, webserver.ssl.enable). |
map | |
metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
6.2.52. CruiseControlTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: CruiseControlSpec
속성 | 설명 |
---|---|
Deployment |
크루즈 제어 배포를 위한 템플릿 |
Pod |
Cruise Control |
apiService |
Cruise Control API |
podDisruptionBudget |
Cruise Control |
cruiseControlContainer | Cruise Control 컨테이너용 템플릿입니다. |
tlsSidecarContainer |
|
serviceAccount | Cruise Control 서비스 계정에 대한 템플릿입니다. |
6.2.53. BrokerCapacity 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: CruiseControlSpec
속성 | 설명 |
---|---|
disk |
|
string | |
cpuUtilization |
|
integer | |
cpu | 코어 또는 밀리코어의 CPU 리소스에 대한 브로커 용량입니다. 예를 들어 1, 1.500, 1500m입니다. 유효한 CPU 리소스 단위에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu 에서 참조하십시오. |
string | |
inboundNetwork | 초당 인바운드 네트워크 처리량을 위한 브로커 용량(바이트)입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
string | |
outboundNetwork | 초당 바이트 단위의 아웃바운드 네트워크 처리량을 위한 브로커 용량입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
string | |
덮어쓰기 |
개별 브로커에 대한 재정의 |
6.2.54. BrokerCapacityOverride 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: BrokerCapacity
속성 | 설명 |
---|---|
brokers | Kafka 브로커 목록(broker 식별자). |
정수 배열 | |
cpu | 코어 또는 밀리코어의 CPU 리소스에 대한 브로커 용량입니다. 예를 들어 1, 1.500, 1500m입니다. 유효한 CPU 리소스 단위에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu 에서 참조하십시오. |
string | |
inboundNetwork | 초당 인바운드 네트워크 처리량을 위한 브로커 용량(바이트)입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
string | |
outboundNetwork | 초당 바이트 단위의 아웃바운드 네트워크 처리량을 위한 브로커 용량입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
string |
6.2.55. KafkaExporterSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
속성 | 설명 |
---|---|
image | 포드의 Docker 이미지입니다. |
string | |
groupRegex |
수집할 소비자 그룹을 지정하는 정규식입니다. 기본값은 |
string | |
topicRegex |
수집할 주제를 지정하는 정규식입니다. 기본값은 |
string | |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
logging |
지정된 심각도 또는 위의 메시지만 기록합니다. 유효한 수준: [ |
string | |
enableSaramaLogging | Kafka Exporter에서 사용하는 Go 클라이언트 라이브러리인 Sarama 로깅을 활성화합니다. |
boolean | |
template | 배포 템플릿 및 포드 사용자 지정. |
livenessProbe | Pod 활동성 점검입니다. |
readinessProbe | Pod 준비 상태 점검. |
6.2.56. KafkaExporterTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaExporterSpec
속성 | 설명 |
---|---|
Deployment |
Kafka 내보내기 배포를 위한 템플릿 |
Pod |
Kafka 내보내기 |
service |
|
컨테이너 | Kafka 내보내기 컨테이너용 템플릿입니다. |
serviceAccount | Kafka Exporter 서비스 계정에 대한 템플릿입니다. |
6.2.57. KafkaStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: Kafka
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
리스너 | 내부 및 외부 리스너 주소입니다. |
clusterId | Kafka 클러스터 ID. |
string |
6.2.58. 조건 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaBridgeStatus
, KafkaConnectorStatus
, KafkaConnectStatus
, KafkaMirrorMaker2Status
, KafkaMirrorMakerStatus
, KafkaRebalanceStatus
, KafkaStatus
, KafkaTopicStatus
, KafkaUserStatus
속성 | 설명 |
---|---|
type | 리소스의 다른 조건을 구분하는 데 사용되는 조건의 고유 식별자입니다. |
string | |
status | 조건의 상태, 즉 True, False 또는 Unknown입니다. |
string | |
lastTransitionTime | 형식의 조건이 하나의 상태에서 다른 상태로 변경 된 마지막 시간입니다. 필요한 형식은 UTC 시간대의 'yyy-MM-ddTHH:mm:ssZ'입니다. |
string | |
reason | 조건의 마지막 전환 이유( CamelCase의 단일 단어). |
string | |
message | 조건의 마지막 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. |
string |
6.2.59. ListenerStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaStatus
속성 | 설명 |
---|---|
type |
|
string | |
name | 리스너의 이름입니다. |
string | |
주소 | 이 리스너의 주소 목록입니다. |
bootstrapServers |
이 리스너를 사용하여 Kafka 클러스터에 연결하기 위한 쉼표로 구분된 |
string | |
certificates |
지정된 리스너에 연결할 때 서버의 ID를 확인하는 데 사용할 수 있는 TLS 인증서 목록입니다. |
문자열 배열 |
6.2.60. ListenerAddress 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ListenerStatus
속성 | 설명 |
---|---|
host | Kafka 부트스트랩 서비스의 DNS 이름 또는 IP 주소입니다. |
string | |
port | Kafka 부트스트랩 서비스의 포트입니다. |
integer |
6.2.61. KafkaConnect 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | Kafka Connect 클러스터의 사양입니다. |
status | Kafka Connect 클러스터의 상태입니다. |
6.2.62. KafkaConnectSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnect
KafkaConnectSpec
스키마 속성의 전체 목록
Kafka Connect 클러스터를 구성합니다.
6.2.62.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config
속성을 사용하여 Kafka 옵션을 키로 구성합니다.
표준 Apache Kafka Connect 구성이 제공되며 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
구성할 수 없는 구성 옵션은 다음과 관련이 있습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 리스너 / REST 인터페이스 구성
- 플러그인 경로 구성
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
AMQ Streams에서 직접 관리하는 옵션을 제외하고 Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 동일한 키가 있는 구성 옵션은 허용되지 않습니다.
-
ssl.
-
sasl.
-
보안.
-
리스너
-
plugin.path
-
rest.
-
bootstrap.servers
config
속성에 허용되지 않은 옵션이 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 출력됩니다. 다른 모든 옵션은 Kafka Connect에 전달됩니다.
Cluster Operator는 제공된 config
오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Connect 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 KafkaConnect.spec.config
오브젝트의 구성을 수정한 다음 Cluster Operator가 모든 Kafka Connect 노드에 새 구성을 롤아웃할 수 있습니다.
일부 옵션에는 기본값이 있습니다.
-
기본값
connect-cluster
를 사용하여group.id
-
default 값이
connect-cluster-offsets
인offset.storage.topic
-
기본값
connect-cluster-configs
가 있는config.storage.topic
-
status.storage.topic
with default 값이connect-cluster-status
-
key.converter
with default valueorg.apache.kafka.connect.json.JsonConverter
-
value.converter
with default valueorg.apache.kafka.connect.json.JsonConverter
이러한 옵션은 KafkaConnect.spec.config
속성에 없는 경우 자동으로 구성됩니다.
금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하여 클라이언트 연결에 허용되는 세 가지 ssl
구성 옵션을 사용할 수 있습니다. 암호화 제품군은 보안 연결 및 데이터 전송을 위해 알고리즘을 결합합니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm
속성을 구성할 수도 있습니다.
Kafka Connect 구성 예
TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm
속성을 구성할 수도 있습니다.
6.2.62.2. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Connect에는 자체 구성 가능한 로거가 있습니다.
-
connect.root.logger.level
-
log4j.logger.org.reflections
추가 로거는 실행 중인 Kafka Connect 플러그인에 따라 추가됩니다.
curl 요청을 사용하여 Kafka 브로커 Pod에서 실행되는 Kafka Connect 로거의 전체 목록을 가져옵니다.
curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
Kafka Connect는 Apache log4j
로거 구현을 사용합니다.
로깅
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
구성되지 않은 모든 로거는 수준이 OFF
로 설정되어 있습니다.
Cluster Operator를 사용하여 Kafka Connect를 배포한 경우 Kafka Connect 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.
외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.62.3. KafkaConnectSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
버전 | Kafka Connect 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다. |
string | |
replicas | Kafka Connect 그룹의 Pod 수입니다. |
integer | |
image | 포드의 Docker 이미지입니다. |
string | |
bootstrapServers | 연결할 부트스트랩 서버입니다. 이 값은 < hostname > :_<port>_ 쌍의 쉼표로 구분된 목록으로 지정해야 합니다. |
string | |
tls | TLS 구성입니다. |
인증 |
Kafka Connect에 대한 인증 구성 유형은 지정된 오브젝트 내의 |
| |
config | Kafka Connect 구성입니다. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes(예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.protocol, ssl.protocols.protocols). |
map | |
resources | CPU 및 메모리 리소스 및 요청된 초기 리소스에 대한 최대 제한입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
jvmOptions | Pod에 대한 JVM 옵션. |
jmxOptions | ScanSetting 옵션. |
logging |
Kafka Connect의 로깅 구성입니다. 유형은 지정된 개체 내의 |
clientRackInitImage |
|
string | |
Rack |
|
tracing |
Kafka Connect에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 |
template |
Kafka Connect 및 Kafka MirrorECDHE 2 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
externalConfiguration | Secrets 또는 ConfigMaps의 데이터를 Kafka Connect Pod로 전달하여 커넥터를 구성하는 데 사용합니다. |
BUILD | Connect 컨테이너 이미지를 빌드하는 방법을 구성합니다. 선택 사항: |
metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
6.2.63. clientTLS 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2ClusterSpec
, KafkaMirrorMakerConsumerSpec
, KafkaMirrorMakerMakerProducerSpec
KafkaConnect, KafkaBridge, KafkaMirror, KafkaMirrorMaker2를 클러스터에 연결하기 위해 TLS 신뢰할 수 있는 인증서를 구성합니다.
6.2.63.1. trustedCertificates 링크 복사링크가 클립보드에 복사되었습니다!
trustedCertificates
속성을 사용하여 보안 목록을 제공합니다.
6.2.63.2. clientTLS 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
trustedCertificates | TLS 연결에 대한 신뢰할 수 있는 인증서입니다. |
6.2.64. KafkaClientAuthenticationTls schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2ClusterSpec
, KafkaMirrorMakerConsumerSpec
, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationTls
스키마 속성의 전체 목록
mTLS 인증을 구성하려면 type
속성을 tls
. mTLS에서 TLS 인증서를 사용하여 인증합니다.
6.2.64.1. certificateAndKey 링크 복사링크가 클립보드에 복사되었습니다!
인증서는 certificateAndKey
속성에 지정되며 항상 OpenShift 시크릿에서 로드됩니다. 시크릿의 인증서는 public 및 private의 두 가지 키 아래에 X509 형식으로 저장해야 합니다.
User Operator에서 생성한 보안을 사용하거나 인증에 사용되는 키로 자체 TLS 인증서 파일을 생성한 다음 파일에서 Secret
을 생성할 수 있습니다.
oc create secret generic MY-SECRET \ --from-file=MY-PUBLIC-TLS-CERTIFICATE-FILE.crt \ --from-file=MY-PRIVATE.key
oc create secret generic MY-SECRET \
--from-file=MY-PUBLIC-TLS-CERTIFICATE-FILE.crt \
--from-file=MY-PRIVATE.key
mTLS 인증은 TLS 연결에서만 사용할 수 있습니다.
mTLS 구성의 예
6.2.64.2. KafkaClientAuthenticationTls 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaClientAuthenticationScramSha256
,
, KafkaClientAuthentication
ScramSha512KafkaClientAuthenticationPlain
, KafkaClientAuthenticationOAuth
와의 사용을 구분하는 구분자입니다. KafkaClientAuthenticationTls
유형의 tls
값이 있어야 합니다.
속성 | 설명 |
---|---|
certificateAndKey |
인증서 및 개인 키 쌍을 보유한 보안에 대한 참조입니다. |
type |
|
string |
6.2.65. KafkaClientAuthenticationScramSha256 schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2ClusterSpec
, KafkaMirrorMakerConsumerSpec
, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationScramSha256
스키마 속성의 전체 목록
SASL 기반 SCRAM-SHA-256 인증을 구성하려면 type
속성을 scram-sha-256
으로 설정합니다. SCRAM-SHA-256 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.
6.2.65.1. 사용자 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름 속성에 사용자 이름을
지정합니다.
6.2.65.2. passwordSecret 링크 복사링크가 클립보드에 복사되었습니다!
passwordSecret
속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
User Operator가 생성한 시크릿을 사용할 수 있습니다.
필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용할 수 있습니다.
echo -n PASSWORD > MY-PASSWORD.txt
echo -n PASSWORD > MY-PASSWORD.txt
그런 다음 텍스트 파일에서 보안을
생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Kafka Connect에 대한 SCRAM-SHA-256 클라이언트 인증의 예
secretName
속성에는 Secret
의 이름이 포함되어 있으며, password
속성에는 암호가 시크릿
내에 저장되는 키 이름이 포함됩니다.
암호 속성에 실제 암호
를 지정하지 마십시오.
Kafka Connect에 대한 SASL 기반 SCRAM-SHA-256 클라이언트 인증 구성의 예
6.2.65.3. KafkaClientAuthenticationScramSha256 schema properties 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
passwordSecret |
암호가 있는 |
type |
|
string | |
사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
string |
6.2.66. PasswordSecretSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaClientAuthenticationOAuth
, KafkaClientAuthenticationPlain
, KafkaClientAuthenticationScramSha256
, KafkaClientAuthenticationScramSha512
속성 | 설명 |
---|---|
암호 | 암호가 저장된 시크릿의 키 이름입니다. |
string | |
secretName | 암호가 포함된 시크릿의 이름입니다. |
string |
6.2.67. KafkaClientAuthenticationScramSha512 schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2ClusterSpec
, KafkaMirrorMakerConsumerSpec
, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationScramSha512
스키마 속성의 전체 목록
SASL 기반 SCRAM-SHA-512 인증을 구성하려면 type
속성을 scram-sha-512
로 설정합니다. SCRAM-SHA-512 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.
6.2.67.1. 사용자 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름 속성에 사용자 이름을
지정합니다.
6.2.67.2. passwordSecret 링크 복사링크가 클립보드에 복사되었습니다!
passwordSecret
속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
User Operator가 생성한 시크릿을 사용할 수 있습니다.
필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용할 수 있습니다.
echo -n PASSWORD > MY-PASSWORD.txt
echo -n PASSWORD > MY-PASSWORD.txt
그런 다음 텍스트 파일에서 보안을
생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Kafka Connect에 대한 SCRAM-SHA-512 클라이언트 인증의 예
secretName
속성에는 Secret
의 이름이 포함되어 있으며, password
속성에는 암호가 시크릿
내에 저장되는 키 이름이 포함됩니다.
암호 속성에 실제 암호
를 지정하지 마십시오.
Kafka Connect에 대한 SASL 기반 SCRAM-SHA-512 클라이언트 인증 구성의 예
6.2.67.3. KafkaClientAuthenticationScramSha512 schema properties 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
passwordSecret |
암호가 있는 |
type |
|
string | |
사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
string |
6.2.68. KafkaClientAuthenticationPlain schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2ClusterSpec
, KafkaMirrorMakerConsumerSpec
, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationPlain
스키마 속성의 전체 목록
SASL 기반 PLAIN 인증을 구성하려면 type
속성을 plain
로 설정합니다. SASL PLAIN 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.
SASL PLAIN 메커니즘은 네트워크에서 사용자 이름과 암호를 일반 텍스트로 전송합니다. TLS 암호화가 활성화된 경우에만 SASL PLAIN 인증을 사용하십시오.
6.2.68.1. 사용자 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름 속성에 사용자 이름을
지정합니다.
6.2.68.2. passwordSecret 링크 복사링크가 클립보드에 복사되었습니다!
passwordSecret
속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
User Operator가 생성한 시크릿을 사용할 수 있습니다.
필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용합니다.
echo -n PASSWORD > MY-PASSWORD.txt
echo -n PASSWORD > MY-PASSWORD.txt
그런 다음 텍스트 파일에서 보안을
생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Kafka Connect에 대한 PLAIN 클라이언트 인증의 예
secretName
속성에는 Secret
의 이름이 포함되어 있으며 password
속성에는 암호가 시크릿
내에 저장된 키 이름이 포함됩니다.
암호 속성에 실제 암호
를 지정하지 마십시오.
SASL 기반 PLAIN 클라이언트 인증 구성의 예
6.2.68.3. KafkaClientAuthenticationPlain schema properties 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaClientAuthenticationPlain
유형과 KafkaClientAuthenticationTls
, KafkaClientAuthenticationScramSha256
, KafkaClientAuthentication Sha512 , KafkaClientAuthentication
OAuth 사용을 구분하는 판별자입니다. KafkaClientAuthenticationPlain
유형의 값이 plain
이어야 합니다.
속성 | 설명 |
---|---|
passwordSecret |
암호가 있는 |
type |
|
string | |
사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
string |
6.2.69. KafkaClientAuthenticationOAuth schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2ClusterSpec
, KafkaMirrorMakerConsumerSpec
, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationOAuth
스키마 속성의 전체 목록
OAuth 클라이언트 인증을 구성하려면 type
속성을 oauth
로 설정합니다.
OAuth 인증은 다음 옵션 중 하나를 사용하여 구성할 수 있습니다.
- 클라이언트 ID 및 시크릿
- 클라이언트 ID 및 새로 고침 토큰
- 액세스 토큰
- 사용자 이름 및 암호
- TLS
클라이언트 ID 및 시크릿
인증에 사용되는 클라이언트 ID 및 클라이언트 시크릿과 함께 tokenEndpointUri
속성에서 권한 부여 서버의 주소를 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고 클라이언트 ID 및 시크릿을 사용하여 인증하며 Kafka 브로커로 인증하는 데 사용할 액세스 토큰을 가져옵니다. clientSecret
속성에서 클라이언트 시크릿이 포함된 보안에 대한 링크를 지정합니다.
클라이언트 ID 및 클라이언트 보안을 사용한 OAuth 클라이언트 인증 예
필요한 경우 선택적으로 범위
및 대상
을 지정할 수 있습니다.
클라이언트 ID 및 새로 고침 토큰
OAuth 클라이언트 ID 및 새로 고침 토큰과 함께 tokenEndpointUri
속성에서 OAuth 서버의 주소를 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고, 클라이언트 ID 및 새로 고침 토큰을 사용하여 인증하고, Kafka 브로커와 함께 인증하는 데 사용할 액세스 토큰을 가져옵니다. refreshToken
속성에서 새로 고침 토큰이 포함된 보안에
대한 링크를 지정합니다.
클라이언트 ID 및 새로 고침 토큰을 사용한 OAuth 클라이언트 인증의 예
액세스 토큰
Kafka 브로커를 사용하여 인증에 사용되는 액세스 토큰을 직접 구성할 수 있습니다. 이 경우 tokenEndpointUri
를 지정하지 않습니다. accessToken
속성에서 액세스 토큰이 포함된 보안에
대한 링크를 지정합니다.
액세스 토큰만 사용하는 OAuth 클라이언트 인증 예
authentication: type: oauth accessToken: secretName: my-access-token-secret key: access-token
authentication:
type: oauth
accessToken:
secretName: my-access-token-secret
key: access-token
사용자 이름 및 암호
OAuth 사용자 이름 및 암호 구성은 OAuth 리소스 소유자 암호 부여 메커니즘을 사용합니다. 이 메커니즘은 더 이상 사용되지 않으며 클라이언트 자격 증명(ID 및 시크릿)을 사용할 수 없는 환경에서만 통합을 사용하도록 지원됩니다. 액세스 관리 시스템에서 다른 접근 방식을 지원하지 않거나 사용자 계정이 인증에 필요한 경우 사용자 계정을 사용해야 할 수 있습니다.
일반적인 방법은 클라이언트 애플리케이션을 나타내는 권한 부여 서버에 특수 사용자 계정을 생성하는 것입니다. 그런 다음 무작위로 생성된 긴 암호와 매우 제한된 권한 집합을 계정에 제공합니다. 예를 들어 계정은 Kafka 클러스터에만 연결할 수 있지만 다른 서비스를 사용하거나 사용자 인터페이스에 로그인할 수 없습니다.
새로 고침 토큰 메커니즘을 먼저 사용하는 것이 좋습니다.
토큰EndpointUri
속성에서 권한 부여 서버의 주소를 클라이언트 ID, 사용자 이름 및 인증에 사용되는 암호와 함께 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고, 사용자 이름, 암호, 클라이언트 ID 및 선택적으로 Kafka 브로커로 인증하는 데 사용할 액세스 토큰을 가져오는 클라이언트 시크릿을 사용하여 인증합니다.
passwordSecret
속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
일반적으로 공용 OAuth 클라이언트를 사용하여 clientId
를 구성해야 합니다. 기밀 OAuth 클라이언트를 사용하는 경우 clientSecret
을 구성해야 합니다.
사용자 이름을 사용한 OAuth 클라이언트 인증 예 및 공개 클라이언트와 암호
사용자 이름과 함께 기밀 클라이언트가 있는 암호를 사용한 OAuth 클라이언트 인증의 예
필요한 경우 선택적으로 범위
및 대상
을 지정할 수 있습니다.
TLS
HTTPS 프로토콜을 사용하여 OAuth 서버에 액세스하는 경우 이 인증서에서 사용하는 TLS 인증서가 신뢰할 수 있는 인증 기관에서 서명하고 해당 호스트 이름이 인증서에 나열되는 경우 추가 구성이 필요하지 않습니다.
OAuth 서버가 자체 서명된 인증서를 사용하거나 신뢰할 수 없는 인증 기관에서 서명한 인증서를 사용하는 경우 사용자 정의 리소스에서 신뢰할 수 있는 인증서 목록을 구성할 수 있습니다. tlsTrustedCertificates
속성에는 인증서가 저장되는 키 이름이 있는 시크릿 목록이 포함되어 있습니다. 인증서는 X509 형식으로 저장해야 합니다.
제공되는 TLS 인증서의 예
OAuth 클라이언트는 기본적으로 OAuth 서버의 호스트 이름이 인증서 제목 또는 대체 DNS 이름 중 하나와 일치하는지 확인합니다. 필요하지 않은 경우 호스트 이름 확인을 비활성화할 수 있습니다.
비활성화된 TLS 호스트 이름 확인의 예
6.2.69.1. KafkaClientAuthenticationOAuth 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type
속성은 KafkaClientAuthenticationOAuth
유형 사용을 KafkaClientAuthenticationTls
, KafkaClientAuthenticationScramSha256
, KafkaClientAuthentication Sha512 , KafkaClientAuthentication
Plain 과 구별하는 판별자입니다. KafkaClientAuthenticationOAuth
유형에 대한 oauth
값이 있어야 합니다.
속성 | 설명 |
---|---|
accessToken | 권한 부여 서버에서 가져온 액세스 토큰이 포함된 OpenShift 보안에 대한 링크입니다. |
accessTokenIsJwt |
액세스 토큰을 JWT로 처리할지 여부를 구성합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 |
boolean | |
대상 |
권한 부여 서버에 대해 인증할 때 사용할 OAuth 대상입니다. 일부 권한 부여 서버에는 대상을 명시적으로 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 다릅니다. 기본적으로 토큰 끝점 요청을 수행할 때 |
string | |
clientId | Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 끝점 URI를 사용하는 OAuth 클라이언트 ID입니다. |
string | |
clientSecret | Kafka 클라이언트가 OAuth 서버에 인증하고 토큰 끝점 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift 보안에 대한 링크입니다. |
connectTimeoutSeconds | 권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다. |
integer | |
disableTlsHostnameVerification |
TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
enableMetrics |
OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 |
boolean | |
httpRetries | 초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다. |
integer | |
httpRetryPauseMs | 실패한 HTTP 요청을 재시도하기 전에 일시 정지를 수행합니다. 설정되지 않은 경우 기본값은 일시 중지되지 않고 즉시 요청을 반복하는 것입니다. |
integer | |
maxTokenExpirySeconds | 액세스 토큰의 라이브 시간을 지정된 초 수로 설정하거나 제한합니다. 권한 부여 서버에서 불투명 토큰을 반환하는 경우 설정해야 합니다. |
integer | |
passwordSecret |
암호가 있는 |
readTimeoutSeconds | 권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다. |
integer | |
refreshToken | 권한 부여 서버에서 액세스 토큰을 가져오는 데 사용할 수 있는 새로 고침 토큰이 포함된 OpenShift 보안에 대한 링크입니다. |
scope |
권한 부여 서버에 대해 인증할 때 사용할 OAuth 범위입니다. 일부 권한 부여 서버를 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 달라집니다. 기본적으로 토큰 끝점 요청을 수행할 때 |
string | |
tlsTrustedCertificates | OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
tokenEndpointUri | 권한 부여 서버 토큰 끝점 URI입니다. |
string | |
type |
|
string | |
사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
string |
6.2.70. Jaegertracing 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
JaegerTracing
유형이 더 이상 사용되지 않습니다.
used in: KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
type
속성은 JaegerTracing
유형 사용을 OpenTelemetryTracing
과 구별하는 판별자입니다. JaegerTracing
유형의 jaeger
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.71. OpenTelemetryTracing 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaBridgeSpec
, KafkaConnectSpec
, KafkaMirrorMaker2Spec
, KafkaMirrorMakerSpec
type
속성은 OpenTelemetryTracing
유형 사용을 구분하는 구분자 입니다
. OpenTelemetry 유형의
.
opentelemetry
값이 있어야 합니다
속성 | 설명 |
---|---|
type |
|
string |
6.2.72. KafkaConnectTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaConnectSpec
, KafkaMirrorMaker2Spec
속성 | 설명 |
---|---|
Deployment |
Kafka Connect |
podSet |
Kafka Connect |
Pod |
Kafka Connect |
apiService |
Kafka Connect API |
headlessService |
Kafka Connect 헤드리스 |
connectContainer | Kafka Connect 컨테이너용 템플릿입니다. |
initContainer | Kafka init 컨테이너용 템플릿입니다. |
podDisruptionBudget |
Kafka Connect |
serviceAccount | Kafka Connect 서비스 계정에 대한 템플릿입니다. |
clusterRoleBinding | Kafka Connect ClusterRoleBinding용 템플릿입니다. |
buildPod |
Kafka Connect 빌드 |
buildContainer | Kafka Connect Build 컨테이너용 템플릿입니다. 빌드 컨테이너는 OpenShift에서만 사용됩니다. |
buildConfig | 새 컨테이너 이미지를 빌드하는 데 사용되는 Kafka Connect BuildConfig용 템플릿입니다. BuildConfig는 OpenShift에서만 사용됩니다. |
buildServiceAccount | Kafka Connect Build 서비스 계정용 템플릿. |
jmxSecret | Kafka Connect 클러스터 10.0.0.1 인증의 보안에 대한 템플릿입니다. |
6.2.73. BuildConfigTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectTemplate
속성 | 설명 |
---|---|
metadata |
|
pullSecret | 기본 이미지를 가져오는 데 필요한 인증 정보가 있는 컨테이너 레지스트리 시크릿입니다. |
string |
6.2.74. ExternalConfiguration 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaConnectSpec
, KafkaMirrorMaker2Spec
ExternalConfiguration
스키마 속성의 전체 목록
Kafka Connect 커넥터의 구성 옵션을 정의하는 외부 스토리지 속성을 구성합니다.
ConfigMaps 또는 Secrets를 Kafka Connect Pod에 환경 변수 또는 볼륨으로 마운트할 수 있습니다. 볼륨 및 환경 변수는 KafkaConnect.spec
의 externalConfiguration
속성에서 구성됩니다.
적용되면 커넥터를 개발할 때 환경 변수와 볼륨을 사용할 수 있습니다.
6.2.74.1. env 링크 복사링크가 클립보드에 복사되었습니다!
env
속성을 사용하여 하나 이상의 환경 변수를 지정합니다. 이러한 변수는 ConfigMap 또는 Secret의 값을 포함할 수 있습니다.
환경 변수의 값이 포함된 Secret의 예
사용자 정의 환경 변수의 이름은 KAFKA_
또는 STRIMZI_
로 시작할 수 없습니다.
시크릿의 값을 환경 변수에 마운트하려면 valueFrom
속성 및 secretKeyRef
를 사용합니다.
시크릿의 값으로 설정된 환경 변수 예
Secrets 마운트의 일반적인 사용 사례는 커넥터가 Amazon AWS와 통신하는 것입니다. 커넥터는 AWS_ACCESS_KEY_ID
및 AWS_SECRET_ACCESS_KEY
를 읽을 수 있어야 합니다.
ConfigMap의 값을 환경 변수에 마운트하려면 다음 예와 같이 valueFrom
속성의 configMapKeyRef
를 사용합니다.
ConfigMap의 값으로 설정된 환경 변수 예
6.2.74.2. volumes 링크 복사링크가 클립보드에 복사되었습니다!
볼륨을 사용하여 Kafka Connect pod에 ConfigMaps 또는 보안을 마운트합니다.
환경 변수 대신 볼륨을 사용하는 것은 다음 시나리오에서 유용합니다.
- Kafka Connect 커넥터를 구성하는 데 사용되는 속성 파일 마운트
- TLS 인증서를 사용한 신뢰 저장소 또는 키 저장소 마운트
볼륨은 경로 /opt/kafka/external-configuration/ <volume-name>의 Kafka Connect 컨테이너 내에 마운트됩니다
. 예를 들어 connector-config
라는 볼륨의 파일이 /opt/kafka/external-configuration/connector-config
디렉터리에 나타납니다.
구성 공급자는 구성 외부에서 값을 로드합니다. 공급자 메커니즘을 사용하여 Kafka Connect REST 인터페이스를 통해 제한된 정보를 전달하지 않도록 합니다.
-
FileConfigProvider
는 파일의 속성에서 구성 값을 로드합니다. -
DirectoryConfigProvider
는 디렉터리 구조 내의 별도의 파일에서 구성 값을 로드합니다.
사용자 정의 공급자를 포함하여 둘 이상의 공급자를 추가하려면 쉼표로 구분된 목록을 사용합니다. 사용자 지정 공급자를 사용하여 다른 파일 위치의 값을 로드할 수 있습니다.
FileConfigProvider
를 사용하여 속성 값 로드
이 예에서 mysecret
이라는 시크릿에는 데이터베이스 이름과 암호를 지정하는 커넥터 속성이 포함되어 있습니다.
데이터베이스 속성이 있는 보안의 예
Secret 및 FileConfigProvider
구성 공급자는 Kafka Connect 구성에 지정됩니다.
-
Secret은
connector-config
라는 볼륨에 마운트됩니다. -
FileConfigProvider
에는 별칭파일이
제공됩니다.
외부 볼륨을 시크릿의 값으로 설정된 예
Secret의 속성 값 자리 표시자는 커넥터 구성에서 참조됩니다. 자리 표시자 구조는 file:PATH-AND-FILE-NAME:PROPERTY
. FileConfigProvider
는 커넥터 구성의 마운트된 Secret에서 데이터베이스 사용자 이름 및 암호 속성 값을 읽고 추출합니다.
외부 값의 자리 표시자를 표시하는 커넥터 구성 예
DirectoryConfigProvider
를 사용하여 별도의 파일에서 속성 값을 로드
이 예에서 시크릿에는 별도의 파일에 TLS 신뢰 저장소 및 키 저장소 사용자 인증 정보가 포함되어 있습니다.
사용자 인증 정보가 있는 보안 예
Secret 및 DirectoryConfigProvider
구성 공급자는 Kafka Connect 구성에 지정됩니다.
-
Secret은
connector-config
라는 볼륨에 마운트됩니다. -
DirectoryConfigProvider
에는 별칭디렉터리
가 제공됩니다.
사용자 인증 정보 파일에 대한 외부 볼륨 세트 예
- 1
DirectoryConfigProvider
는 디렉터리에 있는 파일의 값을 제공합니다. 매개변수는config.providers
.${alias}.class 양식을 가져와서 config.providers의 별칭
을 사용합니다.
인증 정보의 자리 표시자는 커넥터 구성에서 참조됩니다. 자리 표시자 구조는 directory:PATH: 10.0.0.1-NAME
입니다. DirectoryConfigProvider
는 커넥터 구성에서 마운트된 Secret에서 인증 정보를 읽고 추출합니다.
외부 값의 자리 표시자를 표시하는 커넥터 구성 예
6.2.74.3. ExternalConfiguration 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
env | Kafka Connect Pod에서 환경 변수로 Secret 또는 ConfigMap의 데이터를 사용할 수 있도록 합니다. |
volumes | Kafka Connect Pod에서 볼륨으로 데이터를 사용할 수 있도록 Secret 또는 ConfigMap의 데이터를 제공합니다. |
6.2.75. ExternalConfigurationEnv 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ExternalConfiguration
속성 | 설명 |
---|---|
name |
Kafka Connect pod에 전달할 환경 변수의 이름입니다. 환경 변수의 이름은 |
string | |
valueFrom | Kafka Connect pod에 전달될 환경 변수의 값입니다. Secret 또는 ConfigMap 필드에 대한 참조로 전달할 수 있습니다. 필드는 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. |
6.2.76. ExternalConfigurationEnvVarSource schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 위치: ExternalConfigurationEnv
속성 | 설명 |
---|---|
configMapKeyRef | ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 설명서를 참조하십시오. |
secretKeyRef | 시크릿의 키에 대한 참조입니다. 자세한 내용은 core/v1 secretkeyselector의 외부 설명서를 참조하십시오. |
6.2.77. ExternalConfigurationVolumeSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ExternalConfiguration
속성 | 설명 |
---|---|
configMap | ConfigMap의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 configmapvolumesource에 대한 외부 설명서 를 참조하십시오. |
name | Kafka Connect Pod에 추가할 볼륨의 이름입니다. |
string | |
secret | 시크릿의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 secretvolumesource에 대한 외부 설명서 를 참조하십시오. |
6.2.78. 빌드 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectSpec
Kafka Connect 배포에 대한 추가 커넥터를 구성합니다.
6.2.78.1. output 링크 복사링크가 클립보드에 복사되었습니다!
추가 커넥터 플러그인을 사용하여 새 컨테이너 이미지를 빌드하려면 AMQ Streams에서 이미지를 푸시, 저장 및 가져올 수 있는 컨테이너 레지스트리가 필요합니다. AMQ Streams는 자체 컨테이너 레지스트리를 실행하지 않으므로 레지스트리를 제공해야 합니다. AMQ Streams는 프라이빗 컨테이너 레지스트리 및 Quay 또는 Docker Hub 와 같은 공개 레지스트리를 지원합니다. 컨테이너 레지스트리는 KafkaConnect
사용자 정의 리소스의 .spec.build.output
섹션에서 구성됩니다. 필요한 출력
구성은 docker
및 imagestream
의 두 가지 유형을 지원합니다.
Docker 레지스트리 사용
Docker 레지스트리를 사용하려면 유형을
docker
로 지정하고 새 컨테이너 이미지의 전체 이름으로 이미지
필드를 지정해야 합니다. 전체 이름은 다음과 같습니다.
- 레지스트리의 주소
- 포트 번호 (표준 포트에서 청취하는 경우)
- 새 컨테이너 이미지의 태그
유효한 컨테이너 이미지 이름의 예:
-
docker.io/my-org/my-image/my-tag
-
quay.io/my-org/my-image/my-tag
-
image-registry.image-registry.svc:5000/myproject/kafka-connect-build:latest
각 Kafka Connect 배포에서는 별도의 이미지를 사용해야 하며, 이는 가장 기본적인 수준에서 다른 태그를 의미할 수 있습니다.
레지스트리에 인증이 필요한 경우 pushSecret
을 사용하여 레지스트리 인증 정보로 시크릿 이름을 설정합니다. 보안의 경우 kubernetes.io/dockerconfigjson
유형과 .dockerconfigjson
파일을 사용하여 Docker 인증 정보를 포함합니다. 프라이빗 레지스트리에서 이미지를 가져오는 방법에 대한 자세한 내용은 기존 Docker 자격 증명을 기반으로 보안 생성을 참조하십시오.
출력
구성 예
OpenShift ImageStream 사용
Docker 대신 OpenShift ImageStream을 사용하여 새 컨테이너 이미지를 저장할 수 있습니다. Kafka Connect를 배포하기 전에 ImageStream을 수동으로 생성해야 합니다. ImageStream을 사용하려면 유형을
이미지 스트림
으로 설정하고, image
속성을 사용하여 ImageStream의 이름과 사용된 태그를 지정합니다. 예를 들면 my-connect-image-stream:latest
입니다.
출력
구성 예
6.2.78.2. plugins 링크 복사링크가 클립보드에 복사되었습니다!
커넥터 플러그인은 특정 유형의 외부 시스템에 연결하는 데 필요한 구현을 정의하는 파일 집합입니다. 컨테이너 이미지에 필요한 커넥터 플러그인은 KafkaConnect
사용자 정의 리소스의 .spec.build.plugins
속성을 사용하여 구성해야 합니다. 각 커넥터 플러그인에는 Kafka Connect 배포 내에서 고유한 이름이 있어야 합니다. 또한 플러그인 아티팩트가 나열되어야 합니다. 이러한 아티팩트는 AMQ Streams에서 다운로드하고 새 컨테이너 이미지에 추가되며 Kafka Connect 배포에서 사용됩니다. 커넥터 플러그인 아티팩트는 (de)serializers와 같은 추가 구성 요소도 포함할 수 있습니다. 각 커넥터 플러그인은 별도의 디렉터리로 다운로드되어 다른 커넥터와 해당 종속성이 적절하게 샌드 박스됩니다. 각 플러그인은 하나 이상의 아티팩트
로 구성해야 합니다.
두 개의 커넥터 플러그인
을 사용하는 플러그인 구성 예
- 1
- (필수) 커넥터 플러그인 및 아티팩트 목록.
AMQ Streams는 다음 유형의 아티팩트를 지원합니다.
- 직접 다운로드 및 사용되는 JAR 파일
- TGZ 아카이브, 다운로드 및 압축 해제
- ZIP 아카이브, 다운로드 및 압축 해제
- Maven 오케스트레이션을 사용하는 Maven 아티팩트
- 기타 아티팩트는 직접 다운로드하여 사용합니다.
AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고, 자동화된 빌드 및 Kafka Connect 배포에서 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다.
JAR 아티팩트 사용
JAR 아티팩트는 컨테이너 이미지에 다운로드하여 추가된 JAR 파일을 나타냅니다. JAR 아티팩트를 사용하려면 유형
속성을 ScanSetting 로
설정하고 url
속성을 사용하여 다운로드 위치를 지정합니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.
JAR 아티팩트 예
TGZ 아티팩트 사용
TGZ 아티팩트는 Gzip 압축을 사용하여 압축한 TAR 아카이브를 다운로드하는 데 사용됩니다. TGZ 아티팩트는 여러 다른 파일을 구성하는 경우에도 전체 Kafka Connect 커넥터를 포함할 수 있습니다. TGZ 아티팩트는 새 컨테이너 이미지를 빌드하는 동안 AMQ Streams에서 자동으로 다운로드 및 압축을 해제합니다. TGZ 아티팩트를 사용하려면 type
속성을 tgz
로 설정하고 url
속성을 사용하여 다운로드 위치를 지정합니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 압축을 풀고 새 컨테이너 이미지를 빌드하기 전에 체크섬을 확인합니다.
TGZ 아티팩트 예
ZIP 아티팩트 사용
ZIP 아티팩트는 ZIP 압축 아카이브를 다운로드하는 데 사용됩니다. 이전 섹션에서 설명한 TGZ 아티팩트와 동일한 방식으로 ZIP 아티팩트를 사용합니다. 유일한 차이점은
을 지정하는 것입니다.
type: tgz
.type 대신 zip
Maven 아티팩트 사용
Maven
아티팩트는 커넥터 플러그인 아티팩트를 Maven 좌표로 지정하는 데 사용됩니다. Maven 조정은 Maven 리포지토리에서 찾아서 가져올 수 있도록 플러그인 아티팩트와 종속성을 식별합니다.
커넥터 빌드 프로세스에서 컨테이너 이미지에 아티팩트를 추가하려면 Maven 리포지토리에 액세스할 수 있어야 합니다.
Maven 아티팩트 예
기타
아티팩트 사용
기타
아티팩트는 컨테이너 이미지에 다운로드하여 추가된 모든 종류의 파일을 나타냅니다. 결과 컨테이너 이미지에 아티팩트의 특정 이름을 사용하려면 fileName
필드를 사용합니다. 파일 이름을 지정하지 않으면 URL 해시를 기반으로 파일의 이름이 지정됩니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.
기타
아티팩트 예
6.2.78.3. 빌드 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
출력 출력 |
새로 빌드된 이미지를 저장할 위치를 설정합니다. 필수 항목입니다. 유형은 지정된 오브젝트 내의 |
resources | 빌드를 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
plugins | Kafka Connect에 추가해야 하는 커넥터 플러그인 목록입니다. 필수 항목입니다. |
|
6.2.79. DockerOutput 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 빌드
type
속성은 DockerOutput
유형과 ImageStreamOutput
유형을 구분하는 구분자입니다. DockerOutput
유형의 값 docker
가 있어야 합니다.
속성 | 설명 |
---|---|
image |
새로 빌드된 이미지에 태그를 지정하고 푸시하는 데 사용할 전체 이름입니다. 예: |
string | |
pushSecret | 새로 빌드된 이미지를 푸시하기 위한 인증 정보가 포함된 컨테이너 레지스트리 시크릿. |
string | |
additionalKanikoOptions | 새 Connect 이미지를 빌드할 때 Kaniko executor에 전달될 추가 옵션을 설정합니다. 허용되는 옵션은 --customPlatform, --insecure-pull, --insecure-registry, --log-registry, --log-timestamp, --registry-timestamp, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run입니다. 이러한 옵션은 Kaniko executor가 사용되는 OpenShift에서만 사용됩니다. OpenShift에서 무시됩니다. 옵션은 Kaniko GitHub 리포지토리에 설명되어 있습니다. 이 필드를 변경해도 Kafka Connect 이미지의 새 빌드가 트리거되지 않습니다. |
문자열 배열 | |
type |
|
string |
6.2.80. ImageStreamOutput schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 빌드
type
속성은 ImageStreamOutput
유형과 DockerOutput
유형 사용을 구분하는 구분자입니다. ImageStreamOutput
유형의 값 imagestream
이 있어야 합니다.
속성 | 설명 |
---|---|
image |
새로 빌드된 이미지가 푸시될 ImageStream의 이름 및 태그입니다. 예: |
string | |
type |
|
string |
6.2.81. 플러그인 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 빌드
속성 | 설명 |
---|---|
name |
커넥터 플러그인의 고유한 이름입니다. 는 커넥터 아티팩트가 저장되는 경로를 생성하는 데 사용됩니다. 이름은 KafkaConnect 리소스 내에서 고유해야 합니다. 이름은 다음과 같은 패턴을 따라야 합니다. |
string | |
아티팩트 | 이 커넥터 플러그인에 속하는 아티팩트 목록입니다. 필수 항목입니다. |
|
6.2.82. JarArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
속성 | 설명 |
---|---|
url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
string | |
sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
string | |
insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
boolean | |
type |
ScanSetting 여야 |
string |
6.2.83. TgzArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
속성 | 설명 |
---|---|
url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
string | |
sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
string | |
insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
boolean | |
type |
|
string |
6.2.84. ZipArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
속성 | 설명 |
---|---|
url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
string | |
sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
string | |
insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
boolean | |
type |
|
string |
6.2.85. MavenArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
type
속성은 JarArtifact
유형, Tgz
, Artifact
ZipArtifact
, OtherArtifact
의 사용을 구별하는 판별자입니다. MavenArtifact
유형의 경우 maven
값이 있어야 합니다.
속성 | 설명 |
---|---|
리포지터리 |
아티팩트를 다운로드할 Maven 리포지토리입니다. |
string | |
group |
Maven 그룹 ID. |
string | |
artifact |
Maven 아티팩트 ID. |
string | |
버전 |
Maven 버전 번호입니다. |
string | |
type |
|
string |
6.2.86. OtherArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
속성 | 설명 |
---|---|
url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
string | |
sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
string | |
fileName | 아티팩트를 저장할 이름입니다. |
string | |
insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
boolean | |
type |
|
string |
6.2.87. KafkaConnectStatus schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnect
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
url | Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다. |
string | |
connectorPlugins | 이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다. |
labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
string | |
replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
integer |
6.2.88. ConnectorPlugin 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectStatus
, KafkaMirrorMaker2Status
속성 | 설명 |
---|---|
type |
커넥터 플러그인의 유형입니다. 사용 가능한 유형은 |
string | |
버전 | 커넥터 플러그인의 버전입니다. |
string | |
클래스 | 커넥터 플러그인의 클래스입니다. |
string |
6.2.89. KafkaTopic 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | 주제의 사양입니다. |
status | 주제의 상태. |
6.2.90. KafkaTopicSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaTopic
속성 | 설명 |
---|---|
파티션 |
주제의 파티션 수입니다. 주제 생성 후에는 이 문제를 줄일 수 없습니다. 주제 생성 후 늘릴 수 있지만 특히 의미 체계 파티셔닝이 있는 주제의 경우 그 결과를 이해하는 것이 중요합니다. 이 값이 없는 경우 기본값은 |
integer | |
replicas |
항목에 보유해야 하는 복제본 수입니다. 이 기능이 없는 경우 |
integer | |
config | 주제 구성입니다. |
map | |
topicName | 주제의 이름입니다. 이 문제가 없는 경우 기본값은 주제의 metadata.name입니다. 주제 이름이 유효한 OpenShift 리소스 이름이 아닌 한 이 값을 설정하지 않는 것이 좋습니다. |
string |
6.2.91. KafkaTopicStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaTopic
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
topicName | 주제 이름. |
string |
6.2.92. KafkaUser 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | 사용자의 사양입니다. |
status | Kafka 사용자의 상태입니다. |
6.2.93. KafkaUserSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUser
속성 | 설명 |
---|---|
인증 |
이 Kafka 사용자에게 활성화된 인증 메커니즘입니다. 지원되는 인증 메커니즘은
인증은 선택 사항입니다. 인증이 구성되지 않은 경우 인증 정보가 생성되지 않습니다. 사용자에 대해 설정된 ACL 및 할당량은 SASL 인증에 적합한 |
| |
권한 부여 |
이 Kafka 사용자에 대한 권한 부여 규칙입니다. 유형은 지정된 오브젝트 내의 |
할당량 | 클라이언트가 사용하는 브로커 리소스를 제어하기 위한 요청에 대한 할당량입니다. Kafka 사용자 할당량에 대한 네트워크 대역폭 및 요청 속도 할당량은 http://kafka.apache.org/documentation/#design_quotas 에서 확인할 수 있습니다. |
template |
Kafka 사용자 시크릿이 생성되는 방법을 지정하는 템플릿입니다. |
6.2.94. KafkaUserTlsClientAuthentication 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type
속성은 KafkaUserTlsClientAuthentication
유형과 KafkaUserTlsExternalClientAuthentication
, KafkaUserScramSha512
ClientClientAuthentication 사용을 구분하는 구분자입니다. KafkaUserTlsClientAuthentication
유형의 값 tls
가 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.95. KafkaUserTlsExternalClientAuthentication schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type
속성은 KafkaUserTlsExternalClientAuthentication
유형인 KafkaUserTlsClientAuthentication
, KafkaUserScramSha512
ClientClientAuthentication 유형을 구분하는 구분자입니다. KafkaUserTlsExternalClientAuthentication
유형에 대한 tls-external
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.96. KafkaUserScramSha512ClientAuthentication 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type
속성은 KafkaUserScramSha512ClientAuthentication
유형인 KafkaUserTlsClientAuthentication
, KafkaUserTlsExternalClientAuthentication
유형을 구분하는 판별자입니다. KafkaUserScramSha512ClientAuthentication
유형의 scram-sha-512
가 있어야 합니다.
속성 | 설명 |
---|---|
암호 | 사용자 암호를 지정합니다. 설정되지 않은 경우 User Operator가 새 암호가 생성됩니다. |
type |
|
string |
6.2.97. 암호 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaUserScramSha512ClientAuthentication
속성 | 설명 |
---|---|
valueFrom | 암호를 읽을 시크릿입니다. |
6.2.98. PasswordSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 중인 위치: 암호
속성 | 설명 |
---|---|
secretKeyRef | 리소스의 네임스페이스에서 시크릿 키를 선택합니다. 자세한 내용은 core/v1 secretkeyselector의 외부 설명서를 참조하십시오. |
6.2.99. KafkaUserAuthorizationSimple 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type
속성은 나중에 추가할 수 있는 KafkaUserAuthorizationSimple
유형의 사용을 구분하는 구분자입니다. KafkaUserAuthorizationSimple
유형에 대해 간단한
값이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
ACL | 이 사용자에게 적용해야 하는 ACL 규칙 목록입니다. |
|
6.2.100. AclRule 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaUserAuthorizationSimple
브로커가 AclAuthorizer
를 사용하는 경우 KafkaUser
에 대한 액세스 제어 규칙을 구성합니다.
권한 부여가 있는 KafkaUser
구성 예
6.2.100.1. resource 링크 복사링크가 클립보드에 복사되었습니다!
resource
속성을 사용하여 규칙이 적용되는 리소스를 지정합니다.
간단한 권한 부여는 type
속성에 지정된 네 가지 리소스 유형을 지원합니다.
-
주제(주체
) -
소비자 그룹 (
그룹
) -
클러스터(
클러스터
) -
TransactionId(
TransactionId
)
주제, 그룹 및 트랜잭션 ID 리소스의 경우 규칙이 name 속성에 적용되는 리소스의 이름을
지정할 수 있습니다.
클러스터 유형 리소스에는 이름이 없습니다.
이름은 patternType
속성을 사용하여 리터럴
또는 접두사
로 지정됩니다.
-
리터럴 이름은
name
필드에 지정된 대로 정확하게 사용됩니다. -
접두사 이름은
name
값을 접두사로 사용한 다음 해당 값으로 시작하는 이름이 있는 모든 리소스에 규칙을 적용합니다.
patternType
이 리터럴
로 설정되는 경우 해당 규칙이 모든 리소스에 적용되는 것을 나타내기 위해 이름을 *
로 설정할 수 있습니다.
사용자가 모든 주제의 메시지를 읽을 수 있는 ACL 규칙의 예
6.2.100.2. type 링크 복사링크가 클립보드에 복사되었습니다!
작업을
(현재 지원되지 않음)하는 규칙 허용하거나
거부유형입니다
.
type
필드는 선택 사항입니다. type
이 지정되지 않은 경우 ACL 규칙은 허용
규칙으로 처리됩니다.
6.2.100.3. 작업 링크 복사링크가 클립보드에 복사되었습니다!
허용 또는 거부할 규칙에 대한 작업
목록을 지정합니다.
지원되는 작업은 다음과 같습니다.
- read
- write
- delete
- 변경
- describe
- All
- IdempotentWrite
- ClusterAction
- 개발
- AlterConfigs
- DescribeConfigs
특정 작업만 각 리소스에 대해 작동합니다.
AclAuthorizer
, ACL 및 지원되는 리소스 및 작업 조합에 대한 자세한 내용은 권한 부여 및 ACL을 참조하십시오.
6.2.100.4. host 링크 복사링크가 클립보드에 복사되었습니다!
host
속성을 사용하여 규칙이 허용 또는 거부되는 원격 호스트를 지정합니다.
별표(*
)를 사용하여 모든 호스트에서 작업을 허용하거나 거부합니다. host
필드는 선택 사항입니다. host
를 지정하지 않으면 기본적으로 *
값이 사용됩니다.
6.2.100.5. AclRule 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
host | ACL 규칙에 설명된 작업이 허용 또는 거부되는 호스트입니다. |
string | |
작업 |
|
문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs]) | |
작업 | 허용 또는 거부할 작업 목록입니다. 지원되는 작업은 읽기, 쓰기, 만들기, 삭제, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite 및 All입니다. |
문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs]) 배열 | |
resource |
지정된 ACL 규칙이 적용되는 리소스를 나타냅니다. 유형은 [topic, group, cluster, transactionalId] 중 하나여야 하는 지정된 오브젝트 내의 |
| |
type |
규칙의 유형입니다. 현재 지원되는 유일한 유형은 |
문자열([allow, deny] 중 하나) |
6.2.101. AclRuleTopicResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type
속성은 AclRuleTopicResource
유형과 AclRuleGroupResource
, AclRuleClusterResource
, AclRuleTransactionalIdResource
유형을 구분하는 구분자입니다. AclRuleTopicResource
유형의 값 항목이 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
name |
지정된 ACL 규칙이 적용되는 리소스 이름입니다. |
string | |
patternType |
리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 |
문자열 ([prefix, literal] 중 하나) |
6.2.102. AclRuleGroupResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type
속성은 AclRuleGroupResource
유형 사용을 AclRuleTopicResource
, AclRuleClusterResource
, AclRuleTransactionalIdResource
와 구별하는 판별자입니다. AclRuleGroupResource
유형의 값 그룹이
있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string | |
name |
지정된 ACL 규칙이 적용되는 리소스 이름입니다. |
string | |
patternType |
리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 |
문자열 ([prefix, literal] 중 하나) |
6.2.103. AclRuleClusterResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type
속성은 AclRuleClusterResource
유형 사용을 AclRuleTopicResource
, AclRuleGroupResource
, AclRuleTransactionalIdResource
와 구분하는 구분자입니다. AclRuleClusterResource
유형의 값 cluster
가 있어야 합니다.
속성 | 설명 |
---|---|
type |
|
string |
6.2.104. AclRuleTransactionalIdResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type
속성은 AclRuleTransactionalIdResource
유형과 AclRuleTopicResource
, AclRuleGroupResource
, AclRuleClusterResource
유형을 구분하는 판별자입니다. AclRuleTransaction
유형의 TransactionId 값이 있어야 합니다.
alId
Resource
속성 | 설명 |
---|---|
type |
|
string | |
name |
지정된 ACL 규칙이 적용되는 리소스 이름입니다. |
string | |
patternType |
리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 |
문자열 ([prefix, literal] 중 하나) |
6.2.105. KafkaUserQuotas 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
Kafka를 사용하면 사용자가 클라이언트에서 리소스 사용을 제어하도록 할당량을
설정할 수 있습니다.
6.2.105.1. 할당량 링크 복사링크가 클립보드에 복사되었습니다!
다음 유형의 할당량을 사용하도록 클라이언트를 구성할 수 있습니다.
- 네트워크 사용량 할당량은 할당량을 공유하는 각 클라이언트 그룹의 바이트 속도 임계값을 지정합니다.
- CPU 사용률 할당량은 클라이언트의 브로커 요청 창을 지정합니다. 창은 클라이언트가 요청을 할 수 있는 시간의 백분율입니다. 클라이언트는 브로커의 I/O 스레드 및 네트워크 스레드를 요청합니다.
- 파티션 변경 할당량은 클라이언트가 초당 만들 수 있는 파티션 변경의 수를 제한합니다.
파티션 변경 할당량을 사용하면 Kafka 클러스터가 동시 주제 작업으로 압도되지 않습니다. 파티션 변경은 다음 유형의 사용자 요청에 따라 수행됩니다.
- 새 주제를 위한 파티션 생성
- 기존 항목에 파티션 추가
- 주제에서 파티션 삭제
파티션 변경 할당량을 구성하여 사용자 요청에 허용되는 변경 비율을 제어할 수 있습니다.
Kafka 클라이언트에 할당량을 사용하는 것이 여러 가지 상황에서 유용할 수 있습니다. 너무 높은 속도로 요청을 보내는 잘못 구성된 Kafka 생산자를 고려하십시오. 이러한 잘못된 구성으로 인해 다른 클라이언트에 대한 서비스 거부가 발생할 수 있으므로 문제가 있는 클라이언트가 차단되어야 합니다. 네트워크 제한 할당량을 사용하면 이러한 상황이 다른 클라이언트에 큰 영향을 미치지 않도록 할 수 있습니다.
AMQ Streams는 사용자 수준 할당량을 지원하지만 클라이언트 수준 할당량은 지원하지 않습니다.
Kafka 사용자 할당량 구성의 예
Kafka 사용자 할당량에 대한 자세한 내용은 Apache Kafka 설명서 를 참조하십시오.
6.2.105.2. KafkaUserQuotas 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
consumerByteRate | 그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹에서 브로커에서 가져올 수 있는 초당 최대 바이트 수에 대한 할당량입니다. 각broker별로 정의됩니다. |
integer | |
controllerMutationRate | Create topics request, create partitions request 및 delete topics request에 대한 변경이 허용되는 비율에 대한 할당량입니다. 속도는 생성 또는 삭제된 파티션 수에 따라 누적됩니다. |
number | |
producerByteRate | 그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹이 브로커에 게시할 수 있는 초당 최대 바이트 수에 대한 할당량입니다. 각broker별로 정의됩니다. |
integer | |
requestPercentage | 각 클라이언트 그룹의 최대 CPU 사용률에 대한 할당량이 네트워크 및 I/O 스레드의 백분율로 사용됩니다. |
integer |
6.2.106. KafkaUserTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
KafkaUserTemplate
스키마 속성의 전체 목록
User Operator에서 생성한 보안에 대한 추가 레이블 및 주석을 지정합니다.
KafkaUserTemplate
표시 예
6.2.106.1. KafkaUserTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
secret |
KafkaUser 리소스에 대한 템플릿입니다. 템플릿을 사용하면 암호 또는 TLS 인증서가 있는 |
6.2.107. KafkaUserStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUser
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
사용자 이름 | 사용자 이름. |
string | |
secret |
인증 정보가 저장되는 |
string |
6.2.108. KafkaMirrorMaker 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMaker
유형이 더 이상 사용되지 않습니다. 대신 KafkaMirrorMaker2
를 사용하십시오.
속성 | 설명 |
---|---|
spec | Kafka MirrorMaker 사양입니다. |
status | Kafka MirrorMaker의 상태입니다. |
6.2.109. KafkaMirrorMakerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaMirrorMaker
KafkaMirrorMakerSpec
스키마 속성의 전체 목록
Kafka MirrorMaker를 구성합니다.
6.2.109.1. include 링크 복사링크가 클립보드에 복사되었습니다!
include
속성을 사용하여 Kafka MirrorMaker가 소스에서 대상 Kafka 클러스터로 미러링하는 주제 목록을 구성합니다.
이 속성을 사용하면 단일 주제 이름으로 복잡한 패턴에 이르기까지 가장 간단한 경우의 정규식을 사용할 수 있습니다. 예를 들어 A|B
또는 모든 주제를 사용하여 A|B 또는 모든 주제를 사용하여 A 및 B를 미러링할 수 있습니다. 쉼표로 구분된 여러 정규 표현식을 Kafka MirrorMaker로 전달할 수도 있습니다.
6.2.109.2. KafkaMirrorMakerConsumerSpec and KafkaMirrorMakerProducerSpec 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMakerConsumerSpec
및 KafkaMirrorMakerProducerSpec
을 사용하여 소스(consumer) 및 대상(producer) 클러스터를 구성합니다.
Kafka MirrorMaker는 항상 두 개의 Kafka 클러스터(소스 및 대상)와 함께 작동합니다. 연결을 설정하기 위해 소스 및 대상 Kafka 클러스터의 부트스트랩 서버는 HOSTNAME:PORT
쌍의 쉼표로 구분된 목록으로 지정됩니다. 쉼표로 구분된 각 목록에는 하나 이상의 Kafka 브로커 또는 HOSTNAME:PORT
쌍으로 지정된 Kafka 브로커를 가리키는 서비스가
포함되어 있습니다.
6.2.109.3. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka MirrorMaker에는 구성 가능한 로거가 있습니다.
-
mirrormaker.root.logger
MirrorMaker는 Apache log4j
로거 구현을 사용합니다.
로깅
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
인라인
및 외부
로깅의 예는 다음과 같습니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.109.4. KafkaMirrorMakerSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
버전 | Kafka MirrorMaker 버전입니다. 기본값은 3.4.0입니다. 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 이해하려면 설명서를 참조하십시오. |
string | |
replicas |
|
integer | |
image | 포드의 Docker 이미지입니다. |
string | |
consumer | 소스 클러스터 구성. |
프로듀서 | 대상 클러스터 구성. |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
whitelist |
|
string | |
include |
미러링에 포함된 주제 목록입니다. 이 옵션을 사용하면 Java 스타일 정규식을 사용하는 모든 정규식이 허용됩니다. |
string | |
jvmOptions | Pod에 대한 JVM 옵션. |
logging |
MirrorMaker의 로깅 구성입니다. 유형은 지정된 개체 내의 |
metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
tracing |
Kafka MirrorMaker에서 추적의 구성 유형은 지정된 오브젝트 내의 |
template |
Kafka MirrorMaker 리소스, |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
6.2.110. KafkaMirrorMakerConsumerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMakerSpec
KafkaMirrorMakerConsumerSpec
스키마 속성의 전체 목록
MirrorMaker 소비자를 구성합니다.
6.2.110.1. numStreams 링크 복사링크가 클립보드에 복사되었습니다!
consumer.numStreams
속성을 사용하여 소비자의 스트림 수를 구성합니다.
소비자 스레드 수를 늘려 미러링 주제의 처리량을 늘릴 수 있습니다. 소비자 스레드는 Kafka MirrorMaker에 대해 지정된 소비자 그룹에 속합니다. 주제 파티션은 병렬로 메시지를 사용하는 소비자 스레드 전체에 할당됩니다.
6.2.110.2. offsetCommitInterval 링크 복사링크가 클립보드에 복사되었습니다!
consumer.offsetCommitInterval
속성을 사용하여 소비자에 대한 오프셋 자동 커밋 간격을 구성합니다.
Kafka MirrorMaker 소스 Kafka 클러스터의 데이터를 사용한 후 오프셋이 커밋되는 일반 시간 간격을 지정할 수 있습니다. 시간 간격은 기본값인 60,000을 사용하여 밀리초 단위로 설정됩니다.
6.2.110.3. config 링크 복사링크가 클립보드에 복사되었습니다!
consumer.config
속성을 사용하여 소비자에 대한 Kafka 옵션을 구성합니다.
config
속성에는 다음 JSON 유형 중 하나로 설정된 값이 있는 Kafka MirrorMaker 소비자 구성 옵션이 포함되어 있습니다.
- 문자열
- 숫자
- 부울
TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm
속성을 구성할 수도 있습니다.
예외
소비자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams에서 직접 직접 구성하고 관리하는 옵션은 다음과 같은 예외가 있습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 소비자 그룹 식별자
- 인터셉터
특히 다음 문자열 중 하나와 동일한 키가 있는 모든 구성 옵션은 허용되지 않습니다.
-
bootstrap.servers
-
group.id
-
interceptor.classes
-
SSL.
(특정 예외는 포함하지 않음) -
sasl.
-
보안.
config
속성에 허용되지 않은 옵션이 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 출력됩니다. 다른 모든 옵션은 Kafka MirrorMaker에 전달됩니다.
Cluster Operator는 제공된 구성
오브젝트에서 키 또는 값을 검증하지 않습니다. 잘못된 구성이 제공되면 Kafka MirrorMaker가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 KafkaMirrorMaker.spec.consumer.config
오브젝트의 구성이 수정되어야 하며 Cluster Operator는 Kafka MirrorMaker에 대한 새 구성을 롤아웃합니다.
6.2.110.4. groupId 링크 복사링크가 클립보드에 복사되었습니다!
consumer.groupId
속성을 사용하여 소비자 그룹 식별자를 구성합니다.
Kafka MirrorMaker는 Kafka 소비자를 사용하여 다른 Kafka 소비자 클라이언트와 마찬가지로 메시지를 소비합니다. 소스 Kafka 클러스터에서 사용된 메시지는 대상 Kafka 클러스터로 미러링됩니다. 사용자가 파티션 할당을 위해 소비자 그룹의 일부여야 하므로 그룹 식별자가 필요합니다.
6.2.110.5. KafkaMirrorMakerConsumerSpec schema properties 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
numStreams | 생성할 소비자 스트림 스레드 수를 지정합니다. |
integer | |
offsetCommitInterval | ms에서 오프셋 자동 커밋 간격을 지정합니다. 기본값은 60000입니다. |
integer | |
bootstrapServers | Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다. |
string | |
groupId | 이 소비자가 속하는 소비자 그룹을 식별하는 고유한 문자열입니다. |
string | |
인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
| |
config | MirrorMaker 소비자 구성. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, group.id, sasl., security., security., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
map | |
tls | MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다. |
6.2.111. KafkaMirrorMakerProducerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMakerSpec
KafkaMirrorMakerProducerSpec
스키마 속성의 전체 목록
MirrorMaker 생산자를 구성합니다.
6.2.111.1. abortOnSendFailure 링크 복사링크가 클립보드에 복사되었습니다!
producer.abortOnSendFailure
속성을 사용하여 프로듀서의 메시지 전송 실패를 처리하는 방법을 구성합니다.
기본적으로 Kafka MirrorMaker에서 Kafka 클러스터로 메시지를 보낼 때 오류가 발생하면 다음을 수행합니다.
- Kafka MirrorMaker 컨테이너가 OpenShift에서 종료되었습니다.
- 그런 다음 컨테이너가 다시 생성됩니다.
abortOnSendFailure
옵션이 false
로 설정된 경우 메시지 전송 오류가 무시됩니다.
6.2.111.2. config 링크 복사링크가 클립보드에 복사되었습니다!
producer.config
속성을 사용하여 생산자에 대한 Kafka 옵션을 구성합니다.
config
속성에는 다음 JSON 유형 중 하나에 설정된 값이 있는 Kafka MirrorMaker 생산자 구성 옵션이 포함되어 있습니다.
- 문자열
- 숫자
- 부울
TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm
속성을 구성할 수도 있습니다.
예외
생산자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams에서 직접 직접 구성하고 관리하는 옵션은 다음과 같은 예외가 있습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 인터셉터
특히 다음 문자열 중 하나와 동일한 키가 있는 모든 구성 옵션은 허용되지 않습니다.
-
bootstrap.servers
-
interceptor.classes
-
SSL.
(특정 예외는 포함하지 않음) -
sasl.
-
보안.
config
속성에 허용되지 않은 옵션이 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 출력됩니다. 다른 모든 옵션은 Kafka MirrorMaker에 전달됩니다.
Cluster Operator는 제공된 구성
오브젝트에서 키 또는 값을 검증하지 않습니다. 잘못된 구성이 제공되면 Kafka MirrorMaker가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 KafkaMirrorMaker.spec.producer.config
오브젝트의 구성이 수정되어야 하며 Cluster Operator는 Kafka MirrorMaker에 대한 새 구성을 롤아웃합니다.
6.2.111.3. KafkaMirrorMakerProducerSpec schema properties 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
bootstrapServers | Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다. |
string | |
abortOnSendFailure |
실패한 전송에서 종료하도록 MirrorMaker를 설정하는 플래그입니다. 기본값은 |
boolean | |
인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
| |
config | MirrorMaker 생산자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, sasl., security., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
map | |
tls | MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다. |
6.2.112. KafkaMirrorMakerTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMakerSpec
속성 | 설명 |
---|---|
Deployment |
Kafka MirrorMaker |
Pod |
Kafka MirrorMaker |
podDisruptionBudget |
Kafka MirrorMaker |
mirrorMakerContainer | Kafka MirrorMaker 컨테이너용 템플릿입니다. |
serviceAccount | Kafka MirrorMaker 서비스 계정용 템플릿입니다. |
6.2.113. KafkaMirrorMakerStatus schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaMirrorMaker
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
string | |
replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
integer |
6.2.114. KafkaBridge 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | Kafka 브리지의 사양입니다. |
status | Kafka 브리지의 상태입니다. |
6.2.115. KafkaBridgeSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridge
Kafka 브리지 클러스터를 구성합니다.
구성 옵션은 다음과 관련이 있습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 소비자 구성
- 생산자 구성
- HTTP 구성
6.2.115.1. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Bridge에는 구성 가능한 자체 로거가 있습니다.
-
logger.bridge
-
logger.<operation-id>
로거에서 <
> 로거를 사용하여 특정 작업에 대한 로그 수준을 설정합니다.
operation-id
>를 교체할 수 있습니다. <operation-id
-
createConsumer
-
deleteConsumer
-
subscribe
-
unsubscribe
-
poll
-
assign
-
commit
-
send
-
sendToPartition
-
seekToBeginning
-
seekToEnd
-
search
-
healthy
-
Ready
-
openapi
각 작업은 OpenAPI 사양에 따라 정의되며 브리지가 HTTP 클라이언트에서 요청을 수신하는 해당 API 끝점이 있습니다. 각 끝점의 로그 수준을 변경하여 수신 및 발신 HTTP 요청에 대한 세분화된 로깅 정보를 생성할 수 있습니다.
각 로거는 이름을
http.openapi.operation. <operation-id>로 할당하도록 구성해야 합니다
. 예를 들어 송신
작업 로거에 대한 로깅 수준을 구성한다는 것은 다음을 정의하는 것을 의미합니다.
logger.send.name = http.openapi.operation.send logger.send.level = DEBUG
logger.send.name = http.openapi.operation.send
logger.send.level = DEBUG
Kafka Bridge는 Apache log4j2
로거 구현을 사용합니다. 로거는 log4j2.properties
파일에 정의되며, 이 파일에는 정상
및 준비된
엔드포인트에 대해 다음과 같은 기본 구성이 있습니다.
logger.healthy.name = http.openapi.operation.healthy logger.healthy.level = WARN logger.ready.name = http.openapi.operation.ready logger.ready.level = WARN
logger.healthy.name = http.openapi.operation.healthy
logger.healthy.level = WARN
logger.ready.name = http.openapi.operation.ready
logger.ready.level = WARN
다른 모든 작업의 로그 수준은 기본적으로 INFO
로 설정됩니다.
로깅
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 필수입니다. 이름
또는 키가
설정되지 않은 경우 기본 로깅이 사용됩니다. ConfigMap 내에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오.
인라인 로깅
외부 로깅
구성되지 않은 모든 로거는 수준이 OFF
로 설정되어 있습니다.
Cluster Operator를 사용하여 Kafka 브리지 브리지를 배포한 경우 Kafka Bridge 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.
외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions
속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
6.2.115.2. KafkaBridgeSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
replicas |
|
integer | |
image | 포드의 Docker 이미지입니다. |
string | |
bootstrapServers | Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다. |
string | |
tls | Kafka 브리지를 클러스터에 연결하기 위한 TLS 구성입니다. |
인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
| |
http | HTTP 관련 구성입니다. |
adminClient | Kafka AdminClient 관련 구성 |
consumer | Kafka 소비자 관련 구성. |
프로듀서 | Kafka 프로듀서 관련 구성 |
resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
jvmOptions | Pod에 현재 지원되지 않는 JVM 옵션입니다. |
logging |
Kafka 브리지의 로깅 구성입니다. 유형은 지정된 개체 내의 |
clientRackInitImage |
|
string | |
Rack | client.rack 소비자 구성으로 사용할 노드 레이블 구성입니다. |
enableMetrics | Kafka 브릿지에 대한 지표를 활성화합니다. 기본값은 false입니다. |
boolean | |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
template |
Kafka 브리지 리소스용 템플릿. 템플릿을 사용하면 |
tracing |
Kafka 브리지에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 |
6.2.116. KafkaBridgeHttpConfig schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
KafkaBridgeHttpConfig
스키마 속성의 전체 목록
Kafka 브리지의 Kafka 클러스터에 대한 HTTP 액세스를 구성합니다.
기본 HTTP 구성은 Kafka 브리지가 포트 8080에서 수신 대기하도록 하는 것입니다.
6.2.116.1. CORS 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터에 대한 HTTP 액세스를 활성화할 뿐만 아니라 HTTP 속성은 CORS(Cross-Origin Resource Sharing)를 통해 Kafka Bridge에 대한 액세스 제어를 활성화하고 정의하는 기능을 제공합니다. CORS는 브라우저에서 하나 이상의 원본에서 선택된 리소스에 액세스할 수 있는 HTTP 메커니즘입니다. CORS를 구성하려면 허용되는 리소스 원본 및 HTTP 액세스 방법 목록을 정의합니다. 원본의 경우 URL 또는 Java 정규식을 사용할 수 있습니다.
Kafka 브리지 HTTP 구성의 예
6.2.116.2. KafkaBridgeHttpConfig 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
port | 서버가 수신 대기 중인 포트입니다. |
integer | |
CORS | HTTP 브릿지에 대한 CORS 구성입니다. |
6.2.117. KafkaBridgeHttpCors schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeHttpConfig
속성 | 설명 |
---|---|
allowedOrigins | 허용된 원본 목록입니다. Java 정규식을 사용할 수 있습니다. |
문자열 배열 | |
allowedMethods | 허용된 HTTP 메서드 목록입니다. |
문자열 배열 |
6.2.118. KafkaBridgeAdminClientSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
속성 | 설명 |
---|---|
config | 브릿지에서 생성한 AdminClient 인스턴스에 사용되는 Kafka AdminClient 구성입니다. |
map |
6.2.119. KafkaBridgeConsumerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
KafkaBridgeConsumerSpec
스키마 속성의 전체 목록
Kafka 브릿지의 소비자 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
AMQ Streams에서 직접 관리하는 옵션을 제외하고 소비자의 Apache Kafka 구성 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 동일한 키가 있는 모든 구성 옵션은 허용되지 않습니다.
-
ssl.
-
sasl.
-
보안.
-
bootstrap.servers
-
group.id
config
속성에 허용되지 않는 옵션 중 하나가 무시되고 클러스터 Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka로 전달됩니다.
Cluster Operator는 config
오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Bridge 클러스터가 시작되지 않거나 불안정해질 수 있습니다. Cluster Operator가 모든 Kafka Bridge 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다.
Kafka 브리지 소비자 구성의 예
6.2.119.1. KafkaBridgeConsumerSpec schema properties 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
config | 브릿지에서 생성한 소비자 인스턴스에 사용되는 Kafka 소비자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, group.id, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
map |
6.2.120. KafkaBridgeProducerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
KafkaBridgeProducerSpec
스키마 속성의 전체 목록
Kafka 브릿지의 생산자 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
AMQ Streams에서 직접 관리하는 옵션을 제외하고 생산자의 Apache Kafka 구성 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 동일한 키가 있는 모든 구성 옵션은 허용되지 않습니다.
-
ssl.
-
sasl.
-
보안.
-
bootstrap.servers
config
속성에 허용되지 않는 옵션 중 하나가 무시되고 클러스터 Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka로 전달됩니다.
Cluster Operator는 config
오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Bridge 클러스터가 시작되지 않거나 불안정해질 수 있습니다. Cluster Operator가 모든 Kafka Bridge 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다.
Kafka 브리지 생산자 구성의 예
6.2.120.1. KafkaBridgeProducerSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
config | 브릿지에서 생성한 생산자 인스턴스에 사용되는 Kafka 생산자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
map |
6.2.121. KafkaBridgeTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
속성 | 설명 |
---|---|
Deployment |
Kafka 브리지 배포를 위한 템플릿 |
Pod |
Kafka 브리지 |
apiService |
Kafka 브리지 API |
podDisruptionBudget |
Kafka Bridge |
bridgeContainer | Kafka 브리지 컨테이너용 템플릿입니다. |
clusterRoleBinding | Kafka Bridge ClusterRoleBinding용 템플릿입니다. |
serviceAccount | Kafka 브리지 서비스 계정용 템플릿. |
initContainer | Kafka Bridge init 컨테이너용 템플릿입니다. |
6.2.122. KafkaBridgeStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridge
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
url | 외부 클라이언트 애플리케이션이 Kafka 브리지에 액세스할 수 있는 URL입니다. |
string | |
labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
string | |
replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
integer |
6.2.123. KafkaConnector 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | Kafka 커넥터의 사양입니다. |
status | Kafka 커넥터의 상태입니다. |
6.2.124. KafkaConnectorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnector
속성 | 설명 |
---|---|
클래스 | Kafka 커넥터의 클래스입니다. |
string | |
tasksMax | Kafka 커넥터의 최대 작업 수입니다. |
integer | |
autoRestart | 커넥터 및 작업 구성을 자동으로 다시 시작합니다. |
config | Kafka 커넥터 구성입니다. connector.class, tasks.max 속성을 설정할 수 없습니다. |
map | |
일시 중지 | 커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다. |
boolean |
6.2.125. AutoRestart 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaConnectorSpec
, KafkaMirrorMaker2ConnectorSpec
FAILED
상태인 커넥터 및 작업에 대한 자동 재시작을 구성합니다.
활성화된 경우 백오프 알고리즘은 실패한 각 커넥터 및 해당 작업에 자동 재시작을 적용합니다.
Operator는 조정 시 자동 재시작을 시도합니다. 첫 번째 시도가 실패하면 Operator에서 최대 6개의 시도를 더 만듭니다. 재시작 시도 간격은 2분에서 30분으로 증가합니다. 다시 시작할 때마다 실패한 커넥터 및 작업은 FAILED
에서 RESTARTING
으로 전송됩니다. 마지막 시도 후 재시작이 실패하면 커넥터 구성에 문제가 있을 수 있습니다. 커넥터와 작업은 FAILED
상태로 남아 있으며 수동으로 다시 시작해야 합니다. 이 작업은 strimzi.io/restart: "true"
로 KafKaConnector
사용자 정의 리소스에 주석을 달아 이를 수행할 수 있습니다.
Kafka Connect 커넥터의 경우 KafkaConnector
리소스의 autoRestart
속성을 사용하여 실패한 커넥터 및 작업의 자동 재시작을 활성화합니다.
Kafka Connect에 실패한 커넥터의 자동 재시작 활성화
MirrorMaker 2의 경우 KafkaMirrorMaker2
리소스에서 커넥터의 autoRestart
속성을 사용하여 실패한 커넥터 및 작업을 자동으로 다시 시작할 수 있습니다.
MirrorMaker 2에 실패한 커넥터의 자동 재시작 활성화
6.2.125.1. AutoRestart 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
enabled | 실패한 커넥터 및 작업에 대한 자동 재시작을 활성화하거나 비활성화해야 하는지 여부입니다. |
boolean |
6.2.126. KafkaConnectorStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnector
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
autoRestart | 자동 재시작 상태입니다. |
connectorStatus | Kafka Connect REST API에서 보고한 커넥터 상태입니다. |
map | |
tasksMax | Kafka 커넥터의 최대 작업 수입니다. |
integer | |
주제 | Kafka 커넥터에서 사용하는 항목 목록입니다. |
문자열 배열 |
6.2.127. AutoRestartStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectorStatus
, KafkaMirrorMaker2Status
속성 | 설명 |
---|---|
count | 커넥터 또는 작업을 다시 시작하는 횟수입니다. |
integer | |
connectorName | 다시 시작되는 커넥터의 이름입니다. |
string | |
lastRestartTimestamp | 자동 다시 시작을 마지막으로 시도한 시간입니다. 필요한 형식은 UTC 시간대의 'yyy-MM-ddTHH:mm:ssZ'입니다. |
string |
6.2.128. KafkaMirrorMaker2 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | Kafka MirrorMaker 2 클러스터의 사양입니다. |
status | Kafka MirrorMaker 2 클러스터의 상태. |
6.2.129. KafkaMirrorMaker2Spec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMaker2
속성 | 설명 |
---|---|
버전 | Kafka Connect 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다. |
string | |
replicas | Kafka Connect 그룹의 Pod 수입니다. |
integer | |
image | 포드의 Docker 이미지입니다. |
string | |
connectCluster |
Kafka Connect에 사용되는 클러스터 별칭입니다. 별칭은 |
string | |
클러스터 | 미러링을 위한 Kafka 클러스터입니다. |
미러 | MirrorMaker 2 커넥터 구성. |
resources | CPU 및 메모리 리소스 및 요청된 초기 리소스에 대한 최대 제한입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
livenessProbe | Pod 활성 검사입니다. |
readinessProbe | Pod 준비 상태 확인 |
jvmOptions | Pod에 대한 JVM 옵션. |
jmxOptions | ScanSetting 옵션. |
logging |
Kafka Connect의 로깅 구성입니다. 유형은 지정된 개체 내의 |
clientRackInitImage |
|
string | |
Rack |
|
tracing |
Kafka Connect에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 |
template |
Kafka Connect 및 Kafka MirrorECDHE 2 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
externalConfiguration | Secrets 또는 ConfigMaps의 데이터를 Kafka Connect Pod로 전달하여 커넥터를 구성하는 데 사용합니다. |
metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
6.2.130. KafkaMirrorMaker2ClusterSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: KafkaMirrorMaker2Spec
KafkaMirrorMaker2ClusterSpec
스키마 속성의 전체 목록
미러링을 위해 Kafka 클러스터를 구성합니다.
6.2.130.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config
속성을 사용하여 Kafka 옵션을 구성합니다.
표준 Apache Kafka 구성을 제공하여 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl
속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm
속성을 구성할 수도 있습니다.
6.2.130.2. KafkaMirrorMaker2ClusterSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
별칭 | Kafka 클러스터를 참조하는 데 사용되는 별칭입니다. |
string | |
bootstrapServers |
Kafka 클러스터에 대한 연결을 설정하는 쉼표로 구분된 |
string | |
tls | MirrorMaker 2 커넥터를 클러스터에 연결하기 위한 TLS 구성입니다. |
인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
| |
config | MirrorMaker 2 클러스터 구성. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes(예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.protocol, ssl.protocols.protocols). |
map |
6.2.131. KafkaMirrorMaker2MirrorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: KafkaMirrorMaker2Spec
속성 | 설명 |
---|---|
sourceCluster |
Kafka MirrorMaker 2 커넥터에서 사용하는 소스 클러스터의 별칭입니다. 별칭은 |
string | |
targetCluster |
Kafka MirrorMaker 2 커넥터에서 사용하는 대상 클러스터의 별칭입니다. 별칭은 |
string | |
sourceConnector | Kafka MirrorMaker 2 소스 커넥터의 사양입니다. |
heartbeatConnector | Kafka MirrorMaker 2 하트비트 커넥터의 사양입니다. |
checkpointConnector | Kafka MirrorMaker 2 체크포인트 커넥터의 사양입니다. |
topicsPattern | 미러링할 주제와 일치하는 정규식(예: "topic1|topic2|topic3")입니다. 쉼표로 구분된 목록도 지원됩니다. |
string | |
topicsBlacklistPattern |
|
string | |
topicsExcludePattern | 미러링에서 제외할 주제와 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다. |
string | |
groupsPattern | 미러링할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다. |
string | |
groupsBlacklistPattern |
|
string | |
groupsExcludePattern | 미러링에서 제외할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다. |
string |
6.2.132. KafkaMirrorMaker2ConnectorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: KafkaMirrorMaker2MirrorSpec
속성 | 설명 |
---|---|
tasksMax | Kafka 커넥터의 최대 작업 수입니다. |
integer | |
config | Kafka 커넥터 구성입니다. connector.class, tasks.max 속성을 설정할 수 없습니다. |
map | |
autoRestart | 커넥터 및 작업 구성을 자동으로 다시 시작합니다. |
일시 중지 | 커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다. |
boolean |
6.2.133. KafkaMirrorMaker2Status 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMaker2
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
url | Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다. |
string | |
autoRestartStatuses | MirrorMaker 2 커넥터 자동 재시작 상태 목록입니다. |
connectorPlugins | 이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다. |
커넥터 | Kafka Connect REST API에서 보고한 대로 MirrorMaker 2 커넥터 상태 목록입니다. |
맵 배열 | |
labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
string | |
replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
integer |
6.2.134. KafkaRebalance 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 설명 |
---|---|
spec | Kafka의 사양을 재조정합니다. |
status | Kafka의 상태를 재조정합니다. |
6.2.135. KafkaRebalanceSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaRebalance
속성 | 설명 |
---|---|
mode |
모드: 재조정을 실행합니다. 지원되는 모드는
|
문자열( among [remove-brokers, full, add-brokers]) | |
brokers |
스케일링 또는 재조정에 사용할 축소의 경우 새로 추가된 브로커 목록입니다. 이 목록은 재조정 모드 |
정수 배열 | |
목표 | 리밸런스 제안을 생성 및 실행하는 데 사용할 우선 순위를 줄임으로써 정렬된 목표 목록입니다. 지원되는 목표는 https://github.com/linkedin/cruise-control#goals 에서 확인할 수 있습니다. 빈 목표 목록이 제공되면 default.goals Cruise Control 구성 매개변수에 선언된 값이 사용됩니다. |
문자열 배열 | |
skipHardGoalCheck | 최적화 제안 생성에서 Kafka CR에 지정된 하드 목표를 건너뛰도록 허용할지 여부입니다. 이는 이러한 어려운 목표 중 일부가 균형 솔루션을 찾는 것을 막을 때 유용할 수 있습니다. 기본값은 false입니다. |
boolean | |
rebalanceDisk | 동일한 브로커에서 디스크 공간 사용률의 균형을 조정하는 인브로커 디스크 밸런싱을 활성화합니다. 여러 디스크가 있는 JBOD 스토리지를 사용하는 Kafka 배포에만 적용됩니다. 활성화하면 inter-broker 밸런싱이 비활성화됩니다. 기본값은 false입니다. |
boolean | |
excludedTopics | 일치하는 항목이 최적화 제안 계산에서 제외되는 정규식입니다. 이 표현식은 java.util.regex.Pattern 클래스에서 구문 분석합니다. 지원되는 형식에 대한 자세한 내용은 해당 클래스에 대한 설명서를 참조하십시오. |
string | |
concurrentPartitionMovementsPerBroker | 지속적인 파티션 복제 동작의 상한은 각 브로커의 내외로 들어갑니다. 기본값은 5입니다. |
integer | |
concurrentIntraBrokerPartitionMovements | 각 브로커 내에서 디스크의 지속적인 파티션 복제 변동의 상한입니다. 기본값은 2입니다. |
integer | |
concurrentLeaderMovements | 지속적인 파티션 리더십의 범위. 기본값은 1000입니다. |
integer | |
replicationThrottle | 복제본 이동에 사용되는 대역폭의 상한(초당 바이트 단위)입니다. 기본적으로 제한은 없습니다. |
integer | |
replicaMovementStrategies | 생성된 최적화 제안에서 복제본 변동에 대한 실행 순서를 결정하는 데 사용되는 전략 클래스 이름 목록입니다. 기본적으로 BaseReplica>-<mentStrategy가 사용되며, 생성된 순서대로 복제본 이동을 실행합니다. |
문자열 배열 |
6.2.136. KafkaRebalanceStatus schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaRebalance
속성 | 설명 |
---|---|
conditions | 상태 조건 목록입니다. |
| |
observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
integer | |
sessionId | 이 KafkaRebalance 리소스와 관련된 Cruise Control에 대한 요청의 세션 식별자입니다. Kafka 리밸런스 Operator에서 지속적인 재조정 작업의 상태를 추적하는 데 사용됩니다. |
string | |
optimizationResult | 최적화 결과를 설명하는 JSON 오브젝트입니다. |
map |
부록 A. 서브스크립션 사용 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams는 소프트웨어 서브스크립션을 통해 제공됩니다. 서브스크립션을 관리하려면 Red Hat 고객 포털에서 계정에 액세스하십시오.
귀하의 계정에 액세스
- access.redhat.com 으로 이동합니다.
- 아직 계정이 없는 경우 계정을 생성합니다.
- 계정에 로그인합니다.
서브스크립션 활성화
- access.redhat.com 으로 이동합니다.
- 내 서브스크립션으로 이동합니다.
- 서브스크립션을 활성화하여 16자리 활성화 번호를 입력합니다.
Zip 및 Tar 파일 다운로드
zip 또는 tar 파일에 액세스하려면 고객 포털을 사용하여 다운로드할 관련 파일을 찾습니다. RPM 패키지를 사용하는 경우에는 이 단계가 필요하지 않습니다.
- 브라우저를 열고 access.redhat.com/downloads 에서 Red Hat 고객 포털 제품 다운로드 페이지에 로그인합니다.
- INTEGRAT ION 및 AUTOMATION 카테고리에서 Apache Kafka의 AMQ Streams 를 찾습니다.
- 원하는 AMQ Streams 제품을 선택합니다. Software Download 페이지가 열립니다.
- 구성 요소에 대한 다운로드 링크를 클릭합니다.
DNF로 패키지 설치
패키지 및 모든 패키지 종속 항목을 설치하려면 다음을 사용합니다.
dnf install <package_name>
dnf install <package_name>
로컬 디렉터리에서 이전에 다운로드한 패키지를 설치하려면 다음을 사용합니다.
dnf install <path_to_download_package>
dnf install <path_to_download_package>
2023-05-27에 최종 업데이트된 문서