87.2. plugins
커넥터 플러그인은 특정 유형의 외부 시스템에 연결하는 데 필요한 구현을 정의하는 파일 집합입니다. 컨테이너 이미지에 필요한 커넥터 플러그인은 KafkaConnect
사용자 정의 리소스의 .spec.build.plugins
속성을 사용하여 구성해야 합니다. 각 커넥터 플러그인에는 Kafka Connect 배포 내에서 고유한 이름이 있어야 합니다. 또한 플러그인 아티팩트를 나열해야 합니다. 이러한 아티팩트는 Apache Kafka용 Streams에서 다운로드하여 새 컨테이너 이미지에 추가되며 Kafka Connect 배포에서 사용됩니다. 커넥터 플러그인 아티팩트는 (de)serializers와 같은 추가 구성 요소를 포함할 수도 있습니다. 각 커넥터 플러그인은 별도의 디렉터리로 다운로드되므로 서로 다른 커넥터와 해당 종속성이 올바르게 샌드박스 됩니다. 각 플러그인은 하나 이상의 아티팩트
로 구성해야 합니다.
두 개의 커넥터 플러그인
을 사용한 플러그인 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins: 1
- name: connector-1
artifacts:
- type: tgz
url: <url_to_download_connector_1_artifact>
sha512sum: <SHA-512_checksum_of_connector_1_artifact>
- name: connector-2
artifacts:
- type: jar
url: <url_to_download_connector_2_artifact>
sha512sum: <SHA-512_checksum_of_connector_2_artifact>
#...
- 1
- (필수) 커넥터 플러그인 및 아티팩트 목록입니다.
Apache Kafka용 스트림은 다음 유형의 아티팩트를 지원합니다.
- JAR 파일, 직접 다운로드 및 사용
- 다운로드 및 압축 해제된 TGZ 아카이브
- ZIP 아카이브, 다운로드 및 압축 해제
- Maven 좌표를 사용하는 Maven 아티팩트
- 기타 아티팩트는 직접 다운로드 및 사용
Apache Kafka용 스트림은 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 체크섬 확인을 구성하여 자동화된 빌드 및 Kafka Connect 배포에서 동일한 아티팩트를 사용해야 합니다.
JAR 아티팩트 사용
JAR 아티팩트는 컨테이너 이미지에 다운로드 및 추가된 JAR 파일을 나타냅니다. JAR 아티팩트를 사용하려면 type
속성을 root 로
설정하고 url
속성을 사용하여 다운로드 위치를 지정합니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 Streams for Apache Kafka는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.
JAR 아티팩트의 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect metadata: name: my-connect-cluster spec: #... build: output: #... plugins: - name: my-plugin artifacts: - type: jar 1 url: https://my-domain.tld/my-jar.jar 2 sha512sum: 589...ab4 3 - type: jar url: https://my-domain.tld/my-jar2.jar #...
TGZ 아티팩트 사용
TGZ 아티팩트는 Gzip 압축을 사용하여 압축한 TAR 아카이브를 다운로드하는 데 사용됩니다. TGZ 아티팩트는 여러 다른 파일을 포함하는 경우에도 전체 Kafka Connect 커넥터를 포함할 수 있습니다. TGZ 아티팩트는 새 컨테이너 이미지를 빌드하는 동안 Apache Kafka용 Streams에서 자동으로 다운로드 및 압축을 풉니다. TGZ 아티팩트를 사용하려면 type
속성을 tgz
로 설정하고 url
속성을 사용하여 다운로드 위치를 지정합니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 Streams for Apache Kafka는 압축을 풀고 새 컨테이너 이미지를 빌드하기 전에 체크섬을 확인합니다.
TGZ 아티팩트 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect metadata: name: my-connect-cluster spec: #... build: output: #... plugins: - name: my-plugin artifacts: - type: tgz 1 url: https://my-domain.tld/my-connector-archive.tgz 2 sha512sum: 158...jg10 3 #...
ZIP 아티팩트 사용
ZIP 아티팩트는 ZIP 압축 아카이브를 다운로드하는 데 사용됩니다. 이전 섹션에서 설명하는 TGZ 아티팩트와 동일한 방식으로 ZIP 아티팩트를 사용합니다. 유일한 차이점은 type: tgz
대신 type: zip
을 지정하는 것입니다.
Maven 아티팩트 사용
Maven
아티팩트는 커넥터 플러그인 아티팩트를 Maven 좌표로 지정하는 데 사용됩니다. Maven 좌표는 Maven 리포지토리에서 위치 및 가져올 수 있도록 플러그인 아티팩트 및 종속성을 식별합니다.
커넥터 빌드 프로세스에서 컨테이너 이미지에 아티팩트를 추가하려면 Maven 리포지토리에 액세스할 수 있어야 합니다.
Maven 아티팩트 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect metadata: name: my-connect-cluster spec: #... build: output: #... plugins: - name: my-plugin artifacts: - type: maven 1 repository: https://mvnrepository.com 2 group: <maven_group> 3 artifact: <maven_artifact> 4 version: <maven_version_number> 5 #...
다른
아티팩트 사용
기타
아티팩트는 컨테이너 이미지에 다운로드 및 추가된 모든 종류의 파일을 나타냅니다. 결과 컨테이너 이미지에서 아티팩트에 특정 이름을 사용하려면 fileName
필드를 사용합니다. 파일 이름을 지정하지 않으면 URL 해시에 따라 파일 이름이 지정됩니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 Streams for Apache Kafka는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.
다른
아티팩트의 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect metadata: name: my-connect-cluster spec: #... build: output: #... plugins: - name: my-plugin artifacts: - type: other 1 url: https://my-domain.tld/my-other-file.ext 2 sha512sum: 589...ab4 3 fileName: name-the-file.ext 4 #...