在Docker Compose中配置Kafka Broker以使用SSL运行

vc9ivgsu  于 2023-08-02  发布在  Apache
关注(0)|答案(1)|浏览(174)

我想在Docker Compose中运行的Kafka设置中为Kafka代理添加SSL加密。目前我已经配置了broker,例如:

environment:
  
  KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://localhost:9094"

  KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"

  KAFKA_BROKER_ID: 3

  KAFKA_DEFAULT_REPLICATION_FACTOR: 3

  KAFKA_MIN_INSYNC_REPLICAS: 2

我已经从nginx为每个Kafka节点分配了单独的DNS,它工作正常。但是,当我禁用端口9092-9097时,问题就出现了。在这种情况下,我们会遇到“no broker available”错误。应通过端口443进行连接。
我想使用端口443配置对Kafka节点的访问,而不是允许单个端口

xnifntxz

xnifntxz1#

Docker在这里并不重要,Nginx也不“做DNS”。
Kafka不是一个HTTPS服务,所以使用端口443只是令人困惑。此外,Kafka客户端必须连接到单独的代理,因此Nginx不应该反向代理它们。
如果你想要一个HTTPS接口,那么运行Kafka REST Proxy项目,然后你可以将Nginx或其他解决方案(如Apache Knox)指向该接口进行身份验证。然后,您可以选择只公开HTTP服务器并在那里终止TLS,然后通过PLAINTEXT流量转发到代理。注意:这将比原始的Kafka客户端协议慢,因为您将引入瓶颈/单点故障。

相关问题