【kubernetes-kafka】使用kafka client测试

背景

现在假设k8s中已经启动了kafka容器

kafka所在Namespace为xxx

1、启动一个kafka client的pod

kubectl run kafka-client --restart='Never' --image bitnami/kafka:3.1.0-debian-10-r85 --namespace xxx --command -- sleep infinity

2、配置

运行脚本生成client.properties

# 1.从 secret 中获取kafka 密码
password="$(kubectl get secret kafka-jaas --namespace xxx -o jsonpath='{.data.client-passwords}' | base64 --decode | cut -d , -f 1)"
# 2.创建配置文件: client.properties
echo "security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username='qtUser' password='$password';" > client.properties

将配置文件copy到client容器

kubectl cp --namespace xxx client.properties kafka-client:/tmp/client.properties
3、进入client
kubectl exec --tty -i kafka-client --namespace xxx -- bash
4、测试

kafka的client可以直接发送消息和接受消息

发送消息

kafka-console-producer.sh \
            --producer.config /tmp/client.properties \
            --broker-list kafka-0.kafka-headless.xxx.svc.cluster.local:9092 \
            --topic test

接受消息

  • 可以用来测试项目中已有的消息,因为kafka的消息是可以多次消费的,这里指定了从头开始。

    kafka-console-consumer.sh
    --consumer.config /tmp/client.properties
    --bootstrap-server kafka-headless.xxx:9092
    --topic test
    --from-beginning

列出所有topic

kafka-topics.sh --list --bootstrap-server kafka-headless.xxx:9092  --command -config /tmp/client.properties
相关推荐
dzend3 小时前
Kafka、RocketMQ、RabbitMQ 对比
kafka·rabbitmq·rocketmq
AKA小徐4 小时前
Debian12使用RKE2离线部署3master2node三主两从的k8s集群详细教程
kubernetes·rancher·rke2
李昊哲小课4 小时前
deepin 安装 kafka
大数据·分布式·zookeeper·数据分析·kafka
Kobebryant-Manba4 小时前
zookeeper+kafka的windows下安装
分布式·zookeeper·kafka
老大白菜11 小时前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
lucky_syq13 小时前
Flume和Kafka的区别?
大数据·kafka·flume
观测云13 小时前
Confluent Cloud Kafka 可观测性最佳实践
kafka·confluent
攻心的子乐13 小时前
Kafka可视化工具 Offset Explorer (以前叫Kafka Tool)
分布式·kafka
tntlbb15 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
Gabriel_liao15 小时前
Docker安装Neo4j
docker·容器·neo4j