Apache kafka 我们如何在KafkaConnector资源中以抽象方式使用kafka connect信任库密码?

Apache kafka 我们如何在KafkaConnector资源中以抽象方式使用kafka connect信任库密码?,apache-kafka,apache-kafka-connect,solace,strimzi,Apache Kafka,Apache Kafka Connect,Solace,Strimzi,我们有一个由3个节点组成的连接集群。我们的connect cluster truststore中需要两个证书。我们以以下方式安装了这些证书 。。。 规格: tls: 受信任的证书: -证书:ca.crt secretName:我的群集ca证书 -secretName:根目录 证书:RootCA.crt -证书:IntermediateCA.crt 秘书长姓名:inter cer -秘密名称:solace broker secret 证书:secure-solace-broker.crt ...

我们有一个由3个节点组成的连接集群。我们的connect cluster truststore中需要两个证书。我们以以下方式安装了这些证书

。。。
规格:
tls:
受信任的证书:
-证书:ca.crt
secretName:我的群集ca证书
-secretName:根目录
证书:RootCA.crt
-证书:IntermediateCA.crt
秘书长姓名:inter cer
-秘密名称:solace broker secret
证书:secure-solace-broker.crt
...
如您所知,在三个connect集群启动后,证书已安装到以下信任库
/tmp/kafka/cluster.truststore.p12
。此外,我们可以在以下文件中找到随机信任库密码:
/tmp/strimzi connect.properties

我们在KafkaConnector资源文件中引导信任库路径和信任库密码

apiVersion:kafka.strimzi.io/v1alpha1 种类:卡夫卡康奈特 元数据: 名称:solace源连接器 标签: strimzi.io/cluster:我的连接群集 规格: 类别:com.solace.connector.kafka.connect.source.SolaceSourceConnector 任务最大:1 配置: value.converter:org.apache.kafka.connect.converters.ByteArrayConverter key.converter:org.apache.kafka.connect.storage.StringConverter 卡夫卡主题:安慰测试 sol.host:tcps://msdkjskdjsdfrdfjdffdhxu3n.messaging.solace.cloud:55443 sol.username:my solace cloud用户名 sol.password:密码 sol.vpn_名称:solaceservice 索尔:试试我 sol.message_processor_class:com.solace.connector.kafka.connect.source.msgprocessors.SolSampleSimpleMessageProcessor sol.ssl\u trust\u store:/tmp/kafka/cluster.truststore.p12 sol.ssl\u信任\u存储\u密码:硬编码\u随机\u密码 现在,我们正在进入一个连接集群pod,从
/tmp/strimzi connect.properties
文件中获取密码,然后在
sol.ssl\u trust\u store\u password
字段中使用密码

我的问题:


有没有办法参数化密码?任何使用密码的封装方式(这样我们就不需要进入pod就可以知道密码-期望是,kafkaconnector资源将从运行pod的
/tmp/strimzi connect.properties
文件中提供密码)

我从Jakub Scholz的Slack频道得到了答案

您正在使用的tls配置和信任库应该 用于Connect和Kafka之间的通信,而不是用于 连接器。我认为你有两种选择如何提供信任库 对于连接器

  • 您可以使用与现在使用的相同的信任库,但是使用FileConfigProvider加载密码-我认为应该加载 在每个连接节点上输入正确的密码
  • 您只需使用连接器的信任库创建自己的秘密,并使用以下方法将其加载到connect中:
  • 我就是这样实施的:

  • 与我的证书一起创建自定义密钥库:
  • keytool-import-file RootCA.crt-alias root-keystore-myTrustStore
    
  • 使用信任存储创建Kubernetes机密:
  • kubectl创建机密的通用我的信任库--从file=myTrustStore
    
  • 正在将机密加载到connect资源文件中:
  • spec:
    ...
    外部配置:
    卷数:
    -名称:我的信任商店
    秘密:
    秘密名称:我的信任商店
    
  • 连接集群吊舱启动后,证书将在/opt/kafka/external configuration/my trust store中提供/