85.2. plugins
连接器插件是一组文件,用于定义连接到某些类型的外部系统所需的实施。容器镜像所需的连接器插件必须使用 KafkaConnect 自定义资源的 .spec.build.plugins 属性进行配置。每个连接器插件都必须有一个在 Kafka Connect 部署中唯一的名称。另外,必须列出插件工件。这些工件由 AMQ Streams 下载,添加到新容器镜像中,并在 Kafka Connect 部署中使用。连接器插件工件也可以包含其他组件,如(de) serializers。每个连接器插件都下载到一个单独的目录中,以便不同的连接器和它们的依赖项被正确地进行了沙盒处理。每个插件必须配置至少一个 工件。
带有两个连接器插件的插件配置示例
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- 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
- (必需)连接器插件及其工件列表。
AMQ Streams 支持以下工件类型:
- 直接使用的 JAR 文件
- TGZ 归档(已下载并解包)
- ZIP 存档,它们已下载并解包
- Maven 工件(使用 Maven 协调)
- 其他直接下载和使用的工件
AMQ Streams 不对下载工件执行任何安全扫描。为了安全起见,您应该首先手动验证工件,并配置 checksum 验证,以确保在自动构建和 Kafka Connect 部署中使用相同的工件。
使用 JAR 工件
JAR 工件代表一个 JAR 文件,该文件已下载并添加到容器镜像中。要使用 JAR 工件,请将 type 属性设置为 jar,并使用 url 属性指定下载位置。
另外,您可以指定工件的 SHA-512 校验和。如果指定,AMQ Streams 会在构建新容器镜像时验证工件的校验和。
JAR 工件示例
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- name: my-plugin
artifacts:
- type: jar
url: https://my-domain.tld/my-jar.jar
sha512sum: 589...ab4
- type: jar
url: https://my-domain.tld/my-jar2.jar
#...
使用 TGZ 工件
TGZ 工件用于下载使用 Gzip 压缩压缩的 TAR 存档。TGZ 工件可以包含整个 Kafka Connect 连接器,即使由多个不同文件组成。TGZ 工件由 AMQ Streams 自动下载并解包,同时构建新容器镜像。要使用 TGZ 工件,请将 type 属性设置为 tgz,并使用 url 属性指定下载位置。
另外,您可以指定工件的 SHA-512 校验和。如果指定,AMQ Streams 会在解包和构建新容器镜像前验证 checksum。
TGZ 工件示例
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- name: my-plugin
artifacts:
- type: tgz
url: https://my-domain.tld/my-connector-archive.tgz
sha512sum: 158...jg10
#...
使用 ZIP 工件
ZIP 工件用于下载 ZIP 压缩存档。使用 ZIP 工件的方式与上一节中描述的 TGZ 工件相同。唯一的区别是指定 type: zip 而不是 type: tgz。
使用 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
repository: https://mvnrepository.com
group: org.apache.camel.kafkaconnector
artifact: camel-kafka-connector
version: 0.11.0
#...
使用其他 工件
其他 工件代表下载并添加到容器镜像中的任何类型的文件。如果要在生成的容器镜像中为工件使用特定名称,请使用 fileName 字段。如果没有指定文件名,则该文件会根据 URL 哈希命名。
另外,您可以指定工件的 SHA-512 校验和。如果指定,AMQ Streams 会在构建新容器镜像时验证工件的校验和。
other 工件示例
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- name: my-plugin
artifacts:
- type: other
url: https://my-domain.tld/my-other-file.ext
sha512sum: 589...ab4
fileName: name-the-file.ext
#...