0

我们有具有三个副本的 MongoDB 集群。我已将首选 TLS 和身份验证类型启用为 MongoDB-X509。

我们有三个代理 strimzi kafka 集群,并将集群与所有必需的插件(即 debezium 提供的 mongoDB)连接起来并运行。

下面提供了用于 kafka 连接部署的部分 connect.yaml 文件:-

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  config:
    config.providers: directory
    config.providers.directory.class: org.apache.kafka.common.config.provider.DirectoryConfigProvider
  externalConfiguration:
    volumes:
      - name: connector-config
        secret:
          secretName: mysecret

部署工作正常,能够在 /opt/kafka/external-configuration/connector-config 目录中看到 ca.pem 和 mongo-server.pem 文件。

之后,我尝试使用下面给出的配置文件创建 mongoDB 连接器,但不确定传递证书的确切方式。因为没有可用于 mongoDb 连接器的示例配置文件。您能否通过提供一些示例配置来帮助解决这个问题。

我尝试了以下配置文件:-

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
  labels:
    strimzi.io/cluster: my-connect-cluster
spec:
  class: io.debezium.connector.mongodb.MongoDbConnector
  tasksMax: 2
  config:
    ssl.truststore.type: PEM
    ssl.truststore.location: "${directory:/opt/kafka/external-configuration/connector-config:ca.pem}"
    ssl.keystore.type: PEM
    ssl.keystore.location: "${directory:/opt/kafka/external-configuration/connector-config:mongo-server.pem}"
    "mongodb.hosts": "rs0/192.168.99.100:27017" 
    "mongodb.name": "fullfillment" 
    "collection.include.list": "inventory[.]*"
    "mongodb.ssl.enabled": true
    "mongodb.ssl.invalid.hostname.allowed": true

但它抛出了语法错误。请通过提供示例 mongoDB connector.yaml 来帮助解决这个问题?

4

1 回答 1

0

至于 Strimzi,您可以使用外部配置将 Secrets 或 Config Maps 挂载到 Strimzi Kafka Connect 部署中:https ://strimzi.io/docs/operators/latest/full/using.html#type-ExternalConfiguration-reference 。一旦它被加载到 Pods 中,你既可以使用文件路径来引用它,也可以使用 Kafka 配置提供程序将数据加载到配置选项中。

于 2021-12-23T17:29:27.893 回答