k8s部署单节点 Kafka(KRaft 模式)并启用 SASL 认证

1.前置条件

  • 一套部署好的k8s集群
  • 已部署好Storage Class或PV存储,我使用的nfs csi存储驱动

2.k8s集群部署文档

https://www.cnblogs.com/Leonardo-li/p/18796443

3.csi-driver-nfs部署文档

https://www.cnblogs.com/Leonardo-li/p/18813140

4.kafka单节点部署

4.1 kafka configmap部署

CODEBLOCK_PLACEHOLDER_0001 CODEBLOCK_PLACEHOLDER_0002

4.2 kafka headless 部署

CODEBLOCK_PLACEHOLDER_0003 CODEBLOCK_PLACEHOLDER_0004

4.3 kafka statefulset 部署

CODEBLOCK_PLACEHOLDER_0005 CODEBLOCK_PLACEHOLDER_0006

5.kafka生产消息和消费消息测试(python)

5.1 安装库
bash 复制代码
pip install confluent_kafka
5.2 生产消息Producer.py
python 复制代码
from confluent_kafka import Producer

conf = {
    'bootstrap.servers': '192.168.4.60:9092',  # 替换真实IP
    'security.protocol': 'SASL_PLAINTEXT',
    'sasl.mechanism': 'PLAIN',
    'sasl.username': 'admin',
    'sasl.password': '123456'
}

def delivery_report(err, msg):
    """静默处理回调,只关注错误"""
    if err:
        print(f"发送失败: {err}")
try:
    producer = Producer(conf)
    message = "Hello from Python"

    # 核心输出:生产内容
    print(f"已生产消息: {message}")

    producer.produce('test-topic', message, callback=delivery_report)
    producer.flush(timeout=5)

except Exception as e:
    print(f"生产异常: {str(e)}")
5.3 消费消息Consumer.py
bash 复制代码
from confluent_kafka import Consumer

conf = {
    'bootstrap.servers': '192.168.4.60:9092',  # 替换真实IP
    'security.protocol': 'SASL_PLAINTEXT',
    'sasl.mechanism': 'PLAIN',
    'sasl.username': 'admin',
    'sasl.password': '123456',
    'group.id': 'test-group',
    'auto.offset.reset': 'earliest'
}

try:
    consumer = Consumer(conf)
    consumer.subscribe(['test-topic'])

    print("等待消费消息... (Ctrl+C退出)")
    while True:
        msg = consumer.poll(1.0)
        if msg and not msg.error():
            # 核心输出:消费内容
            print(f"已消费消息: {msg.value().decode('utf-8')}")

except KeyboardInterrupt:
    pass
finally:
    consumer.close()
5.4 执行Producer.py程序会显示
bash 复制代码
已生产消息: Hello from Python
5.5 执行Consumer.py程序
bash 复制代码
等待消费消息... (Ctrl+C退出)
已消费消息: Hello from Python

至此,Kafka(KRaft 模式)单节点并启用 SASL 认证就部署完了!!!

相关推荐
ZealSinger2 小时前
Boot4升后Kafka retry属性怎么改
kafka·retry·boot4·升级踩坑
starzy19903 小时前
KafkaProducer 源码深度剖析:处理粘包问题的完美方案
大数据·kafka
MrWind灬6 小时前
我给自己写了个 Kafka 桌面客户端:MrWindKafkaClient
kafka·pyqt
starzy19901 天前
KafkaProducer 源码深度剖析:与 Broker 建立连接
大数据·kafka
我不会起名字3221 天前
Kafka 重复消费:自动提交位点与手动提交的 3 个错位
kafka·消息队列·幂等·排查
ly76892 天前
Kafka 消费者重试与死信:Spring for Apache Kafka 的边界设计
spring·kafka·apache·并发消费·消费者重试·死信主题·位移提交
我不会起名字3223 天前
Kafka 顺序消息为什么乱了:分区数变化与重试的 3 类原因
kafka·消息队列·顺序·排查
每天一道题4 天前
Kafka 是如何工作的?从 Broker、Partition、Offset 到 Consumer Group
分布式·kafka
ClouGence4 天前
还在用命令行管理 Kafka?开源 CloudDM 让操作更简单
数据库·kafka·开源
Sayai4 天前
Kafka 磁盘空间治理实战:retention 保留策略、log.dirs 在线扩容、分区跨盘迁移与不停机整体换盘
大数据·运维·分布式·kafka·消息队列