Docker部署Kafka
Docker部署Kafka
环境:
RockyLinux9.4
虚拟机配置 4C12G(运存至少4G)
Docker version 26.1.3
防火墙关闭
安装
拉取镜像
sudo docker pull bitnami/kafka:3.7
创建挂载文件目录
sudo mkdir /home/xxx/docker/kafka
目录路径就不那么讲究了...
请替换xxx ,xxx代表用户名
部署
Kafka 与 Zookeeper
Apache Kafka Raft (KRaft) 利用 Kafka 中的新仲裁控制器服务,该服务取代了以前的控制器,并利用了 Raft 共识协议的基于事件的变体。 这大大简化了 Kafka 的架构,将元数据的责任整合到 Kafka 本身,而不是将其拆分为两个不同的系统:ZooKeeper 和 Kafka。
更多信息可以在这里找到: https://developer.confluent.io/learn/kraft/
注意:根据 KIP-833,KRaft 现在处于生产就绪状态。
通用
docker run -d --name my-kafka --hostname kafka-master \
-p 9094:9094 \
-v /home/yd/docker/kafka:/bitnami/kafka \
-e KAFKA_CFG_NODE_ID=0 \
-e KAFKA_CFG_PROCESS_ROLES=controller,broker \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092,EXTERNAL://192.168.33.3:9094 \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-master:9093 \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
bitnami/kafka:3.7
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
对内9092端口,对外9094端口
配置项列表
可自定义的环境变量
名字 |
描述 |
默认值 |
---|---|---|
|
Kafka 目录,用于挂载配置文件。 |
|
|
Kafka 代理间通信用户。 |
|
|
Kafka 代理间通信密码。 |
|
|
Kafka 控制平面通信用户。 |
|
|
Kafka 控制平面通信密码。 |
|
|
证书的密码。 |
|
|
Kafka 信任库文件位置。 |
|
|
选择要使用的 TLS 证书格式。 |
|
|
将 kafka 代理配置为请求客户端身份验证。 |
|
|
Kafka 部署选项。 |
|
|
Kafka 配置覆盖。 |
|
|
使用 Kafka Raft 模式 (KRaft) 时的 Kafka 集群 ID。 |
|
|
如果设置为 true,则在配置 process.roles 时跳过 Kraft 存储初始化。 |
|
|
客户端要使用的侦听器的名称(如果已设置),则相应地配置生产者/使用者。 |
|
|
Zookeeper 连接的身份验证协议。允许的协议:、 和 。 |
|
|
用于 SASL 身份验证的 Kafka Zookeeper 用户密码。 |
|
|
用于 SASL 身份验证的 Kafka Zookeeper 用户。 |
|
|
Kafka Zookeeper 密钥库文件密码和密钥密码。 |
|
|
Kafka Zookeeper 信任库文件密码。 |
|
|
Kafka Zookeeper 信任库文件位置。 |
|
|
验证 TLS 证书上的 Zookeeper 主机名。 |
|
|
选择要使用的 TLS 证书格式。允许的值:、。 |
|
|
用于客户端通信时,将在 Zookeeper 中创建其他用户列表。用逗号、分号或空格分隔。 |
|
|
中指定的用户的密码。用逗号、分号或空格分隔。 |
|
|
Java 的 Kafka 堆选项。 |
|
只读环境变量
名字 |
描述 |
价值 |
---|---|---|
|
Kafka 安装目录。 |
|
|
Kafka 持久性目录。 |
|
|
存储数据的 Kafka 目录。 |
|
|
Kafka 配置目录。 |
|
|
Kafka 配置文件。 |
|
|
证书文件的 Kafka 目录。 |
|
|
初始化脚本的 Kafka 目录。 |
|
|
存储 Kafka 日志的目录。 |
|
|
Kafka 主目录。 |
|
|
Kafka 系统用户。 |
|
|
Kafka 系统组。 |
|
更多详情
参考 bitnami/kafka概述 即可
监控 Kafka 集群的 Web UI --- Kafdrop
该工具显示代理、主题、分区、消费者(包括滞后)等信息,并允许您查看消息。
部署
拉取镜像
sudo docker pull obsidiandynamics/kafdrop:4.0.2-SNAPSHOT
通用
docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=<kafka部署IP>:9092 \
-e JVM_OPTS="-Xms32M -Xmx64M" \
-e SERVER_SERVLET_CONTEXTPATH="/" \
--name my-kafdrop obsidiandynamics/kafdrop:4.0.2-SNAPSHOT