返回

用Docker 部署 Kafka-Kraft 和 Sasl 加密认证:安全又简单的解决方案

后端

搭建 Kafka-Kraft 集群并配置 Sasl 加密认证

部署 Kafka-Kraft 集群

  1. 拉取 Docker 镜像:
docker pull bitnami/kafka-kraft
  1. 创建 Kafka-Kraft 集群:
docker run -it --rm --name kafka-kraft -p 9092:9092 -p 29092:29092 -e KAFKA_KRAFT_CONTROLLER_QUORUM_VOTERS=1 -e KAFKA_KRAFT_CONTROLLER_LISTENERS=CONTROLLER://0.0.0.0:29092 bitnami/kafka-kraft

配置 Sasl 加密认证

  1. 创建 ZooKeeper SASL JAAS 配置文件:
[zookeeper]
org.apache.zookeeper.server.auth.DigestLoginModule required
username="zookeeper"
password="zookeeper-password";
  1. 创建 Kafka SASL JAAS 配置文件:
[kafka]
org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-password";
  1. 编辑 Docker 运行命令,添加 SASL 配置:
docker run -it --rm --name kafka-kraft -p 9092:9092 -p 29092:29092 -e KAFKA_KRAFT_CONTROLLER_QUORUM_VOTERS=1 -e KAFKA_KRAFT_CONTROLLER_LISTENERS=CONTROLLER://0.0.0.0:29092 -e KAFKA_ZOOKEEPER_JAAS_CONFIG="/etc/kafka/zookeeper_jaas.conf" -e KAFKA_JAAS_CONFIG="/etc/kafka/kafka_jaas.conf" bitnami/kafka-kraft
  1. 启动 Kafka-Kraft 集群:
docker start kafka-kraft

常见问题解答

  1. Kafka-Kraft 集群无法启动:
  • 检查 Docker 镜像是否正确。
  • 确保端口 9092 和 29092 已开放。
  • 验证 ZooKeeper 和 Kafka 的 JAAS 配置文件是否已正确创建。
  1. 无法连接到 Kafka 集群:
  • 验证您是否正在使用正确的 SASL 凭据。
  • 确保客户端配置已更新为使用 SASL 认证。
  • 检查防火墙或其他网络限制是否阻止了连接。
  1. 写入 Kafka 时出现错误:
  • 确认您有权写入所需主题。
  • 检查 SASL 凭据是否正确。
  • 验证 Kafka 集群是否已正确配置。
  1. 从 Kafka 读数据时出现错误:
  • 确保您有权读取所需主题。
  • 验证您正在使用正确的 SASL 凭据。
  • 检查 Kafka 集群是否已正确配置。
  1. 如何缩放 Kafka-Kraft 集群:
  • 停止现有集群。
  • 创建新容器,指定更高的 KAFKA_KRAFT_CONTROLLER_QUORUM_VOTERS 值。
  • 将现有数据复制到新集群。

结论

通过遵循这些步骤,您可以轻松地使用 Docker 部署安全且可扩展的 Kafka-Kraft 集群。通过配置 Sasl 加密认证,您可以确保集群的安全性,从而保护敏感数据。现在,您可以专注于利用 Kafka 的强大功能来提升您的应用程序和数据处理管道。