0

我正在使用 Strimzi 在 K8s 上部署 KafkaCluster、KafkaConnect。

  • Strimzi 算子集群镜像:quay.io/strimzi/operator:0.26.1
  • 卡夫卡镜像:quay.io/strimzi/kafka:0.26.1-kafka-3.0.0。

我正在尝试设置连接到 Postgres DB 的 KafkaConnector。

这些是我的步骤:

  1. 从此图像“quay.io/strimzi/kafka:0.26.1-kafka-3.0.0”构建一个新的 KafkaConnect。这个新图像有我从这个链接“https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-deployment”下载的插件

  2. 我在 K8s 上运行这个新镜像,然后执行到 KafkaConnect 容器中。它有正确的插件('/opt/kafka/plugins/debezium/debezium-connector-postgres'): 在此处输入图像描述

  3. 我创建了引用类 'io.debezium.connector.postgresql.PostgresConnector' 的 KafkaConnector:

kind: "KafkaConnector"
metadata:
  name: dev-approvalflowservice-connector
  labels:
    strimzi.io/cluster: postgres-connect-cluster-1
spec:
  class: io.debezium.connector.postgresql.PostgresConnector
  tasksMax: 2
  config:
    database.hostname: 10.14.101.204
    database.port: "5432"
    database.user: "debezium"
    database.password: "debezium"
    database.dbname: "approvalflowservice"
    database.server.name: "approvalflowservice"
    plugin.name: "pgoutput"
    slot.name: "approvalflowserviceslot"
    truncate.handling.mode: "include"
    table.include.list: "public.approval_flow"
  1. 问题是 KafkaConnect 无法加载我已经添加到新 KafkaConnect 映像中的插件。来自 KafkaConnect 的日志:日志

更新

  1. 我试图在新的 KafkaConnect 映像('/opt/kafka/plugins/debezium-connector-postgres')中更改插件的位置: 在此处输入图像描述
  2. 问题是一样的:log

谢谢你们。

4

1 回答 1

0

在您的日志中,您有

Loading plugin from: /opt/kafka/plugins/debezium

但是,由于您的插件已安装到子文件夹中,因此没有将 Postgres 类列为已加载。

确保插件路径在您定义的路径和 JAR 可用的位置之间只有一个文件夹。例如安装到/opt/kafka/plugins/debezium-connector-postgres

您还可以在创建之前向 Connect API 发出GET /connector-pluginsHTTP 请求以列出集群的可用连接器。

于 2021-12-22T20:12:32.993 回答