6.2. Kafka Connect 배포
Kafka Connect 는 Apache Kafka와 외부 시스템 간에 데이터를 스트리밍하는 툴입니다.
AMQ Streams에서 Kafka Connect는 분산 모드로 배포됩니다. Kafka Connect는 독립 실행형 모드에서도 작동할 수 있지만 AMQ Streams에서는 지원되지 않습니다.
커넥터 의 개념을 사용하여 Kafka Connect는 확장성과 신뢰성을 유지하면서 Kafka 클러스터 내외로 대량의 데이터를 이동하기 위한 프레임워크를 제공합니다.
Kafka Connect는 일반적으로 Kafka를 외부 데이터베이스 및 스토리지 및 메시징 시스템과 통합하는 데 사용됩니다.
Cluster Operator는 KafkaConnector 리소스를 사용하여 생성된 KafkaConnect 리소스 및 커넥터를 사용하여 배포된 Kafka Connect 클러스터를 관리합니다.
다음 절차에서는 Kafka Connect를 배포하고 스트리밍 데이터를 위한 커넥터를 설정하는 방법을 보여줍니다.
커넥터 라는 용어는 Kafka Connect 클러스터 또는 커넥터 클래스 내에서 실행되는 커넥터 인스턴스를 의미합니다. 이 가이드에서 커넥터 라는 용어는 컨텍스트에서 의미가 명확해질 때 사용됩니다.
6.2.1. OpenShift 클러스터에 Kafka Connect 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Cluster Operator를 사용하여 Kafka Connect 클러스터를 OpenShift 클러스터에 배포하는 방법을 설명합니다.
Kafka Connect 클러스터는 연결의 워크로드를 작업으로 배포 하는 구성 가능한 수의 노드( 작업자라고도 함)를 사용한 배포로 구현되므로 메시지 흐름이 확장성이 높고 신뢰할 수 있습니다.
배포에서는 YAML 파일을 사용하여 사양을 제공하여 KafkaConnect 리소스를 생성합니다.
AMQ Streams는 구성 파일 예제 를 제공합니다. 이 절차에서는 다음 예제 파일을 사용합니다.
-
examples/connect/kafka-connect.yaml
절차
OpenShift 클러스터에 Kafka Connect를 배포합니다.
examples/connect/kafka-connect.yaml파일을 사용하여 Kafka Connect를 배포합니다.oc apply -f examples/connect/kafka-connect.yaml
oc apply -f examples/connect/kafka-connect.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 상태를 확인합니다.
oc get deployments -n <my_cluster_operator_namespace>
oc get deployments -n <my_cluster_operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에 배포 이름과 준비 상태가 표시됩니다.
NAME READY UP-TO-DATE AVAILABLE my-connect-cluster-connect 1/1 1 1
NAME READY UP-TO-DATE AVAILABLE my-connect-cluster-connect 1/1 1 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-connect-cluster는 Kafka Connect 클러스터의 이름입니다.READY에는 준비되거나 예상된 복제본 수가 표시됩니다.AVAILABLE출력에1이 표시되면 배포가 성공적으로 수행됩니다.
6.2.2. 여러 인스턴스에 대한 Kafka Connect 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Connect의 여러 인스턴스를 실행하는 경우 다음 구성 속성의 기본 구성을 변경해야 합니다.
세 항목의 값은 동일한 group.id 가 있는 모든 Kafka Connect 인스턴스에 대해 동일해야 합니다.
기본 설정을 변경하지 않으면 동일한 Kafka 클러스터에 연결하는 각 Kafka Connect 인스턴스가 동일한 값으로 배포됩니다. 실제로 모든 인스턴스가 클러스터에서 실행되고 동일한 주제를 사용하도록 연결된 것입니다.
여러 Kafka Connect 클러스터가 동일한 주제를 사용하려고 하면 Kafka Connect가 예상대로 작동하지 않고 오류를 생성합니다.
여러 Kafka Connect 인스턴스를 실행하려면 각 인스턴스에 대해 이러한 속성의 값을 변경합니다.
6.2.3. 커넥터 플러그인을 사용하여 Kafka Connect 확장 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Connect는 커넥터 인스턴스를 사용하여 다른 시스템과 통합하여 데이터를 스트리밍합니다. 커넥터는 다음 유형 중 하나일 수 있습니다.
- Kafka로 데이터를 푸시하는 소스 커넥터
- Kafka에서 데이터를 추출하는 싱크 커넥터
이 섹션의 절차에서는 다음 중 하나를 수행하여 커넥터를 추가하는 방법을 설명합니다.
Kafka Connect REST API 또는 KafkaConnector 사용자 정의 리소스를 사용하여 직접 커넥터 에 대한 구성을 생성합니다.
사용자 고유의 커넥터를 사용하거나 파일 기반 데이터를 Kafka 클러스터 내외로 이동하기 위한ECDHE SourceConnector 및ECDHE Sink Connector 커넥터 예제를 시도할 수 있습니다. 예제 파일 커넥터를 KafkaConnector 리소스로 배포하는 방법에 대한 자세한 내용은 6.2.4.2절. “KafkaConnector 리소스 예 배포” 을 참조하십시오.
Apache Kafka 3.1.0까지 Kafka Connect의 AMQ Streams 컨테이너 이미지에 예제 파일 커넥터가 포함되어 있습니다. Apache Kafka 3.1.1 및 3.2.0에서 이러한 커넥터는 더 이상 포함되지 않으며 커넥터와 같이 배포해야 합니다.
6.2.3.1. AMQ Streams를 사용하여 자동으로 새 컨테이너 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 AMQ Streams가 추가 커넥터를 사용하여 새 컨테이너 이미지를 자동으로 빌드하도록 Kafka Connect를 구성하는 방법을 설명합니다. KafkaConnect 사용자 정의 리소스의 .spec.build.plugins 속성을 사용하여 커넥터 플러그인을 정의합니다. AMQ Streams는 커넥터 플러그인을 자동으로 다운로드하여 새 컨테이너 이미지에 추가합니다. 컨테이너는 .spec.build.output 에 지정된 컨테이너 리포지토리로 푸시되고 Kafka Connect 배포에 자동으로 사용됩니다.
사전 요구 사항
- Cluster Operator를 배포해야 합니다.
- 컨테이너 레지스트리.
이미지를 푸시, 저장 및 가져올 수 있는 자체 컨테이너 레지스트리를 제공해야 합니다. AMQ Streams는 프라이빗 컨테이너 레지스트리 및 Quay 또는 Docker Hub 와 같은 공개 레지스트리를 지원합니다.
절차
.spec.build.output에서 컨테이너 레지스트리를 지정하고.spec.build.plugins에서 추가 커넥터를 지정하여KafkaConnect사용자 정의 리소스를 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 리소스를 생성하거나 업데이트합니다.
oc apply -f KAFKA-CONNECT-CONFIG-FILE
$ oc apply -f KAFKA-CONNECT-CONFIG-FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow - 새 컨테이너 이미지가 빌드될 때까지 기다린 후 Kafka Connect 클러스터가 배포될 때까지 기다립니다.
- Kafka Connect REST API 또는 KafkaConnector 사용자 정의 리소스를 사용하여 사용자가 추가한 커넥터 플러그인을 사용합니다.
6.2.3.2. Kafka Connect 기본 이미지에서 Docker 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 사용자 지정 이미지를 생성하고 이를 /opt/kafka/plugins 디렉터리에 추가하는 방법을 설명합니다.
Red Hat Ecosystem Catalog 의 Kafka 컨테이너 이미지를 기본 이미지로 사용하여 추가 커넥터 플러그인으로 자체 사용자 지정 이미지를 생성할 수 있습니다.
시작 시 Kafka Connect의 AMQ Streams 버전은 /opt/kafka/plugins 디렉터리에 포함된 타사 커넥터 플러그인을 로드합니다.
사전 요구 사항
절차
registry.redhat.io/amq7/amq-streams-kafka-32-rhel8:2.2.2를 기본 이미지로 사용하여 새Dockerfile을 생성합니다.FROM registry.redhat.io/amq7/amq-streams-kafka-32-rhel8:2.2.2 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001
FROM registry.redhat.io/amq7/amq-streams-kafka-32-rhel8:2.2.2 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플러그인 파일 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예에서는 MongoDB, MySQL, PostgreSQL에 Debezium 커넥터를 사용합니다. Kafka Connect에서 실행 중인 Debezium은 다른 Kafka Connect 작업과 동일합니다.
- 컨테이너 이미지를 빌드합니다.
- 사용자 정의 이미지를 컨테이너 레지스트리로 내보냅니다.
새 컨테이너 이미지를 가리킵니다.
다음 중 하나를 수행할 수 있습니다.
KafkaConnect사용자 정의 리소스의KafkaConnect.spec.image속성을 편집합니다.설정된 경우 이 속성은 Cluster Operator의
STRIMZI_KAFKA_CONNECT_IMAGES변수를 덮어씁니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
-
install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml파일에서STRIMZI_KAFKA_CONNECT_IMAGES변수를 편집하여 새 컨테이너 이미지를 가리키는 다음 Cluster Operator를 다시 설치합니다.
6.2.4. 커넥터 생성 및 관리 링크 복사링크가 클립보드에 복사되었습니다!
커넥터 플러그인의 컨테이너 이미지를 생성한 경우 Kafka Connect 클러스터에서 커넥터 인스턴스를 생성해야 합니다. 그런 다음 실행 중인 커넥터 인스턴스를 구성, 모니터링 및 관리할 수 있습니다.
커넥터는 메시지 측면에서 관련 외부 시스템과 통신하는 방법을 알고 있는 특정 커넥터 클래스의 인스턴스입니다. 커넥터는 여러 외부 시스템에서 사용할 수 있거나 직접 만들 수 있습니다.
커넥터의 소스 및 싱크 유형을 생성할 수 있습니다.
- 소스 커넥터
- 소스 커넥터는 외부 시스템에서 데이터를 가져와서 메시지로 Kafka에 제공하는 런타임 엔티티입니다.
- 싱크 커넥터
- 싱크 커넥터는 Kafka 주제에서 메시지를 가져와서 외부 시스템에 제공하는 런타임 엔티티입니다.
6.2.4.1. 커넥터 생성 및 관리를 위한 API 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams는 커넥터를 생성하고 관리하기 위해 두 가지 API를 제공합니다.
-
KafkaConnector사용자 정의 리소스 ( KafkaConnectors로 참조) - Kafka Connect REST API
API를 사용하면 다음을 수행할 수 있습니다.
- 커넥터 인스턴스의 상태 확인
- 실행 중인 커넥터 재구성
- 커넥터 인스턴스의 커넥터 작업 수를 늘리거나 줄입니다.
- 커넥터 재시작
- 실패한 작업을 포함한 커넥터 작업 재시작
- 커넥터 인스턴스 일시 중지
- 이전에 일시 중지된 커넥터 인스턴스 재시작
- 커넥터 인스턴스 삭제
KafkaConnector 사용자 정의 리소스
KafkaConnectors를 사용하면 OpenShift 네이티브 방식으로 Kafka Connect에 대한 커넥터 인스턴스를 생성하고 관리할 수 있으므로 cURL과 같은 HTTP 클라이언트가 필요하지 않습니다. 다른 Kafka 리소스와 마찬가지로 OpenShift 클러스터에 배포된 KafkaConnector YAML 파일에서 커넥터의 원하는 상태를 선언하여 커넥터 인스턴스를 생성합니다. KafkaConnector 리소스를 연결하는 Kafka Connect 클러스터와 동일한 네임스페이스에 배포해야 합니다.
해당 KafkaConnector 리소스를 업데이트한 다음 업데이트를 적용하여 실행 중인 커넥터 인스턴스를 관리합니다. 해당 KafkaConnector 를 삭제하여 커넥터를 제거합니다.
이전 AMQ Streams 버전과의 호환성을 보장하기 위해 KafkaConnectors는 기본적으로 비활성화되어 있습니다. Kafka Connect 클러스터의 KafkaConnectors를 활성화하려면 KafkaConnect 리소스에서 strimzi.io/use-connector-resources 주석을 true 로 설정합니다. 자세한 내용은 Kafka Connect 구성을 참조하십시오.
KafkaConnectors가 활성화되면 Cluster Operator에서 감시하기 시작합니다. KafkaConnectors에 정의된 구성과 일치하도록 실행 중인 커넥터 인스턴스의 구성을 업데이트합니다.
AMQ Streams는 examples KafkaConnector 구성 파일을 제공하며, 이 파일을 사용하여 ScanSetting Source Connector 및ECDHE SinkConnector를 생성하고 관리할 수 있습니다.
KafkaConnector 리소스에 주석 을 달아 커넥터를 다시 시작하거나 커넥터 작업을 다시 시작할 수 있습니다.
Kafka Connect API
Kafka Connect REST API에서 지원하는 작업은 Apache Kafka Connect API 설명서에 설명되어 있습니다.
Kafka Connect API를 사용하여 KafkaConnectors 사용으로 전환
Kafka Connect API를 사용하여 KafkaConnectors를 사용하여 커넥터를 관리할 수 있습니다. 전환하려면 표시된 순서대로 다음을 수행합니다.
-
구성과 함께
KafkaConnector리소스를 배포하여 커넥터 인스턴스를 생성합니다. -
strimzi.io/use-connector-resources주석을true로 설정하여 Kafka Connect 구성에서 KafkaConnectors를 활성화합니다.
리소스를 생성하기 전에 KafkaConnectors를 활성화하면 모든 커넥터를 삭제합니다.
KafkaConnectors를 Kafka Connect API를 사용하도록 전환하려면 먼저 Kafka Connect 구성에서 KafkaConnectors를 활성화하는 주석을 제거합니다. 그렇지 않으면 Kafka Connect REST API를 직접 사용하여 수행한 수동 변경 사항을 Cluster Operator에 의해 되돌립니다.
6.2.4.2. KafkaConnector 리소스 예 배포 링크 복사링크가 클립보드에 복사되었습니다!
KafkaConnector 리소스는 Cluster Operator의 커넥터 관리에 대한 Kubernetes 네이티브 접근 방식을 제공합니다. AMQ Streams는 구성 파일 예제 를 제공합니다. 이 절차에서는 examples/connect/source-connector.yaml 파일을 사용하여 KafkaConnector 리소스로 다음 커넥터 인스턴스를 생성합니다.
-
Kafka 라이센스 파일(소스)에서 각 행을 읽고 해당 데이터를 단일 Kafka 항목에 메시지로 기록하는 instance입니다.
-
Kafka 주제에서 메시지를 읽고 메시지를 임시 파일(스케크)에 쓰는 instance입니다.
또는 examples/connect/kafka-connect-build.yaml 파일을 사용하여 파일 커넥터로 새 Kafka Connect 이미지를 빌드할 수 있습니다.
Apache Kafka 3.1.0까지 예제 파일 커넥터 플러그인이 Apache Kafka에 포함되었습니다. Apache Kafka의 3.1.1 및 3.2.0 릴리스부터 다른 커넥터로 플러그인 경로에 예제를 추가해야 합니다. 자세한 내용은 커넥터 플러그인을 사용하여 Kafka Connect 확장을 참조하십시오.
프로덕션 환경에서는 6.2.3절. “커넥터 플러그인을 사용하여 Kafka Connect 확장” 에 설명된 대로 필요한 Kafka Connect 커넥터를 사용하여 컨테이너 이미지를 준비합니다.
ScanSetting SourceConnector 및 ScanSettingSinkConnector 는 예제로 제공됩니다. 여기에 설명된 대로 컨테이너에서 이러한 커넥터를 실행하는 것은 프로덕션 사용 사례에 적합하지 않을 수 있습니다.
사전 요구 사항
- Kafka Connect 배포
- KafkaConnectors는 Kafka Connect 배포에서 활성화됩니다.
- Cluster Operator가 실행 중입니다.
절차
examples/connect/source-connector.yaml파일을 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 커넥터의 이름으로 사용되는
KafkaConnector리소스의 이름입니다. OpenShift 리소스에 유효한 이름을 사용합니다. - 2
- Kafka Connect 클러스터의 이름이 에서 커넥터 인스턴스를 생성합니다. 커넥터를 연결하는 Kafka Connect 클러스터와 동일한 네임스페이스에 배포해야 합니다.
- 3
- 커넥터 클래스의 전체 이름 또는 별칭입니다. Kafka Connect 클러스터에서 사용하는 이미지에 있어야 합니다.
- 4
- 커넥터가 생성할 수 있는
최대 Kafka Connect Task수입니다. - 5
- 커넥터 구성은 키-값 쌍으로 설정됩니다.
- 6
- 이 예제 소스 커넥터 구성은
/opt/kafka/LICENSE파일에서 데이터를 읽습니다. - 7
- 소스 데이터를 게시하는 Kafka 주제입니다.
OpenShift 클러스터에서 소스
KafkaConnector를 생성합니다.oc apply -f examples/connect/source-connector.yaml
oc apply -f examples/connect/source-connector.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow examples/connect/sink-connector.yaml파일을 생성합니다.touch examples/connect/sink-connector.yaml
touch examples/connect/sink-connector.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 YAML을
sink-connector.yaml파일에 붙여넣습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift 클러스터에 싱크
KafkaConnector를 생성합니다.oc apply -f examples/connect/sink-connector.yaml
oc apply -f examples/connect/sink-connector.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 리소스가 생성되었는지 확인합니다.
oc get kctr --selector strimzi.io/cluster=MY-CONNECT-CLUSTER -o name my-source-connector my-sink-connector
oc get kctr --selector strimzi.io/cluster=MY-CONNECT-CLUSTER -o name my-source-connector my-sink-connectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow MY-CONNECT-CLUSTER 를 Kafka Connect 클러스터로 교체합니다.
컨테이너에서
kafka-console-consumer.sh를 실행하여 소스 커넥터가 항목에 기록된 메시지를 읽습니다.oc exec MY-CLUSTER-kafka-0 -i -t -- bin/kafka-console-consumer.sh --bootstrap-server MY-CLUSTER-kafka-bootstrap.NAMESPACE.svc:9092 --topic my-topic --from-beginning
oc exec MY-CLUSTER-kafka-0 -i -t -- bin/kafka-console-consumer.sh --bootstrap-server MY-CLUSTER-kafka-bootstrap.NAMESPACE.svc:9092 --topic my-topic --from-beginningCopy to Clipboard Copied! Toggle word wrap Toggle overflow
소스 및 싱크 커넥터 구성 옵션
커넥터 구성은 KafkaConnector 리소스의 spec.config 속성에 정의되어 있습니다.
ECDHE SourceConnector 및 ECDHESinkConnector 클래스는 Kafka Connect REST API와 동일한 구성 옵션을 지원합니다. 기타 커넥터는 다양한 구성 옵션을 지원합니다.
| 이름 | 유형 | 기본값 | 설명 |
|---|---|---|---|
|
| 문자열 | null | 메시지를 작성할 소스 파일입니다. 지정하지 않으면 표준 입력이 사용됩니다. |
|
| list | null | 데이터를 게시하는 Kafka 주제입니다. |
| 이름 | 유형 | 기본값 | 설명 |
|---|---|---|---|
|
| 문자열 | null | 메시지를 작성할 대상 파일입니다. 지정하지 않으면 표준 출력이 사용됩니다. |
|
| list | null | 데이터를 읽을 하나 이상의 Kafka 주제입니다. |
|
| 문자열 | null | 데이터를 읽을 하나 이상의 Kafka 주제와 일치하는 정규식입니다. |
6.2.4.3. Kafka 커넥터를 다시 시작 수행 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 Kafka 커넥터의 재시작을 수동으로 트리거하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
재시작하려는 Kafka 커넥터를 제어하는
KafkaConnector사용자 정의 리소스의 이름을 찾습니다.oc get KafkaConnector
oc get KafkaConnectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터를 다시 시작하려면 OpenShift에서
KafkaConnector리소스에 주석을 답니다. 예를 들어oc annotate:oc annotate KafkaConnector KAFKACONNECTOR-NAME strimzi.io/restart=true
oc annotate KafkaConnector KAFKACONNECTOR-NAME strimzi.io/restart=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 조정이 수행될 때까지 기다립니다(기본적으로 2분 마다).
조정 프로세스에서 주석이 감지된 한 Kafka 커넥터가 재시작됩니다. Kafka Connect에서 재시작 요청을 수락하면 주석이
KafkaConnector사용자 정의 리소스에서 제거됩니다.
6.2.4.4. Kafka 커넥터 작업 재시작 수행 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 주석을 사용하여 Kafka 커넥터 작업 재시작을 수동으로 트리거하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
재시작하려는 Kafka 커넥터 작업을 제어하는
KafkaConnector사용자 정의 리소스의 이름을 찾습니다.oc get KafkaConnector
oc get KafkaConnectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaConnector사용자 정의 리소스에서 재시작할 작업의 ID를 찾습니다. 작업 ID는 0부터 시작하는 음수가 아닌 정수입니다.oc describe KafkaConnector KAFKACONNECTOR-NAME
oc describe KafkaConnector KAFKACONNECTOR-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 작업을 다시 시작하려면 OpenShift에서
KafkaConnector리소스에 주석을 답니다. 예를 들어oc annotate를 사용하여 작업 0을 다시 시작합니다.oc annotate KafkaConnector KAFKACONNECTOR-NAME strimzi.io/restart-task=0
oc annotate KafkaConnector KAFKACONNECTOR-NAME strimzi.io/restart-task=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 조정이 수행될 때까지 기다립니다(기본적으로 2분 마다).
조정 프로세스에서 주석을 탐지한 경우 Kafka 커넥터 작업이 재시작됩니다. Kafka Connect에서 재시작 요청을 수락하면 주석이
KafkaConnector사용자 정의 리소스에서 제거됩니다.
6.2.4.5. Kafka Connect API 노출 링크 복사링크가 클립보드에 복사되었습니다!
KafkaConnector 리소스를 사용하여 커넥터를 관리하는 대신 Kafka Connect REST API를 사용합니다. Kafka Connect REST API는 < connect_cluster_name> -connect-api:8083 에서 실행되는 서비스로 사용할 수 있습니다. 여기서 < connect_cluster_name >은 Kafka Connect 클러스터의 이름입니다. 이 서비스는 Kafka Connect 인스턴스를 생성할 때 생성됩니다.
strimzi.io/use-connector-resources 주석은 KafkaConnectors를 활성화합니다. KafkaConnect 리소스 구성에 주석을 적용한 경우 Kafka Connect API를 사용하려면 해당 주석을 제거해야 합니다. 그렇지 않으면 Kafka Connect REST API를 직접 사용하여 수행한 수동 변경 사항을 Cluster Operator에 의해 되돌립니다.
커넥터 구성을 JSON 오브젝트로 추가할 수 있습니다.
커넥터 구성 추가에 대한 curl 요청의 예
API는 OpenShift 클러스터 내에서만 액세스할 수 있습니다. OpenShift 클러스터 외부에서 실행되는 애플리케이션에서 Kafka Connect API에 액세스하도록 하려면 다음 기능 중 하나를 생성하여 수동으로 노출할 수 있습니다.
-
LoadBalancer또는NodePort유형 서비스 -
Ingress리소스 - OpenShift 경로
연결이 안전하지 않으므로 외부 액세스를 권장합니다.
서비스를 생성하기로 결정하는 경우 < connect_cluster_name> -connect-api 서비스의 선택기 에서 레이블을 사용하여 서비스에서 트래픽을 라우팅할 Pod를 구성합니다.
서비스에 대한 선택기 구성
외부 클라이언트의 HTTP 요청을 허용하는 NetworkPolicy 도 생성해야 합니다.
Kafka Connect API에 대한 요청을 허용하는 NetworkPolicy의 예
- 1
- API에 연결할 수 있는 Pod의 레이블입니다.
클러스터 외부에 커넥터 구성을 추가하려면 curl 명령에서 API를 노출하는 리소스의 URL을 사용합니다.