Strimzi Kafka Bridge用户名密码认证配置异常及访问失败求助
解决Strimzi Kafka Bridge PLAIN认证失败问题
看起来你遇到的核心问题是Kafka Broker没有启用任何SASL认证机制,而你的Bridge尝试使用PLAIN方式进行认证,导致握手失败。下面一步步帮你排查和解决:
1. 先给Kafka集群启用SASL PLAIN认证
报错里的enabled mechanisms are []直接说明Broker侧完全没开启SASL认证,这是根本原因。你需要修改Kafka集群配置,添加SASL PLAIN的支持:
修改你的Kafka集群配置文件(比如my-cluster.yaml),在spec.kafka下补充认证和对应的listener配置:
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # 保留你原有的其他配置... listeners: - name: plain port: 9092 type: internal tls: false - name: sasl_plain port: 9093 type: internal tls: false authentication: type: plain authentication: type: plain users: - user # 这里要包含你想用于Bridge的用户名 zookeeper: # 保留你原有的ZooKeeper配置...
执行命令应用配置:kubectl apply -f my-cluster.yaml,等待Kafka集群重启生效。
2. 用Strimzi KafkaUser资源创建合法认证用户
你手动创建的Secret不符合Strimzi的用户管理规范,Strimzi需要通过KafkaUser资源来注册用户并生成合法凭证。创建kafka-user.yaml:
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaUser metadata: name: user labels: strimzi.io/cluster: my-cluster spec: authentication: type: plain passwordSecret: secretName: bridgeuser # 可以复用你之前创建的Secret password: my-password # 指定你原有的密码字段 authorization: type: simple acls: - resource: type: topic name: "*" patternType: literal operation: All - resource: type: group name: "*" patternType: literal operation: All
执行命令应用配置:kubectl apply -f kafka-user.yaml,这会确保用户user在Kafka集群中被正确注册,并且拥有访问主题的权限。
3. 修改KafkaBridge配置,连接到SASL端口
你的Bridge配置里用的是无认证的9092端口,需要改成SASL PLAIN对应的9093端口,同时确保认证配置正确:
apiVersion: kafka.strimzi.io/v1alpha1 kind: KafkaBridge metadata: name: my-bridge spec: replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 # 替换为SASL端口 http: port: 8080 authentication: type: plain username: user passwordSecret: secretName: bridgeuser password: my-password
执行命令应用配置:kubectl apply -f bridge.yaml,等待Bridge Pod重启。
4. 修正curl命令的协议
你的Bridge配置启用的是HTTP(不是HTTPS),所以需要把curl里的https://改成http://:
curl -X POST -u user:rghGFDL*%167 http://localhost:8080/topics/topic -H 'content-type: application/vnd.kafka.json.v2+json' -d '{"records": [{"key": "key-1","value": "welcome !!"},{"key": "key-2","value": "welcome !!"}]}'
额外检查点
- 可以进入Bridge Pod执行
nc -zv my-cluster-kafka-bootstrap 9093,测试是否能连通Kafka的SASL端口。 - 查看Kafka和Bridge的Pod日志,确认有没有其他认证相关的错误提示。
内容的提问来源于stack exchange,提问作者Ahmed Nageh
相关产品推荐
相关产品推荐

