You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GitLab CI/CD流水线运行Kafka命令遇超时异常,求配置排查方案

GitLab CI/CD中运行Kafka命令超时问题排查

我是GitLab和Kafka的新手,不清楚如何通过Shell脚本在GitLab CI/CD流水线中运行Kafka命令。我使用了以下配置来实现,但运行时出现异常,请问是否存在遗漏或错误配置?请给予建议。


当前配置

.gitlab-ci.yml

run_kafka:
  image: confluentinc/cp-kafka
  script : 
       - . demo.sh

demo.sh

kafka-consumer-groups --command-config ./config.properties --bootstrap-server "pkc-6ojv2.us-west4.gcp.confluent.cloud:9092" --group my-created-consumer-group --topic SampleTopic --reset-offsets --to-current

config.properties

bootstrap.servers=pkc-confluent.cloud:9092
ssl.endpoint.identification.algorithm=https
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="" password="";

异常信息

Error: Executing consumer group command failed due to org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: describeGroups(api=FIND_COORDINATOR)
 java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: describeGroups(api=FIND_COORDINATOR)
    at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
    at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
    at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:165)
    at kafka.admin.ConsumerGroupCommand$ConsumerGroupService.$anonfun$resetOffsets$1(ConsumerGroupCommand.scala:434)
    at scala.collection.IterableOnceOps.foldLeft(IterableOnce.scala:675)
    at scala.collection.IterableOnceOps.foldLeft$(IterableOnce.scala:669)
    at scala.collection.AbstractIterable.foldLeft(Iterable.scala:933)
    at kafka.admin.ConsumerGroupCommand$ConsumerGroupService.resetOffsets(ConsumerGroupCommand.scala:432)
    at kafka.admin.ConsumerGroupCommand$.run(ConsumerGroupCommand.scala:76)
    at kafka.admin.ConsumerGroupCommand$.main(ConsumerGroupCommand.scala:59)
    at kafka.admin.ConsumerGroupCommand.main(ConsumerGroupCommand.scala)
 Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: describeGroups(api=FIND_COORDINATOR)

问题排查与建议

  • Bootstrap Server地址不匹配:demo.sh中的bootstrap-server是pkc-6ojv2.us-west4.gcp.confluent.cloud:9092,但config.properties里的bootstrap.servers是pkc-confluent.cloud:9092,两者完全不一致。必须将两个地址统一为Confluent Cloud控制台显示的正确集群Bootstrap Server地址,否则客户端无法定位集群节点。

  • SASL认证信息缺失:config.properties中username和password为空,Confluent Cloud需要有效的API密钥(Key作为username,Secret作为password)才能完成认证。请在Confluent Cloud控制台生成对应集群的API密钥对,替换配置中的空值。

  • 网络连通性检查:确认GitLab Runner所在网络允许访问Confluent Cloud的9092端口。如果是自托管Runner,需检查防火墙或安全组规则是否放行该端口的出站流量;共享Runner通常无需额外配置,但需确保网络环境无限制。

  • 补充命令执行参数:执行reset-offsets命令时,需添加--execute参数才会实际执行偏移量重置,否则仅输出操作计划。修正后的命令示例:

    kafka-consumer-groups --command-config ./config.properties --bootstrap-server "正确的集群地址:9092" --group my-created-consumer-group --topic SampleTopic --reset-offsets --to-current --execute
    
  • 指定镜像版本:建议给confluentinc/cp-kafka镜像指定具体版本(如confluentinc/cp-kafka:7.4.0),避免因镜像自动更新引发的版本兼容性问题。


内容的提问来源于stack exchange,提问作者ravvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:05:20